発熱と省電力モードに合わせて、重い処理を静かに落とす設計
ProcessInfoのthermalStateと省電力モードを監視し、発熱時やバッテリー残量が少ないときに重い処理を段階的に落とす設計です。品質レベルを一箇所で決めて各機能をティアに従わせる実装、実機での確認方法までをSwiftのコードとともに整理します。
Rork で作ったリストのスクロールが重い — 画像キャッシュとプリフェッチの設計
Rork が生成した FlatList は画像が増えるとスクロールがカクつきます。expo-image のキャッシュ、recyclingKey、プリフェッチ、FlashList への移行を実機の数値とともに整理し、滑らかさを取り戻すまでの設計を残しました。
Rork Max のアプリ容量を削る — App Thinning と On-Demand Resources の使いどころ
Rork Max が生成した SwiftUI アプリは画像やフォントを素直に同梱するため、放っておくと容量が膨らみます。App Thinning と On-Demand Resources を使って初回ダウンロードを軽くする実装手順と、容量予算の決め方を実機の数字とともに整理しました。
WidgetKit のタイムラインを更新予算と向き合って設計する — 壁紙アプリのウィジェットが止まった理由
ホーム画面ウィジェットが「夕方になると更新されなくなる」のはなぜか。WidgetKit のタイムライン設計を、更新予算・リロードポリシー・エントリ密度の3点から整理しました。TimelineProvider の実コード、予算を使い切らないエントリ設計、relevance による優先度づけまで、個人開発で6本の壁紙アプリを運用しながら詰めた知見を共有します。
壁紙アプリのバイナリサイズを抑える — 画像をバンドルから切り離す設計判断
壁紙アプリのバイナリサイズを抑えるため、画像を同梱からリモート配信へ切り離す設計判断を実測値とともに整理します。カタログ設計、初回表示を遅くしないプレフェッチ、On-Demand Resourcesの検討、フォーマット最適化、CDN運用の注意点まで扱います。
Android Vitals の ANR 率が上がったとき — メインスレッドを止めない React Native 設計ノート
Rorkで書き出したReact NativeアプリでAndroid VitalsのANR率がしきい値を超えたときの記録です。CrashlyticsとVitalsで発生箇所を挟み込み、起動時の同期初期化をメインスレッドから外し、画像デコードやリスト描画の詰まりを解消するまでの切り分けを共有します。
起動時間を『予算』として管理する — 6本のアプリでSDK初期化を後ろ倒しにした設計記録
起動時間を場当たり的に速くするのではなく、フェーズごとに予算を割り当てて守る運用に切り替えた記録です。Rork で書き出した6本のアプリでSDK初期化を後ろ倒しにし、CIで予算超過を止めるまでをまとめました。
iOSの壁紙アプリでサムネイル一覧のカクつきを消す — ImageIOダウンサンプリングの実装メモ
大量のサムネイルを並べるとスクロールがカクつき、メモリも膨らむ。原因はメインスレッドでのフルサイズ画像デコードでした。ImageIOによるダウンサンプリングとプリフェッチで、実測でメモリを約80%削減した過程をまとめます。
Rork iOSアプリのメモリプレッシャー対策 — 壁紙アプリ運用で磨いた5段階解放アーキテクチャ
Rork経由でビルドしたiOSアプリのメモリプレッシャー対策を、5段階解放という考え方で整理しました。壁紙アプリ群を12年運用してきた中で見えた優先順位と、Instrumentsでの計測手順を実装込みで紹介します。
FlatList の onEndReached が連続発火して API を叩きすぎる問題の原因と対処
FlatList の onEndReached が画面遷移時や初期描画時に何度も呼ばれて、ページネーション API を多重に叩いてしまう問題。Rork で生成したリスト画面でも頻発するこの挙動の原因と、実運用で使える対処パターンを整理しました。
RorkアプリでZustand v5を導入したら、Context APIで詰まっていた再レンダリング問題が解消した話
RorkアプリでContext APIによる再レンダリング多発をZustand v5への移行で解決した経緯です。v4からの変更点、インストールと基本の使い方、認証状態管理の実践パターン、どちらを選ぶべきかの判断、少しずつ移行する進め方までを紹介します。
壁紙アプリの画像が遅かった:Rork で expo-image に切り替えて分かったこと
壁紙アプリの画像表示が遅い問題を、Rorkの標準Imageコンポーネントからexpo-imageへの切り替えで改善した実体験です。切り替えを指示するプロンプト、実装コード、blurhashプレースホルダーの生成方法、実機で確認できた変化までを順に説明します。