サーバー開始型のネットワーク使用を最適化する

サーバー プログラムからアプリに送信されるネットワーク トラフィックは、最適化が難しい場合があります。この問題の解決策として、アプリが定期的にサーバーをポーリングして、更新をチェックする方法があります。 しかし、この方法の場合、アプリがデバイスの無線通信を開始する際にネットワーク接続や電力を浪費したにもかかわらず、結局、「利用可能な新しいデータはない」という返答を受け取るだけになる可能性があります。サーバー内に新しいデータがあるときにサーバーからアプリに通知する方法の方がはるかに効率的ですが、これまでは、サーバーから膨大な数のデバイスに通知を送信する方法が簡単には見つかりませんでした。

Firebase Cloud Messaging(FCM)サービスは、インストール場所を問わずにアプリのインスタンスに通知を送信することで、通信に関する上記の問題を解決します。これにより、ネットワーク効率を高め、消費電力を削減することができます。

このレッスンでは、FCM サービスを適用することで、サーバー開始型アクションのネットワーク使用を削減し、バッテリー消費を抑える方法について説明します。

FCM を使用してサーバーの更新情報を送信する

Firebase Cloud Messaging(FCM)は、アプリサーバーからアプリに簡単なメッセージを送信する際に使用される軽量なメカニズムです。FCM を使用すると、アプリサーバーは、メッセージ送信メカニズムを使用して、新しいデータが利用可能であることをアプリに通知できます。この方法の場合、利用できる新しいデータがないときには、バックエンド サーバーに対して新しいデータを問い合わせないようにすることで、アプリが実行するネットワーク トラフィックを削減できます。

FCM を使用する例としては、会議でスピーカー セッションをリストアップするアプリがあります。サーバー上でセッションが更新されると、サーバーからアプリに向けて、利用可能な更新データがあることを伝える簡単なメッセージが送信されます。これにより、アプリは、サーバー上に新しいデータがある場合に限り、デバイス上のセッションを更新するようにサーバーに求めることができます。

サーバー上の変更をアプリがポーリングする方法よりも、FCM の方が効率的です。FCM サービスを使用すると、ポーリングで「更新データなし」と返されるだけの場合の不必要な接続がなくなります。また、定期的にネットワーク リクエストを実行して、デバイスの無線通信の電源をオンにすることもなくなります。FCM は多数のアプリで使用できるため、各アプリ内で FCM を使用することで、ネットワーク接続の総数が減り、デバイスの無線通信が頻繁にスリープできるようになります。