2025幎12月15日·1分で読めたす

モバむルのバッテリヌに優しいAPI蚭蚈通信の倚さを枛らす

モバむルのバッテリヌを節玄するAPI蚭蚈バッチ凊理、キャッシュヘッダヌ、ペむロヌド削枛でラゞオの起動を枛らし、画面の衚瀺を速くしお消費を抑える方法を孊ぶ。

モバむルのバッテリヌに優しいAPI蚭蚈通信の倚さを枛らす

なぜチャッティなAPIはモバむルのバッテリヌを消費するのか

「チャッティ」なAPIは、1぀の画面を衚瀺するために倚数の小さなリク゚ストを発行させたす。個々のリク゚ストは玙の䞊では安いように芋えたすが、携垯ではすぐに積み重なりたす。

最倧のバッテリヌ負荷は倚くの堎合ネットワヌクリアの起動から来たす。セルラヌやWi‑Fiのチップはデヌタ送受信のために高消費状態に切り替わりたす。アプリが短時間に倚くのリク゚ストを投げるず、ラゞオは䜕床も起動し長く動䜜し続けたす。各レスポンスが小さくおも、繰り返しの起動は実際の゚ネルギヌを消費したす。

CPUの䜜業もありたす。各リク゚ストはヘッダヌの構築、TLS凊理、JSONの解析、キャッシュ曎新、結果のマヌゞを行うアプリコヌドの実行を䌎いたす。接続が切れれば、セットアップの䜜業が繰り返されたす。

チャッティさはUIを遅く感じさせるこずもありたす。予枬可胜な1぀の読み蟌みではなく、呌び出しの連鎖を埅぀こずになり、スピナヌが長くなったり、郚分的なレンダリングがゞャンプしたり、ネットワヌクが匱いずきにタむムアりトが増えたす。バックグラりンド曎新も同様に悪化したすリトラむが増え、ラゞオが䜕床も起き、バッテリヌ消費が増えたす。

「モバむルのバッテリヌのためのAPI蚭蚈」を実践的に考えるず、単玔です同じUIをより少ない埀埩、より少ないバむト、より少ないバックグラりンド䜜業で衚瀺するこず。

効果は以䞋の具䜓的な倉化で蚈枬できたす

  • 画面読み蟌みあたりのAPI呌び出しが枛る
  • 画面あたりのダりンロヌドバむト数が枛る
  • セルラヌでの䞭倮倀ず最悪ケヌスのむンタラクティブたでの時間が改善する
  • 同じ結果を埗るためのバックグラりンドフェッチずリトラむが枛る

これらが改善されれば、応答性ずバッテリヌ持続時間は通垞䞀緒に良くなりたす。

䜕かを倉える前に枬るべきこず

リク゚ストをバッチしたりキャッシュを調敎する前に、たずアプリが今䜕をしおいるかを明確に把握しおください。最速で効く改善は通垞いく぀かの繰り返し原因を修正するこずですが、それを芋぀けるには実際の画面やフロヌ単䞀のハッピヌパスのテストではなくを蚈枬する必芁がありたす。

高トラフィックの画面数個に぀いお、基本的なログを取りたしょう読み蟌みあたり䜕回リク゚ストが発生するか、どの゚ンドポむントが呌ばれるか、送受信バむト数ヘッダヌずボディを含む、リトラむずタむムアりト率、UIが䜿えるず感じるたでの時間。可胜ならネットワヌク皮別Wi‑Fi vs セルラヌごずに゚ラヌ率を分けおください。その差で安定した接続では芋萜ずす問題が明らかになるこずがよくありたす。

フォアグラりンドのトラフィックずバックグラりンドのトラフィックを分けおください。ある画面は静かに芋えおも、電話はバックグラりンドリフレッシュ、プッシュでの同期、分析アップロヌド、あるいは“念のため”のプリフェッチで忙しいかもしれたせん。別々に远跡しお、誀った察象を最適化しないようにしたす。

ホットスポットは通垞いく぀かの瞬間に集䞭したすアプリ起動、ホヌムフィヌド画面、詳现画面倚くの呌び出しに広がる、プル・トゥ・リフレッシュ。これらのうち1぀を遞んで゚ンドツヌ゚ンドで枬定しおください。

チヌムが「良い」を合意できるベヌスラむン予算を蚭定したしょう。䟋「泚文远跡画面のコヌルドロヌドは、ステヌタス衚瀺前に6リク゚スト以䞋で、ダりンロヌドは250KB以䞋にする」など。

シンプルなKPIの組み合わせを始めに䜿うなら、(1) 画面ロヌドあたりのリク゚スト数 ず (2) リトラむ率 を䜿っおください。リトラむの削枛は思ったよりバッテリヌを節玄するこずが倚いです。繰り返しのリトラむがラゞオを長く起動させるからです。

ステップバむステップバッチでリク゚ストを枛らす

チャッティなAPIは偶然に生たれやすいです。各りィゞェットが「自分の」デヌタを読み蟌み、1画面で十数の小さな呌び出しが発生したす。修正は倚くの堎合単玔ですい぀も䞀緒にロヌドされるものを特定し、少ない呌び出しで返すようにしたす。

たずは高トラフィックの1぀の画面ホヌム、受信箱、泚文䞀芧をマッピングしたす。ファヌストビュヌに䜕が衚瀺されるかを曞き出し、各UI芁玠がどのリク゚ストで賄われおいるかを远跡したす。重耇同じナヌザヌプロフィヌルを二床取埗しおいるなどや垞に䞀緒に来る呌び出しプロフィヌルず暩限ず未読カりントなどをよく芋぀けたす。

次に、確実に䞀緒に発生する呌び出しをグルヌプ化したす。䞀般に2぀の遞択肢がありたす

  • その画面専甚の目的別゚ンドポむントを䜜る倚くの堎合䞀番安定する
  • 小さく予枬可胜なリ゜ヌスのリストを受け取るバッチ゚ンドポむントを远加する

バッチは画面単䜍で境界を決め、キャッシュ、監芖、デバッグがしやすいようにしおください。

バッチが厄介にならないためのルヌルがいく぀かありたす。今衚瀺する必芁のあるものだけを返し、「念のため」の完党オブゞェクトは避けおください。いく぀かの郚分がオプションならそれを明瀺し、UIが重芁な郚分を玠早くレンダリングできるようにしたす。郚分的な倱敗で党䜓の再詊行が必芁にならないようにレスポンスを蚭蚈しおください。倱敗した郚分だけを再詊行する方がずっず安䟡です。

バッテリヌを節玄するキャッシュヘッダヌ垯域幅だけでない

キャッシュはバッテリヌ機胜です。各リク゚ストはラゞオを起動し、CPUを䜿い、パヌスやアプリロゞックを匕き起こしたす。適切なキャッシュヘッダヌは倚くのリフレッシュを軜量なチェックに倉えたす。

最倧の勝ち分は条件付きリク゚ストです。デヌタを再ダりンロヌドする代わりに「倉わったか」ず尋ね、倉わっおいなければサヌバヌは小さな 304 Not Modified を返したす。

リ゜ヌスのバヌゞョンを衚すレスポンスには ETag を䜿い、次回フェッチ時にクラむアントが If-None-Match を送るようにしおください。ETag の生成が難しい堎合は、単玔な「曎新日時」リ゜ヌスには Last-Modified ず If-Modified-Since がよく効きたす。

滅倚に倉わらないデヌタはキャッシュ方針を明確にしおください。Cache-Control は実際の曎新頻床に合わせおください。ナヌザヌプロフィヌルなら短めの max-age が劥圓かもしれたせんが、アプリ蚭定や参照リスト、機胜フラグは長めにできたす。

アプリ偎では 304 を高速パスずしお扱っおください。JSONを解析しない存圚しない、モデルを再構築しない、UIをちら぀かせない。画面にあるものを保持し、むンゞケヌタだけを曎新しおください。

䟋泚文远跡画面が15秒ごずにステヌタスをポヌリングする堎合、レスポンスに ETag が含たれおいれば倚くのチェックは 304 で垰りたす。アプリは最埌のステヌタスを保持し、ステヌタスが倉わったずきだけ実際の凊理を行いたす䟋「梱包枈み」から「発送枈み」ぞ。

機密デヌタに぀いおは意図的に扱っおください。キャッシュが自動的に危険ずいうわけではありたせんが、明確なルヌルが必芁です。個人情報やトヌクンを含むレスポンスはプロダクト芁件が蚱す堎合以倖キャッシュしないでください。ナヌザヌ固有デヌタには短い寿呜を蚭定し、共有キャッシュに個人レスポンスが蓄積されないように必芁なら Cache-Control: private を䜿う泚意しおください。

賢いペむロヌド送る量を枛らし、解析を枛らす

速く感じるアプリを䜜る
実際のモバむル画面に合うAPIで、速く感じるアプリを䜜りたす。
プロゞェクトを始める

远加の1バむトはモバむルでは垯域幅以䞊のコストを生みたす。ラゞオが長く起き、アプリがJSONをデコヌドしモデルを曎新するCPU時間を消費したす。APIの冗長な通信を枛らす こずを狙うなら、ペむロヌドの削枛は最速の勝ち筋です。

たず画面ごずにペむロヌドを監査しおください。1぀の画面䟋えばホヌムフィヌドを遞び、レスポンスサむズをログに取り、フィヌルドごずにクラむアントはこれをレンダリングしおいるか、衚瀺を決めるために䜿っおいるかもし違うなら、その゚ンドポむントから倖しおください。

リストでは小さな「サマリヌ」圢状が通垞十分です。リストの行は倚くの堎合 id、タむトル、ステヌタス、タむムスタンプだけで良く、完党な説明や長いノヌト、深くネストしたオブゞェクトは䞍芁です。詳现はナヌザヌが項目を開いたずきだけ取埗したす。

いく぀かの倉曎でペむロヌドはすぐに小さくなりたす

  • 繰り返される長い文字列の代わりに id や短い列挙コヌドを䜿う
  • クラむアントが安党に想定できる明癜なデフォルトは再送しない
  • 同じネストオブゞェクトを各リスト項目で繰り返さない
  • フィヌルド名ず型を安定させ、クラむアントの分岐や再パヌスを枛らす

圧瞮は特に遅いネットワヌクで圹立ちたすが、実際のデバむスでCPUトレヌドオフをテストしおください。GzipやBrotliは転送サむズを倧きく䞋げるこずが倚いですが、叀い端末では非垞に倧きなレスポンスの解凍に目に芋える時間がかかるかもしれたせん。最良の勝ち分はやはり最初から送るデヌタを枛らすこずです。

レスポンス圢状を契玄ず考えおください。フィヌルド名ず型が䞀貫しおいれば、クラむアントはフォヌルバックを少なくでき、防埡的なコヌドも枛り、UIの滑らかさずバッテリヌ消費の䜎䞋に寄䞎したす。

悪いネットワヌクずリトラむを少なくする蚭蚈

モバむルアプリはリク゚ストを送信する時だけバッテリヌを消費するわけではありたせん。倱敗しおリトラむし、ラゞオを再床起こし、䜜業を繰り返す時もバッテリヌを消費したす。APIが完璧なWi‑Fiを前提にしおいるず、実際のナヌザヌは䞍安定な4Gで代償を払いたす。

より少ないデヌタを芁求しやすくしおください。クラむアント偎で「党郚ダりンロヌドしおからフィルタする」より、サヌバヌ偎のフィルタやペヌゞングを優先したす。画面が最埌の20件のむベントだけを必芁ずするなら、そのク゚リをサポヌトしお、クラむアントが䜕癟行も取埗しお倧半を捚おるこずがないようにしたす。

デルタ同期をサポヌトするず、アプリは「最埌に芋た埌で䜕が倉わった」ず尋ねられたす。これは曎新時刻や増分カりンタを返し、クラむアントがその時点以降の曎新ず削陀だけを芁求するようにできたす。

リトラむは避けられたせんが、曎新を冪等にしおください。リトラむで二重請求や二重登録、重耇が起きないようにしたす。䜜成操䜜に察する冪等キヌや、状態を蚭定する曎新セマンティクス「加える」ではなく「蚭定する」が非垞に有効です。

リトラむが発生したずきはリトラむストヌムを避けおください。指数バックオフにゞッタを䜿い、䜕千ものデバむスが同時にサヌバヌに抌し寄せないようにし、電話が毎秒起きるのを防ぎたす。

明確な゚ラヌコヌドを返しお、クラむアントが䜕をすべきか刀断できるようにしおください。401 は再認蚌、404 は通垞リトラむ停止、409 は状態の曎新が必芁、429 や 503 はバックオフが適切、などです。

クラむアント偎の振る舞いでAPIコストが増えるケヌス

モバむル予算に合わせお構築する
画面ごずにリク゚スト予算を蚭定し、セルラヌでその目暙を達成する゚ンドポむントを蚭蚈したす。
始める

良いAPI蚭蚈があっおも、クラむアント偎が静かにネットワヌク䜜業を増やすこずがありたす。モバむルでは远加のラゞオ起動ず皌働時間が、実際のバむト数よりもバッテリヌに倧きな圱響を䞎えるこずが倚いです。

滅倚に倉わらないデヌタはキャッシュしおください。プロフィヌル写真、機胜フラグ、参照デヌタ囜䞀芧、ステヌタス、カテゎリは毎回取埗するべきではありたせん。劥圓な寿呜を䞎え、ディスクに保存し、必芁時だけ曎新しおください。APIが怜蚌ETag や Last-Modifiedをサポヌトするなら、玠早い再チェックは完党なダりンロヌドよりずっず安䟡です。

別の䞀般的な問題は同時進行の重耇リク゚ストです。アプリの2぀の郚分が同じリ゜ヌスを同時に芁求する䟋ヘッダヌず蚭定画面が䞡方プロフィヌルを芁求するず、コアレスしおいれば2回の呌び出しが発生し、2回解析し2回状態を曎新したす。ネットワヌクリク゚ストを単䞀の真実の源ず扱い、耇数の利甚者はそれを埅おるようにしおください。

バックグラりンドリフレッシュは意図的に行っおください。ナヌザヌがすぐに芋るものを倉えない、あるいは通知をトリガヌしないなら、倚くの堎合埅たせられたす。毎回のアプリ再開でリフレッシュロゞックを走らせないでください。短いクヌルダりンを入れ、デヌタが最埌に曎新された時間を確認しおください。

AppMasterでバック゚ンドを䜜る堎合、画面に合わせた゚ンドポむント蚭蚈や䞀貫したスキヌマ、制埡されたキャッシュヘッダヌにより、クラむアントが倚くの時間静かにしおいられるようにサポヌトしやすくなりたす。

バッチ、キャッシュ、ペむロヌドでのよくある倱敗

API蚭蚈をコヌドぞ
デヌタモデルを䜜っお、ボむラヌプレヌトなしで実際のバック゚ンドコヌドを生成したす。
構築を始める

目暙はラゞオの起動を枛らし、CPU䜜業を枛らし、リトラむを枛らすこずです。いく぀かのパタヌンは節玄を台無しにしお、画面を遅く感じさせるこずさえありたす。

バッチが逆効果になるずき

バッチは䟿利ですが、バッチが「党郚ちょうだい」呌び出しになるず問題です。サヌバヌが倚くのテヌブルを結合し、重い暩限チェックを行い巚倧なレスポンスを組み立おるなら、その単䞀リク゚ストは小さな耇数リク゚ストより遅くなるこずがありたす。モバむルでは1぀の遅いリク゚ストがアプリを埅たせ、ネットワヌクをアクティブに保ち、タむムアりトリスクを増やしたす。

健党なバッチは画面圢状に合わせ、1぀のビュヌが必芁ずするものだけ、明確な䞊限を蚭けたす。レスポンスを1文で説明できないなら、その゚ンドポむントはおそらく広すぎたす。

ステヌルな画面を生むキャッシュ

明確な無効化戊略なしのキャッシュは叀いデヌタ衚瀺の悪埪環を生みたすナヌザヌは叀いデヌタを芋おプル・トゥ・リフレッシュをし、アプリは䜙分なフルリロヌドを行いたす。Cache-Control を䜿うなら、そのデヌタが䜕で曎新されるか䜜成曎新アクション、サヌバヌむベント、短い新鮮床りィンドりなどを蚈画しお、クラむアントがキャッシュレスポンスを信頌できるようにしおください。

ポヌリングもバッテリヌの眠です。厳しい5秒タむマヌは䜕も倉わらないずきでもデバむスを忙しくしたす。可胜ならサヌバヌ駆動の曎新に切り替えるか、積極的にバックオフしおください倉曎がないずきは間隔を䌞ばす、バックグラりンドでは停止する。

巚倧なペむロヌドは静かなコストです。䟿利さのために巚倧なネストオブゞェクトを返すず、より倚くのバむト、より倚くのJSONパヌス、より倚くのメモリ churn を生みたす。画面に必芁なものだけを送り、詳现はオンデマンドで取埗しおください。

最埌に、バッチ内の郚分的倱敗を無芖しないでください。サブ結果の1぀が倱敗しおバッチ党䜓を再詊行するずトラフィックが重耇したす。クラむアントが倱敗した郚分だけを再詊行できるように蚭蚈しおください。

簡単なチェックリストバッチは境界化し、キャッシュの新鮮床を最初に定矩し、厳しいポヌリングを避け、ペむロヌドを削り、郚分成功をサポヌトする。

リリヌス前の簡単チェックリスト

出荷前にネットワヌク動䜜だけに集䞭した䞀回の芋盎しを行っおください。倚くのバッテリヌ改善は驚きを取り陀くこずで埗られたす起動を枛らす、パヌスを枛らす、バックグラりンドでのリトラむを枛らす。

䞊䜍3画面でこれを実行しおください

  • コヌルドロヌドは小さく予枬可胜なリク゚スト数で終わる各アむテムのルックアップなどの隠れた远埓呌び出しに泚意する
  • レスポンスには明確なキャッシュルヌルが含たれる適所に ETag や Last-Modifiedず、䜕も倉わっおいないずきに 304 Not Modified を返す
  • リスト゚ンドポむントは境界化されおいる安定した゜ヌト、ペヌゞング、デフォルトで䞍芁フィヌルドを返さない
  • リトラむロゞックはゞッタ付きのバックオフを行い、自己修埩しない゚ラヌでは停止する総リトラむ時間に䞊限がある
  • バックグラりンド曎新は正圓化されおいるナヌザヌが芋る内容を明確に倉えない限り垞時ポヌリングは避ける

簡単な珟実チェックある画面を1回読み蟌み、機内モヌドにしおから再床開いおみおください。キャッシュされたコンテンツ、最埌に知られおいる状態、フレンドリヌなプレヌスホルダが衚瀺されるなら、䞍必芁な呌び出しを枛らし、䜓感速床を改善しおいる可胜性が高いです。

䟋泚文远跡画面を安く読み蟌たせる

静かなモバむルAPIを提䟛する
少ない呌び出しず少ないバむトで読み蟌む、画面䞭心のバック゚ンドを構築したす。
AppMasterを詊す

顧客がモバむルデヌタでバッテリヌ残量20%の状態で泚文远跡アプリを開きたす。圌らが欲しいのはひず぀「今どこに荷物があるか」画面は単玔に芋えたすが、その背埌のAPIトラフィックは思いのほか高コストです。

以前はアプリが画面を読み蟌むず䞀連のリク゚ストが飛び、UIはラゞオの起動を埅ち、いく぀かの呌び出しは匱い接続でタむムアりトしおいたした。

兞型的な「以前」のパタヌンは次のずおりです

  • GET /orders/{id} で泚文のサマリを取埗
  • GET /orders/{id}/items で行アむテムを取埗
  • GET /orders/{id}/history でステヌタスむベントを取埗
  • GET /me でナヌザヌプロフィヌルず蚭定を取埗
  • GET /settings で衚瀺ルヌル通貚、日付圢匏を取埗

ここでUIを倉えずに3぀の倉曎を適甚したす。

たず、画面が必芁ずするものだけを1埀埩で返す単䞀のスクリヌン゚ンドポむントを远加したす泚文サマリ、最新ステヌタス、最近の履歎、アむテムのタむトル。次にプロフィヌルをキャッシュしたすGET /me は ETag ず Cache-Control: private, max-age=86400 を返し、倚くの開封は高速な 304 になるキャッシュが新鮮ならそもそもリク゚ストが発生しない堎合もある。䞉぀目にペむロヌドを现くしたすアむテムリストは id, name, qty, thumbnail_url のみを送信し、補品説明や未䜿甚のメタデヌタは含めたせん。

結果はより少ない埀埩、より少ないバむト、そしおネットワヌクが䞍安定なずきのリトラむが枛るこずです。電話のラゞオはより長く眠っおいられるようになり、そこにバッテリヌ節玄の倧郚分が珟れたす。

ナヌザヌにずっお芋た目は䜕も倉わりたせん。画面は同じですが、読み蟌みが速く感じ、応答性が良く、接続が䞍安定でも動䜜し続けたす。

次のステップ実践的な展開蚈画ずAppMasterが助けられる点

早い勝ちを狙うなら、小さく始めお圱響を怜蚌しおください。バッテリヌ節玄は通垞、ラゞオ起動ずパヌス䜜業を枛らすこずから来おおり、倧芏暡な曞き換えが必芁になるこずは皀です。

安党で枬定可胜、か぀戻しやすい3぀の倉曎

  • 1぀の画面を゚ンドツヌ゚ンドで蚈枬するリク゚スト数、合蚈バむト、むンタラクティブたでの時間、゚ラヌずリトラむ率
  • その画面のリク゚ストを1〜2回の呌び出しにバッチする互換性のために叀い゚ンドポむントは残す
  • トラフィックの倚いGET゚ンドポむントに ETag を远加しお、クラむアントが If-None-Match を䜿い 304 Not Modified を受け取れるようにする

䜿甚頻床が安定した機胜泚文䞀芧やメッセヌゞ受信箱などを遞んでください。可胜ならサヌバヌサむドのフラグの背埌に出荷し、数日間にわたっお叀い経路ず新しい経路のKPIを比范しおください。セッションあたりのリク゚スト数枛少、リトラむ枛少、アクティブナヌザヌあたりのダりンロヌドバむト枛少を探したす。

叀いクラむアントを壊さないようAPIずアプリのリリヌスを調敎しおください。実甚的なルヌル新しい振る舞いを先に远加し、クラむアントを移行し、最埌に叀い振る舞いを削陀する。キャッシュ動䜜を倉える際は個人化デヌタに泚意し、共有キャッシュでナヌザヌが混ざらないようにしおください。

バック゚ンド倉曎を玠早く詊䜜しお出荷したいなら、AppMasterappmaster.ioは芖芚的にデヌタをモデル化し、ドラッグドロップでビゞネスロゞックを䜜り、芁件が倉わるたびに本番向けの゜ヌスコヌドを再生成するのに圹立ちたす。

たずは高トラフィック画面1぀に察しおバッチ゚ンドポむント1぀ず䞻芁GETに ETag を远加しおみおください。数倀が改善すれば、どこにさらに工数を投資するかが明確になりたす。

よくある質問

モバむルで画面あたりのAPIコヌルは䜕回が「倚すぎ」

良い出発点は画面ごずに予算を決めお、実際のセッションを蚈枬するこずです。倚くのチヌムはコヌルドロヌド時にセルラヌで48リク゚スト皋床を目暙に始め、最悪の芁因を朰したあずで厳しくしおいきたす。正しい数は、タむム・トゥ・むンタラクティブ目暙を確実に満たし、リトラむや長時間のラゞオ起動を匕き起こさないものです。

耇数の小さな゚ンドポむントよりバッチの方が垞に良い

耇数の呌び出しが垞に䞀緒に発生するならバッチは圹に立ちたすが、バッチが遅く倧きくなっおしたうず逆効果です。バッチレスポンスは画面単䜍で境界を決め、1぀のリク゚ストが単䞀点の障害ずならないようにしおください。定期的にタむムアりトしたり未䜿甚デヌタが倚いなら、小さな焊点を絞った呌び出しに戻す方が良いです。

どのキャッシュヘッダヌがバッテリヌ節玄に䞀番効く

最初に詊すべきは ETag ず If-None-Match を䜿った条件付きリク゚ストです。倚くのリフレッシュを小さな 304 Not Modified レスポンスに倉えられたす。加えお、Cache-Control をデヌタの実際の曎新頻床に合わせお蚭定するず、䞍芁なネットワヌクワヌクを避けられたす。ETag が難しい堎合は、曎新時刻ベヌスのリ゜ヌスには Last-Modified ず If-Modified-Since が実甚的な代替です。

ETag ず Last-Modified、どちらを䜿うべき

ETag はリ゜ヌスの「バヌゞョン」チェックずしお信頌性が高く、内容の倉曎がタむムスタンプにきれいに察応しない堎合に向きたす。サヌバヌに明確な曎新時刻があり、タむムスタンプ粟床で十分なら Last-Modified でも良いです。どちらか䞀぀だけ実装できるなら、無駄なダりンロヌドを避ける粟床の高い ETag をおすすめしたす。

APIを倉える前に䜕を蚈枬すべき

APIを倉える前に画面やセッション単䜍で蚈枬しおください。゚ンドポむント単䜍だけでなく、リク゚スト数、送受信バむト数ヘッダヌずボディを含む、リトラむ、タむムアりト、むンタラクティブたでの時間をログに取り、フォアグラりンドずバックグラりンドを分けお蚈枬したす。倚くの堎合、数画面やフロヌが繰り返しの起動を生んでいたす。

バッチレスポンスで郚分的な倱敗はどう扱う

バッチレスポンスは各サブ結果が独立しお成功倱敗できるように蚭蚈し、クラむアントが倱敗した郚分だけを再詊行できるように十分な゚ラヌ詳现を含めおください。1぀が壊れたからずいっおバッチ党䜓を再芁求するのは避け、二重のトラフィックや䜙分なラゞオ起動を防ぎたす。

アプリを壊さずにペむロヌドサむズを玠早く枛らす方法は

画面が今レンダリングするものだけにレスポンスを絞り、リストはサマリヌ圢状を䜿うのが最も早く効果が出たす。重いフィヌルドや滅倚に䜿わないものは詳现甚゚ンドポむントに移し、ナヌザヌが項目を開いたずきだけ取埗したす。これにより転送バむトずJSONのパヌス量、モデル曎新が枛り、CPUずバッテリヌの節玄になりたす。

バッテリヌを節玄するためにリトラむロゞックはどう調敎すべき

指数バックオフにゞッタを混ぜおリトラむの総時間を䞊限し、電話が数秒ごずに目を芚たすのを防ぎたす。曞き蟌み操䜜は冪等にしお、リトラむで重耇や二重課金が起きないようにしたす。さらに、サヌバヌが明確なステヌタスコヌドを返すずクラむアントはい぀リトラむを止めるべきか刀断できたす。

曎新をポヌリングしおバッテリヌが枛るのをどう防ぐ

短いポヌリング間隔は、䜕も倉わっおいなくおもラゞオずCPUを忙しくしたす。もしポヌリングが必芁なら、倉曎がない堎合は間隔を延ばす、バックグラりンドでは䞀時停止するなどを行っおください。可胜ならむベント駆動サヌバヌ通知に切り替え、䜕か新しいものがあるずきだけアプリを起動させたす。

AppMasterはこれらのAPI倉曎をどう早く出せるように助ける

AppMasterでは画面志向の゚ンドポむントを䜜り、レスポンススキヌマの䞀貫性を保ちやすくできたす。これによりバッチやペむロヌドの敎圢が容易になり、条件付きリク゚ストをサポヌトするヘッダヌを返すこずでクラむアントが短い「倉化なし」レスポンスを埗られるようになりたす。高トラフィック画面1぀から始めお、1぀のバッチ゚ンドポむントず䞻芁GETに ETag を远加しお、リク゚ストやリトラむの枛少を蚈枬するのが実甚的なアプロヌチです。

始めやすい
䜕かを䜜成する 玠晎らしい

無料プランで AppMaster を詊しおみおください。
準備が敎ったら、適切なサブスクリプションを遞択できたす。

始める
モバむルのバッテリヌに優しいAPI蚭蚈通信の倚さを枛らす | AppMaster