メッセージを確実に受信する

メッセージを確実に受信することは、Android メッセージ エクスペリエンスの最も重要な機能です。また、システムの健全性とバッテリー駆動時間を考慮してメッセージを実装することも重要です。このドキュメントでは、Android アプリでメッセージを常に効率的かつ確実に受信するための主要な戦略とツールについて説明します。

メッセージ配信のメカニズム

信頼性の高いメッセージングに最適なアプローチは、アプリの具体的な要件によって異なります。次のような要素を考慮します。

  • 現在のリアルタイムのニーズ
  • メッセージの頻度
  • バッテリーの制約

フォアグラウンド リアルタイム メッセージング

アプリがフォアグラウンドにある場合、ユーザーは通常、ある程度の量の情報を期待しており、次のようなことを知りたいと考えています。

  • メッセージの相手はデバイスに表示されていますか?
  • 入力中ですか?
  • メッセージは読まれましたか?

このようなリアルタイム データ交換をサポートする一般的な方法は、WebSockets などのクライアント サーバー プロトコルを使用することです。WebSocket を使用すると、アプリとサーバー間で永続的な全二重通信が可能になります。OKHTTP ライブラリには、Android クライアントで使用できる WebSocket プロトコルの実装が含まれています。

Firebase Realtime Database には、このような通信をユーザーに代わって処理できる、事前構築済みのバックエンドとクライアント フロントエンドが用意されています。クライアントとサーバー間のリアルタイム通信には、内部的に WebSocket が使用されます。

バックグラウンド リアルタイム メッセージング

アプリがフォアグラウンドになくなったときは、システムの健全性とバッテリー寿命に悪影響を及ぼす処理を避けることが重要です。メッセージ通知を確実に配信することは依然として重要であるため、Firebase Cloud Messaging(FCM)を利用することをおすすめします。

FCM は、Android(およびその他の)デバイスに通知とデータ メッセージを効率的に送信するクロスプラットフォーム メッセージング ソリューションです。Google サービスを搭載したデバイス向けの Android トランスポート レイヤ(ATL)を活用して、アプリが実行されていないときに変更を通知できるようにします。メッセージ配信のタイミングは、デバイスの状態、メッセージの優先度、アプリが Doze またはアプリ スタンバイによる制限の対象かどうかによって異なります。

メッセージ配信の信頼性を高める

メッセージ配信をさらに堅牢にするには、次の戦略を検討してください。