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プレースホルダーの生成方法、実機で確認できた変化までを順に説明します。
Rork Max + Swift Charts でアプリにグラフを実装する手順と、データ点が増えると重くなる原因
Rork Max が生成する SwiftUI コードに Swift Charts を組み込む流れと、1,000 点を超えたあたりからカクつき始める原因、そして実機で滑らかに描画させるための間引きとアニメーション制御の実装パターンを共有します。
Rorkアプリのアニメーションがカクつく — フレームドロップの根本原因を特定して直した手順
Rorkで生成されたアニメーションがカクつく問題の根本原因と修正手順を解説します。JSスレッドとUIスレッドの分離、useNativeDriverの使い方、フレームドロップの診断方法まで実践的にまとめました。
FlatList でカクつき始めたら読む — Rork アプリを FlashList v2 で快適にする実装手順
Rork で生成したアプリの長いリストが重くなったとき、FlashList v2 へ移行することでスクロールが大幅に滑らかになります。estimatedItemSize が不要になった v2 の思想を踏まえた、現実的な移行手順を解説します。