RORK LABEN
MAX — Rork MaxはReact NativeではなくネイティブSwiftアプリを生成し、Appleエコシステム全体を対象にしますDEVICES — iPhone・iPad・Apple Watch・Apple TV・Vision Pro・iMessageまで、一つの記述から広げられますNATIVE — AR・LiDARスキャン、Metalによる3Dゲーム、ウィジェット、Dynamic Island、オンデバイスCore MLを解放しますSEED — RorkはLeft Lane Capital主導の$15Mシードを調達し、Peak XVやa16z Speedrunも参加しましたPAPERLINE — アプリビルダーPaperlineを買収し、エンジニアリング人材の獲得を続ける姿勢ですMARKET — 月間743,000訪問超。Gartnerは2026年末までに新規アプリの75%がローコード/ノーコードで作られると見込みますMAX — Rork MaxはReact NativeではなくネイティブSwiftアプリを生成し、Appleエコシステム全体を対象にしますDEVICES — iPhone・iPad・Apple Watch・Apple TV・Vision Pro・iMessageまで、一つの記述から広げられますNATIVE — AR・LiDARスキャン、Metalによる3Dゲーム、ウィジェット、Dynamic Island、オンデバイスCore MLを解放しますSEED — RorkはLeft Lane Capital主導の$15Mシードを調達し、Peak XVやa16z Speedrunも参加しましたPAPERLINE — アプリビルダーPaperlineを買収し、エンジニアリング人材の獲得を続ける姿勢ですMARKET — 月間743,000訪問超。Gartnerは2026年末までに新規アプリの75%がローコード/ノーコードで作られると見込みます
記事一覧/開発ツール
開発ツール/2026-07-15上級

転送量が半分になったのに、体感は速くならなかった — 壁紙アプリの画像フォーマットとデコード費用

AVIF に寄せれば配信コストは下がります。けれど端末のデコード時間まで測ると話が変わりました。Accept ネゴシエーションとマニフェスト方式の分岐、端末別フォールバック、段階移行の順序を実測値とともに整理しました。

Rork508Expo141画像フォーマットAVIFCDN

プレミアム記事

R2 の請求を見て、AVIF に変えれば半分になると計算した

壁紙アプリを6本、並行で運用しております。画像はアプリに同梱せず、Cloudflare R2 から配る構成です。ある月の転送量が想定を上回っていて、内訳を見ると9割以上がサムネイルと原寸画像でした。

AVIF なら見た目を保ったまま半分になる、という話は方々で見かけます。手元でも変換してみました。原寸 2,796×1,290 の壁紙 400 枚を JPEG quality 82 から AVIF quality 50 に置き換えたところ、合計 1.41 GB が 0.68 GB になりました。52% の削減です。

数字としては期待どおりでした。ところが実機に配ってギャラリーをスクロールすると、速くなった感じがしません。手元の Pixel 4a に至っては、明らかに引っかかるようになっていました。

転送量というひとつの数字だけを見て、削れば速くなると思い込んでいた。それがこのときの正体でした。

体感は「転送」と「デコード」の合計で決まる

画像が画面に出るまでには、少なくとも三つの区間があります。ネットワークから落とす時間、圧縮を解いてビットマップに戻す時間、それを描く時間です。フォーマットを変えると、最初の区間は縮み、二つ目の区間は伸びます。

そこで expo-image の onLoadStartonLoad だけでは足りず、区間を分けて測る必要がありました。R2 のログから転送時間を、端末側からデコード完了までを取り、差分をデコード費用として扱っています。

400枚のうち代表20枚を、Wi-Fi(実測 92 Mbps)で3回ずつ計測した中央値です。

フォーマット1枚あたり平均サイズ転送時間デコード時間合計
JPEG q823.6 MB312 ms48 ms360 ms
WebP q802.4 MB208 ms71 ms279 ms
AVIF q501.7 MB147 ms194 ms341 ms

AVIF は転送を 165 ms 縮めた代わりに、デコードで 146 ms を返しています。差し引き 19 ms。誤差の範囲でした。転送量の請求は確かに半分になりましたが、読者の待ち時間はほとんど動いていません。

回線が速いほど、この構図は不利になります。同じ計測を 4G 相当(実測 14 Mbps)に絞ると、AVIF の合計は 1,340 ms、JPEG は 2,105 ms で、今度は AVIF が明確に勝ちました。フォーマットの優劣は端末と回線の組み合わせで反転します。ひとつの平均値で決めると、どちらかの読者を犠牲にすることになります。

古い端末では、デコードが二重に効く

Pixel 4a での AVIF デコードは 1 枚あたり 380 ms 前後でした。iPhone 15 Pro の 194 ms に対して約 1.9 倍です。ハードウェアデコーダを持たない世代では、AVIF は CPU で解かれます。

スクロール中は複数枚が同時に解かれるため、ここが詰まると UI スレッドまで巻き込まれます。実際、Pixel 4a では AVIF 導入後にフレーム落ちが 3.1% から 11.7% へ増えました。転送を削った結果として、体感を悪くしていたわけです。

この現象はメモリ側にも波及します。デコード後のビットマップは、どのフォーマットでも同じ大きさになります。この点は壁紙アプリの画像キャッシュが静かに膨らんでメモリで落ちる話で扱った内容と地続きで、フォーマットを変えてもメモリ予算は1バイトも減りません。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
AVIF で転送量が52%減っても初回表示が速くならない理由を、転送とデコードの内訳を分けた実測値で示します
Accept ネゴシエーションとマニフェスト方式の2案を、CDNキャッシュ効率と運用コストの両面で比較します
端末世代ごとのフォールバック判定と、6本のアプリで変換対象を絞った段階移行の順序を残します
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

開発ツール2026-07-10
React Compiler を Expo に入れて、手書き memo を 41 箇所消しました
Rork が生成した React Native 画面に React Compiler を導入し、再レンダリング回数を Profiler で実測しました。手書き memo/useCallback の削除判断、効かない箇所の見分け方、CI での回帰検知までをまとめています。
開発ツール2026-07-10
クライアントに置いた鍵は公開情報 — Rork 生成アプリの秘密境界とローテーション手順
生成された Expo アプリの .ipa を展開すると、環境変数がそのまま文字列として現れます。鍵を3層に分類し、置けないものをプロキシへ逃がし、漏れた前提のローテーション手順書を用意するまでの設計をまとめます。
開発ツール2026-07-09
生成のたびに崩れるレイヤ境界を、CIで守る — Rork製Expoアプリの依存ルール機械化
Rorkが生成したExpoアプリを長く運用すると、画面から直接APIクライアントを叩くimportが静かに増えていきます。ESLintのゾーン制約とdependency-cruiserで依存の向きを機械化し、CIで落とすまでの実装を残します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →