RORK LABEN
RAISE — Rork が1,500万ドルを調達しました。個人開発者がアプリを出すまでの距離を詰める方向に、資金が向かっている形ですENGINE — Rork Max は Claude Code と Opus 4.6 の組み合わせで動きます。複雑なアプリロジックや推論での差は、この構成に由来する部分が大きいと説明されていますCLOUDMAC — 生成された Swift はクラウド上の Mac 群でコンパイルされます。手元に Xcode を置かないまま、実機テストから App Store 提出まで届く導線ですAR — Rork Max は ARKit と LiDAR スキャンにネイティブ対応しています。3D オブジェクトの配置や空間コンピューティングを含むアプリが射程に入りますTRACTION — Rork Max の発表は X で800万表示を超え、2週間で年間収益が倍になったと報告されていますTRAFFIC — Rork は月間743,000訪問・成長率85%と報告されています。ノーコードのアプリ生成が試作の入口として定着しつつある数字ですRAISE — Rork が1,500万ドルを調達しました。個人開発者がアプリを出すまでの距離を詰める方向に、資金が向かっている形ですENGINE — Rork Max は Claude Code と Opus 4.6 の組み合わせで動きます。複雑なアプリロジックや推論での差は、この構成に由来する部分が大きいと説明されていますCLOUDMAC — 生成された Swift はクラウド上の Mac 群でコンパイルされます。手元に Xcode を置かないまま、実機テストから App Store 提出まで届く導線ですAR — Rork Max は ARKit と LiDAR スキャンにネイティブ対応しています。3D オブジェクトの配置や空間コンピューティングを含むアプリが射程に入りますTRACTION — Rork Max の発表は X で800万表示を超え、2週間で年間収益が倍になったと報告されていますTRAFFIC — Rork は月間743,000訪問・成長率85%と報告されています。ノーコードのアプリ生成が試作の入口として定着しつつある数字です
記事一覧/アプリ開発
アプリ開発/2026-06-13上級

壁紙パックをアプリ審査なしで配る — リモートアセットのバージョニングと差分配信を6本で運用する設計

新しい壁紙を追加するたびにアプリを再申請していると、運用が止まります。マニフェスト方式のバージョニングと差分ダウンロード、キャッシュ無効化とロールバックを、6本並行運用の実装と転送量の実測値とともに整理しました。

アセット配信2壁紙アプリ27バージョニングExpo155運用設計7

プレミアム記事

季節の壁紙を10枚追加するだけのために、アプリのビルドを上げ、スクリーンショットを差し替え、App Store の審査に2日待つ。リリース直後はこれで回っていました。けれど個人開発で壁紙系を6本並行で運用するようになると、この手順が完全にボトルネックになりました。1本の審査待ちのあいだに別の3本でも追加したい画像が積み上がり、結局「今週はまとめて来週」と先送りする悪循環に入っていたのです。

コンテンツの追加は、本来アプリのコードとは無関係です。画像が増えても挙動は変わりません。それならアプリ審査の外に出してしまおう、と決めて作り直したのが、ここで紹介するリモートアセットパックの仕組みです。動かしているコードと、切り替え前後で測った転送量を添えて共有します。

なぜ「バンドル同梱」をやめたのか

最初の設計では画像をアプリにバンドルしていました。オフラインでも確実に表示でき、初回起動が速いという利点があります。一方で、画像を1枚増やすたびにアプリ全体を再申請する必要があり、IPA も膨らみ続けます。半年で 90MB を超えたあたりで限界を感じました。

判断の軸は2つだけに絞りました。ひとつは更新頻度です。週に何度も差し替えるコンテンツはリモート、リリース時に固定されるUI素材は同梱。もうひとつは初回体験です。起動直後に必ず見える数枚(デフォルトの表紙やオンボーディング画像)は同梱し、それ以外はリモートから取りに行く。この線引きで、同梱アセットを20枚程度に固定できました。

マニフェスト方式 — 何を配って何を消すか

リモート配信の中心になるのは、画像そのものではなくマニフェストです。アプリは起動時にまずマニフェストを取りに行き、そこに書かれた指示にしたがって画像を取得します。スキーマはこうしています。

{
  "packVersion": 142,
  "minAppVersion": "3.2.0",
  "generatedAt": "2026-06-13T02:00:00Z",
  "categories": [
    {
      "id": "seasonal-rainy",
      "title": { "ja": "雨の季節", "en": "Rainy Season" },
      "items": [
        {
          "id": "rainy-0142",
          "hash": "b7f3c1a9",
          "w": 1290, "h": 2796,
          "url": "https://cdn.example.com/packs/rainy-0142.heic",
          "thumb": "https://cdn.example.com/thumbs/rainy-0142.webp",
          "addedIn": 142
        }
      ]
    }
  ]
}

ポイントは hashaddedIn です。hash は画像の内容から生成した短い指紋で、これが変わったときだけ再ダウンロードします。addedIn はその画像が初めて登場したパックバージョンで、差分計算に使います。minAppVersion は、新しいフォーマットの画像(たとえば後から導入した動く壁紙)を古いアプリに配らないための安全弁です。

マニフェスト自体は CDN のエッジに置き、Cache-Control: max-age=300 で5分だけキャッシュします。短くしているのは、緊急で1枚消したいときに最大5分で全端末へ伝播させたいからです。画像本体は内容が変わらない前提なので max-age=31536000, immutable で1年キャッシュします。

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

この記事の続きを読む

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

この記事で得られること
コンテンツパックをアプリ審査から切り離し、配信を即時化するマニフェスト設計の具体的なスキーマ
全件再取得を避ける差分ダウンロードで、更新1回あたりの転送量を平均 88% 削減した実装
壊れたパックを30秒で巻き戻すバージョンピン留めとロールバック手順(6本横断)
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

アプリ開発2026-06-09
壁紙アプリのバイナリサイズを抑える — 画像をバンドルから切り離す設計判断
壁紙アプリは画像を増やすほどバイナリが膨らみます。同梱とリモート配信の境界をどこに引くか、初回表示を遅くしないプレフェッチ設計、フォーマット最適化までを実測値とともに整理しました。
アプリ開発2026-07-14
壁紙を長押しして、プレビューと保存メニューを出す — Rork の Expo アプリで context menu を組む
壁紙ギャラリーのカードを長押ししても何も起きない。iOS利用者はプレビュー付きのメニューを期待します。Pressableだけでは届かない理由から、zeegoでのネイティブcontext menu実装、スクロールとの競合解消、保存・共有アクション、Android向けの自前フォールバックまで、動くコードでまとめます。
アプリ開発2026-08-03
1.10.0 の端末が強制アップデートに落ちる — 最小サポートバージョン判定を4実装で実測する
リモート設定で最小サポートバージョンを引き上げるゲートを、バージョン比較の4実装で実測しました。localeCompare が同値と言い切る箇所、fail-open の境界、審査中バージョンを閾値にした事故までを記録しています。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →