React Compiler を Expo に入れて、手書き memo を 41 箇所消しました
Rork が生成した React Native 画面に React Compiler を導入し、再レンダリング回数を Profiler で実測しました。手書き memo/useCallback の削除判断、効かない箇所の見分け方、CI での回帰検知までをまとめています。
Rork Max の SwiftUI を @Observable へ移す — ObservableObject で広がっていた再描画を絞り込む
Rork Max が生成する SwiftUI アプリは ObservableObject と @Published をよく使いますが、状態が一つ変わるだけで購読しているビュー全体が再評価されます。Observation フレームワークの @Observable へ移すことで、プロパティ単位に再描画を絞り込む手順と、Instruments で実測したビュー実行回数の変化を、個人開発の作業ログとしてまとめました。
New Architecture へ移行したら本番だけ画面がカクつくとき — interop 層への静かなフォールバックを計測して切り分ける運用メモ
New Architecture へ切り替えた Rork アプリが、開発中は快適なのにリリースビルドの実機でだけ一覧スクロールがカクつく。原因は旧式ネイティブモジュールが interop 層へ静かにフォールバックしていたことでした。検知の計測と段階的な切り戻しの実務メモです。
画面を離れてもアニメーションが回り続ける — Rork(Expo)アプリのフォーカス連動でバッテリーを守る
Rork が生成した Expo アプリで、別画面に進んだりホームに戻ったあともグラデーションや呼吸アニメーションが裏で回り続け、ジャンクとして表に出ないままバッテリーを静かに削っていく——その原因は Reanimated の withRepeat が UI スレッドで走り続けることと、ナビゲーションスタックが画面をマウントしたまま保持することにあります。useIsFocused と AppState を束ねたライフサイクル設計で、画面外とバックグラウンドのループを確実に止める実装を、動くコードで示します。
壁紙アプリの画像キャッシュが静かに膨らんでメモリで落ちる — Rork運用で効いた計測と上限設計の運用メモ
画像が主役のRorkアプリで、ディスクキャッシュとメモリ常駐が少しずつ膨らみ、OOMクラッシュとして表面化する問題への対処。実測フック・キャッシュ上限・配信側リサイズまで、運用で効いた順に実装コード付きで整理します。
Rork Max の SwiftUI グリッドが画像でカクつくときに効く、スクロール最適化
Rork Max が生成した SwiftUI の画像グリッドがスクロールでカクつく原因を計測し、ImageIO のダウンサンプリング・デコードのバックグラウンド化・セルの安定化で実機のヒッチを減らす実装手順をまとめました。
発熱と省電力モードに合わせて、重い処理を静かに落とす設計
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本の壁紙アプリを運用しながら詰めた知見を共有します。
壁紙アプリのバイナリサイズを抑える — 画像をバンドルから切り離す設計判断
壁紙アプリは画像を増やすほどバイナリが膨らみます。同梱とリモート配信の境界をどこに引くか、初回表示を遅くしないプレフェッチ設計、フォーマット最適化までを実測値とともに整理しました。
Android Vitals の ANR 率が上がったとき — メインスレッドを止めない React Native 設計ノート
Rork で書き出した React Native アプリで Android Vitals の ANR 率がしきい値を超えたときの原因切り分けと、メインスレッドを塞がない実装・運用の記録です。