すべての記事
壁紙アプリ6本を1つのコードベースから出し分ける — app.config.ts と EAS で組むホワイトラベル構成
似た構造の壁紙アプリを別々のリポジトリで保守していると、修正が6箇所に分散して破綻します。1つのコードベースから APP_VARIANT で6本のアプリを出し分けるホワイトラベル構成を、app.config.ts と eas.json の実コードと、設定ドリフトを防ぐ検証スクリプトまで含めてまとめました。
Android Vitals の ANR 率が上がったとき — メインスレッドを止めない React Native 設計ノート
Rorkで書き出したReact NativeアプリでAndroid VitalsのANR率がしきい値を超えたときの記録です。CrashlyticsとVitalsで発生箇所を挟み込み、起動時の同期初期化をメインスレッドから外し、画像デコードやリスト描画の詰まりを解消するまでの切り分けを共有します。
Metro・EASのビルドが『JavaScript heap out of memory』で落ちるときの対処
RorkやExpoのアプリをビルドしている途中で『FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory』が出て止まる——その原因と、ローカル・EAS両方での具体的な対処をまとめました。
起動時間を『予算』として管理する — 6本のアプリでSDK初期化を後ろ倒しにした設計記録
起動時間を場当たり的に速くするのではなく、フェーズごとに予算を割り当てて守る運用に切り替えた記録です。Rork で書き出した6本のアプリでSDK初期化を後ろ倒しにし、CIで予算超過を止めるまでをまとめました。
Rorkアプリを Google Play にアップロードできない署名キーエラーの直し方
Rorkで作ったアプリを Google Play にアップロードすると「間違った鍵で署名されています」と弾かれる——よくある署名キーの不一致エラーについて、原因の見分け方と環境別の具体的な対処手順を整理しました。
AdMobメディエーションの優先度を見直して、eCPMの底上げを試した記録
個人開発の壁紙アプリで、AdMobメディエーションのネットワーク優先度を手動で見直しながらeCPMの底上げを試している記録です。自動最適化だけに任せていた頃との違いと、運用で気づいたことをまとめます。
iOSアプリから壁紙を『設定』まで導く現実的な設計 — Save to Photos の権限と Shortcuts 連携
iOSでは壁紙をアプリから直接設定できません。add-only 権限での保存、Live Photo の扱い、設定アプリへの誘導、Shortcuts オートメーションまで、6本の壁紙アプリで詰めてきた実装と計測値をまとめます。
クラッシュフリー率を『予算』として運用する — 個人開発 6 アプリで撤退と投資を判断する SLO 設計ノート
壁紙アプリ 6 本を並行運用するなかで、クラッシュフリー率を「良い・悪い」の二値ではなくエラーバジェットとして扱うようにした設計を共有します。バーンレートを撤退・投資判断のゲートに変える運用ノートです。
AdMobの広告ユニットを棚卸しする — App Open広告のクールダウン設計まで
報酬型とインタースティシャルが増えて、どのユニットがどの画面で使われているか分からなくなったときの棚卸し手順と、起動のたびに出てしまうApp Open広告に4時間のクールダウンを入れる設計を、累計5,000万DLの運用経験からまとめます。
iOSの壁紙アプリでサムネイル一覧のカクつきを消す — ImageIOダウンサンプリングの実装メモ
大量のサムネイルを並べるとスクロールがカクつき、メモリも膨らむ。原因はメインスレッドでのフルサイズ画像デコードでした。ImageIOによるダウンサンプリングとプリフェッチで、実測でメモリを約80%削減した過程をまとめます。
Rork で書き出したアプリの native 設定を Expo config plugin で一元管理する
prebuild のたびに消える AdMob ID や ATT 文言を手で書き直していませんか。Rork で書き出したアプリの native 設定を、自作の Expo config plugin で再現可能にし、6本の壁紙アプリで共有した実装記録です。
Rork で『TurboModuleRegistry.getEnforcing could not be found』が出たときの原因と対処
New Architecture が標準になってから増えた『TurboModuleRegistry.getEnforcing(...): could not be found』エラーの読み解き方を解説します。Expo Go と開発ビルドの違い、ネイティブ再ビルドの判断基準、互換性のないライブラリの切り分け手順までコード付きでまとめました。