◉RORK LABEN
●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SONNET 4.5 — Claude API での提供終了は 11/30、残り27日。API 連携を足したアプリは移行先の確認を●SDK 58 — React Native 0.88 に更新されました。Android のリリース版で R8 が既定オンになり、iOS は SceneDelegate を生成します●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SONNET 4.5 — Claude API での提供終了は 11/30、残り27日。API 連携を足したアプリは移行先の確認を●SDK 58 — React Native 0.88 に更新されました。Android のリリース版で R8 が既定オンになり、iOS は SceneDelegate を生成します●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…
記事一覧/開発ツール
⬡ 開発ツール/2026-06-19上級

Rork Max のアプリ容量を削る — App Thinning と On-Demand Resources の使いどころ

Rork Max が生成した SwiftUI アプリは画像やフォントを素直に同梱するため、放っておくと容量が膨らみます。App Thinning と On-Demand Resources を使って初回ダウンロードを軽くする実装手順と、容量予算の決め方を実機の数字とともに整理しました。

Rork Max235App ThinningOn-Demand Resourcesアプリ容量パフォーマンス33

✦ プレミアム記事

ある朝、自分の壁紙アプリの App Store Connect を開いたら、ダウンロードサイズが 180MB を超えていました。Rork Max に頼んで作った新しい画面を足しただけのつもりだったのに、いつの間にか初回ダウンロードがセルラー回線の警告ラインに迫っていたのです。

原因を追うと、生成されたコードが高解像度の画像と複数のカスタムフォントをそのままバンドル直下に置いていました。Rork Max は「見た目が完成した画面」を最短で出すことには長けていますが、配信容量まで面倒を見てくれるわけではない、というのがこの朝の実感でした。

個人開発でアプリを長く運用していると、容量は静かに効いてくる指標です。ここからは、Rork Max が吐いた Swift ネイティブのコードを土台に、App Thinning と On-Demand Resources を使って初回ダウンロードを軽くするまでの工程を、実際に触った数字とともに残しておきます。

アプリ容量はどこで効いてくるのか

容量を気にする理由は、見栄えの問題ではありません。インストール直前の離脱に直結するからです。

App Store はセルラー回線でのダウンロードに上限を設けていて、これを超えると「Wi-Fi に接続してください」という警告が出ます。せっかく広告や紹介でストアまで来てくれた人が、この一枚の警告で去っていきます。私自身、容量を 90MB 台まで落としたアプリで、初回インストールの完了率が体感ではっきり改善した経験があります。

もうひとつは更新のたびにかかる通信です。毎週更新する運用をしていると、利用者は何度もダウンロードを繰り返します。1 回あたり数十 MB の差は、積もると無視できません。

App Thinning は何を自動でやってくれるのか

App Thinning は Apple が用意した仕組みで、大きく三つの要素に分かれます。まず Slicing が、端末ごとに必要な解像度のアセットだけを抜き出して配信します。次に On-Demand Resources が、初回には含めないリソースを後から取りに行けるようにします。そして以前あった Bitcode は現在は役割を終えています。

ここで誤解しやすいのは、Slicing は「アセットカタログに正しく入れていれば自動で効く」という点です。逆に言えば、生成コードのようにバンドル直下へ画像を置いてしまうと、Slicing の対象から外れて全解像度が全端末に配られます。Rork Max の出力で容量が膨らむ典型は、まさにここにあります。この落とし穴は見た目には現れないため、レポートを見るまで気づきにくいのが厄介なところです。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦Slicing を効かせるためのアセットカタログ構成と、生成コードでありがちな同梱ミスの直し方
✦On-Demand Resources で初回ダウンロードを 40MB 単位で削るための NSBundleResourceRequest 実装
✦容量予算を MB 単位で決めて運用に乗せるためのチェック手順と判断基準
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

⬡ 開発ツール2026-08-02
2文字の検索語が気づかれないまま0件になる — Expo アプリの日本語検索インデックスを実測で選び直す
SQLite FTS5 の trigram トークナイザは2文字以下の日本語クエリを例外なしで0件にします。2万件のカタログで線形走査・bigram 転置索引・FTS5 を実測し、索引を足すべき閾値と起動コストの実数を出した記録です。
⬡ 開発ツール2026-07-24
同じ通信が同時に何本も飛ぶのを1本に束ねる — 参照カウント付きシングルフライト層の設計
起動直後に同じ API へ何本ものリクエストが同時に飛ぶ多重フェッチを、進行中の Promise を共有して1本に束ねる設計です。束ねる範囲を決めるキーの組み立て方、失敗した Promise を配り続けてしまう罠、呼び出し側の中断が全体を巻き込む罠、そして束ね率を数えて回帰を止めるテストまで、参照カウント付きシングルフライト層の実装を実測の通信ログとともに残します。
⬡ 開発ツール2026-07-18
文字サイズ最大とドイツ語で、生成された画面は静かに詰まる — Rork Max の SwiftUI にレイアウト耐性の検証を通した記録
Rork Max が生成した SwiftUI 画面を疑似ローカライズと最大文字サイズに通し、どこから詰まるかを機械的に洗い出した記録です。ViewThatFits・ScaledMetric・layoutPriority の使いどころと、再生成のたびに回帰を捕まえるスナップショット検証を、実際の数値とともにまとめました。