iOS9のApp Thinning簡単まとめ
Contents
App Thinningとは
App Storeからダウンロードするアプリのサイズを小さくすること。
App Thinningの利点
速くダウンロードできて、端末の容量も節約できる。
また端末に最適化されたアプリをダウンロードすることで性能向上も期待できる。
App Thinningの方法
- slicing
端末に必要なリソースのみダウンロードさせる。
- bitcode
端末に最適化されたアプリをダウンロードさせる。
- on-demand resources
端末で必要な時にリソースをダウンロードさせる。
slicing詳細
例えば、image.png, image@2x.png, image@3x.pngの三つのイメージファイルがアプリに含まれている場合、
今までは全端末に三つのファイルすべてがダウンロードされていたが、slicingによって
iPhone4以前の非Retina端末にはimage.pngのみ、
iPhone6+端末にはimage@3x.pngのみ、
それ以外のRetina端末にはimage@2x.pngのみがダウンロードされるようになる。
アプリ開発者はイメージファイルの管理をアセットで行うだけでそれ以外の面倒はApp Store側がすべて行う。
bitcode詳細
例えるならJIT(Just-In-Time Compiler、JITコンパイラ)に似ってるかな、、
今までは開発者がApp Storeに完全な実行ファイルをアップしていたが、bitcodeという中間ファイルをアップすることで
各端末(例えば、32bit, 64bit, Apple Watchなど)に最適化されたアプリをApp Store側で作ってくれる。
現在(Xcode7GMseed)のiOSアプリでbitcodeはデフォルトでONだが必須ではない。(watchOSアプリは必須)
以下のような二つの方法でOFFにできるようだ。
- プロジェクト設定にて
- App Storeへアップロード時
on-demand resources詳細
例えばゲームのステージ別のリソースや写真アプリのフィルタ用リソース、チャットアプリのスタンプ用リソースなどをアプリのダウンロード時ではなく必要になった時点でApp Storeからダウンロードすることできる。
on-demand resourcesの使い方
- プロジェクト設定画面でon-demand resourcesをONに

3. 作成したタグにリソースファイルの関連付け

4. 必要になったらNSBundleResourceRequestクラスでダウンロード
1 | - (void)downloadOnDemendResource |
参考:On-Demand Resources Essentials
参考:App Thinning (iOS, watchOS)


