RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
ブログ一覧

Rork Lab 週間ハイライト(2026年5月16日〜5月22日)— 個人開発の収益を「自動で守る」運用基盤に取り組んだ一週間

週間ハイライトAdMobCrashlyticsRork Max個人開発オブザーバビリティFirebase Remote Config

今週も Rork Lab をご覧いただき、ありがとうございます。

5月16日〜22日の一週間は、**「個人開発の収益とユーザー体験を、リリースを挟まずに自動で守る運用基盤」**を、Rork の文脈で言語化することに集中した一週間になりました。AdMob・Crashlytics・Firebase Remote Config を連動させたアーキテクチャ、StoreKit 2 と App Store Server API の3層構成、Sentry・Crashlytics・Cloudflare Logs を一本化したオブザーバビリティ。どれも本番アプリの障害と何度も向き合った経験から、後で振り返ってまとめ直した内容です。

並行して Rork Max の SwiftUI 生成を実機で検証し、iPhone Air と iPad の解像度対応、iOS 17 系のウォッチドッグ・ITMS-90683 リジェクト・Linking 周りのトラブル、Android の AsyncStorage 大容量問題なども順番に整理しました。記事数は多めでしたが、どれも「実際に手元で起きた問題」を起点に書いています。今週も、読んでくださる方の判断材料に少しでもなれば嬉しいです。

個人開発の収益を「自動で守る」運用基盤を3本のプレミアム記事に分解した

今週、Rork Lab のテーマの中心になったのが「リリースを挟まずに収益とユーザー体験を守る運用設計」です。3本のプレミアム記事を意図的に連動させて出しました。

最初の1本は Rork × Firebase Remote Config で AdMob を本番のまま安全に切り替える — 起動広告と頻度キャップを「リリースなし」で動かす運用 です。Beautiful HD Wallpapers の Android 版で、起動広告のロード成功率が低下した日に「アプリをアップデート申請せずに頻度キャップだけ調整する」必要に迫られた経験から書きました。Remote Config の整数キーに interstitialMinIntervalSec を入れるだけで済ませようとして、初期値のキャッシュとデフォルト値の取り違えで本番が壊れかけた話まで含めて、運用上の落とし穴を一本にまとめています。

2本目が クラッシュ率上昇時にAdMobを自動で絞る『収益を守る自動制動』アーキテクチャ — Rork × Firebase Remote Config × Crashlytics の連動設計 です。Crashlytics の crash-free users が 99.5% を切り始めたとき、私が手動で広告頻度を絞っていた作業を、Cloud Functions + Remote Config で自動化した実体験を書きました。手動運用では夜中の異常に気付けず、レビューが荒れてから慌てる、という経験を何度か繰り返した末の設計です。閾値の決め方や、誤検知でアプリ全体の収益を落とさないためのヒステリシスの取り方まで踏み込んでいます。

3本目が 個人開発で『本番障害の自動応答』を仕組み化する ― Crashlytics・Sentry・Slack 通知・段階的ロールバックの設計 です。アプリを4本同時に運用していると、自分が寝ている時間帯にクラッシュが集中することがあります。Slack 通知を4階層に分け、深夜の軽微なものはミュート、致命的なものだけ電話通知、という運用に切り替えるまでの試行錯誤と、Remote Config を使った段階的ロールバックの実装パターンをまとめました。

3本を一気に出した理由は単純で、これらは個別には機能しないからです。Crashlytics の異常を Sentry が補完し、Remote Config が応答し、Slack が人間に届ける、という連鎖でようやく「夜中に勝手に直っている」状態が成立します。読者の方が同じ運用基盤を組むときに、最初の1本でつまずいて2本目以降に進めない、ということがないよう、3本セットで設計を見せる形にしました。

加えて、Firebase App Check を Rork に段階的に enforcement する — AdMob 不正検知と Crashlytics を壊さない実運用設計 も同じ運用基盤の文脈の記事です。App Check を一気に enforced にすると AdMob のリクエストが弾かれたり Crashlytics 報告が失敗したりするケースがあり、unenforced → 部分 enforced → 全 enforced の段階的移行が必要だった、という実体験を書きました。

AdMob Bidding と Slack 通知 4 階層を本番投入した所感

Rork アプリで AdMob Bidding を本番投入した実装メモ — 5 AdNetwork 同時入札の eCPM 推移と運用設計 は、Liftoff・InMobi・Unity Ads・AppLovin・Google AdMob の5社を同時に Bidding 構成で回したときの eCPM 推移をまとめた記事です。導入当初の数日は eCPM が下がることが多い、というのは経験的に分かっていたのですが、今回は具体的な日次推移を計測できる体制で投入したので、数値も含めて記事にしました。

AdMob のダッシュボードを毎日見ない運用に切り替えた所感 — Rork アプリで Slack 通知 4 階層を組んでから 2 ヶ月 は、上記アーキテクチャの「実際に2ヶ月運用した感想」のような位置づけです。AdMob ダッシュボードを毎朝開く習慣を、4 階層の Slack 通知に置き換えたことで、何が変わって何が残ったかを正直に書きました。「ダッシュボードを毎日見ないと不安」という感覚は、通知設計の質の問題でもある、というのが現時点の私の結論です。

Rork Max の実装範囲を、壁紙アプリ更新の文脈で計測した

今週は Rork Max の生成範囲についても、引き続き実機で検証しました。

Rork Max の SwiftUI 機能を壁紙アプリ開発で検証した結果 — 実際に動いた機能と手を入れた機能 は、Beautiful HD Wallpapers の更新作業中に、Rork Max が生成する SwiftUI のうち「そのまま使えた箇所」と「手を入れざるを得なかった箇所」を分けて整理した記事です。スライドショー的なメイン画面の生成は予想以上に素直に出てきた一方で、UIScrollView 連携が必要な箇所や、@Observable@State の使い分けが必要な状態管理は、手で書き直すケースが多めでした。

Rork のコード生成は本番に使えるか — 累計5,000万DL開発者が実機テストで見つけた3つの落とし穴 は、もう少し広い範囲を見て、コード生成全般の落とし穴を「個人開発12年の感覚」でまとめた記事です。再ビルド時に同じプロンプトでも生成結果が微妙に変わる挙動への向き合い方、生成コードの命名規則の揺れ、エラーハンドリングが省略されがちな傾向、の3点を中心に書いています。

Rork Max を FlutterFlow と Replit に並べてアプリ事業者として採用した判断軸 は、AI 系のアプリビルダー3つを「個人で月数アプリを回す事業者」の視点で並べた記事です。技術ベンチマークではなく、自分の事業の中でどれが収益と時間のバランスで合うか、という極めて個人的な採用判断を書きました。同じ評価軸でも、扱うアプリの種類と更新頻度で結論は変わります。

Rork Max のオブザーバビリティスタック設計 — Sentry・Crashlytics・Cloudflare Logs を一本化する個人開発者の運用知見 も、Rork Max で作ったアプリを本番に出すときの観測基盤を3層に分けて整理しました。1人で4本同時運用するからこそ、「同じ事象が3つの場所に分散すると気づけない」という前提で設計してあります。

Rork と Claude on Xcode を並行で回した1ヶ月

Rork と Claude on Xcode を並行で回した1ヶ月の所感 — 壁紙アプリ更新で見えた使い分け は、Rork で UI のたたき台を作り、Claude on Xcode で Swift 側のロジックを書き直す、という二段運用を Beautiful HD Wallpapers の更新で実際に通した記録です。Rork は「形を出すまで」が圧倒的に速く、Claude on Xcode は「形を整える」段階で頼りになる、というのが1ヶ月運用してみての所感でした。それぞれを単体で評価すると見落としがちな相補性があります。

iOS 17 系と Android 13 系の現実を、ひととおり書き直した

iOS の最新解像度と iPad、それに Android の AsyncStorage 周りで、今週は実務でハマった話を順番に記事にしました。

Rork で作った iOS アプリを iPhone Air と 17 Pro シリーズに対応させる — 2026年の解像度ごとのレイアウト調整パターン は、iPhone Air(420×912)・17 Pro(402×874)・17 Pro Max(440×956)の3機種にレイアウトを通すために、DefineManager.h の三項演算子を29箇所追加した話を中心に書きました。複数機種を同時にサポートする際の判定軸を整理しています。

Rork 生成アプリを iPad で動かしてから直した、3週間ぶんの設計メモ は、Rork で生成した iPhone 向けレイアウトを iPad に通すために、3週間かけて手を入れた設計判断の記録です。Universal 構成にするか専用ターゲットを切るか、という最初の判断が後の作業量を大きく分けます。

Rork Max 製 iOS アプリの Firebase CocoaPods を Swift Package Manager へ移行した実録 は、2026年10月の CocoaPods 配信停止に向けて、Relaxing Healing で先行検証した SPM 移行手順をまとめました。xattr -w com.dropbox.ignored 1 で Dropbox 競合コピーを避ける小ワザも含めて、実際の作業手順そのままです。

Rork で VoiceOver と Dynamic Type を本番品質に整える実装メモ は、Rork が生成する SwiftUI に VoiceOver のラベルと Dynamic Type の対応を入れて、Beautiful HD Wallpapers の現行アクセシビリティ品質に近づけた工程を書きました。アクセシビリティは「後付け」になりがちな領域ですが、Rork の構造を理解すれば差し込みやすい部分も多いです。

Rork × StoreKit 2 × App Store Server API — 個人開発アプリのサブスク基盤を3層で守る実装設計 は、StoreKit 2 の Transaction.currentEntitlements async sequence と App Store Server API のサーバー検証を、Cloud Functions と組み合わせて「個人開発者でも維持できる3層構成」にする実装を書きました。

iOS のリジェクト・クラッシュ系トラブル

iOS 系では、実務で詰まりやすいトラブルにも順番に向き合いました。

RorkでビルドしたiOSアプリがTestFlightで「ITMS-90683」拒否される — Info.plistの使用目的文字列の埋め方 は、Rork が生成する Info.plist に NSCameraUsageDescription 等が抜けていたケースの対処です。

iOS の 0x8badf00d ウォッチドッグ強制終了に Rork アプリが落ちるときの対処 は、起動シーケンスで重い同期処理が走り、Watchdog でアプリが落とされたときの設計上のチェックポイントです。init() でやるべきこと・やるべきでないことの境界を、実際のクラッシュログを元に整理しました。

Rork Max SwiftUI アプリのクラッシュログが読めない:dSYM アップロード設定の落とし穴 は、Crashlytics でシンボリケーションが効かないときに、${PODS_ROOT}/FirebaseCrashlytics/run のスクリプトと Build Settings の DWARF with dSYM File の組み合わせを確認する手順です。

Rork で Linking.canOpenURL が iOS だけ false を返す ─ LSApplicationQueriesSchemes 設定漏れの直し方 は、iOS 9 以降の LSApplicationQueriesSchemes 制約に Rork の生成コードが対応していないケースの対処を書きました。

Android 13 系のトラブル

Android 側では、本番で実際に観測した問題を中心に取り上げました。

Rork で AsyncStorage に大容量データを保存すると Android で CursorWindow エラーが出る原因と対処 は、SQLite の CursorWindow が2MB上限で、Rork のデフォルト AsyncStorage 実装と組み合わせると壁紙系アプリでヒットしやすい、という話です。代替実装としての MMKV への移行手順まで含めて書いています。

Play Store の密度分割で画像が消えた — Rork 製 Android アプリの drawable-nodpi 対策 は、Play Store の密度別 APK 分割で drawable-mdpi が含まれないバンドルになり、低密度デバイスで画像が真っ白になった事象への対処です。drawable-nodpi/ への配置で根本対策しました。

テーマ切替の白画面バグを recreate() なしで解決した話 — 壁紙アプリ12年の実体験 は、Activity の recreate() を使わずに AppRestarter.safeRestart パターンでテーマ切替を完結させる設計の解説です。

Rorkアプリの広告ゲートを入れ子で書くと詰まる理由 — 並列構造とad-free Source of Truthで解決した話 は、戻るボタンに広告ゲートを入れ子で書くと優先度が暗黙化してデバッグが困難になる問題と、並列独立構造で書き直した実装の比較です。

RorkのFlatListが突然クラッシュする - Stateの直接変更が原因のパターンと防御的コピー修正法 は、Beautiful HD Wallpapers v2.1.0 で 28 日間に 50 件以上発生していた RecyclerView IndexOutOfBoundsException を、防御的コピーパターンで根治した経験を書きました。

ASO とレビュー対応の現場感

App Store のレビュー返信を Claude in Chrome に任せた3ヶ月の所感 は、多言語レビューの返信業務を Claude in Chrome に任せ始めて3ヶ月の運用実感をまとめました。1セッションで30〜40件処理しつつ、App Store の送信間隔(約8秒)を守る運用が安定してきたところです。「返信文の品質」と「ペナルティを避ける制約」を両立させるための具体的な工夫を書いています。

Rork で作ったアプリの最初の 72 時間で起きること — クラッシュ・レビュー・広告の優先順位 は、リリース直後の72時間に発生しがちなクラッシュ・レビュー・広告メトリクスの異常を、どの順序で対処するか、という運用判断を書きました。

Expo の expo start --offline で validateDependenciesVersions が外れない時の解決手順 は、Rork から派生して Expo CLI 単体で使う場面で詰まりやすいオフライン起動時のチェック挙動への対処を書きました。

来週の Rork Lab に向けて

今週は「収益とユーザー体験を、リリースを挟まずに自動で守る」というテーマで、運用設計系のプレミアム記事を集中して出した一週間でした。本番アプリを4本同時に運用する中で蓄積した、地味だけれど効く設計の言語化に時間を使えたと感じています。

来週は、Rork で作ったアプリのレビュー対応・ローカライズ・課金まわりの「リリース後の運用」に重心を置く予定です。引き続き、実際に動かして確かめたことだけを書いていきます。

ここまでお読みいただきありがとうございました。みなさまの開発が、少しでも穏やかに進む週末になりますように。