メッセージを確実に受信することは、Android のメッセージ エクスペリエンスにおいて最も重要な機能です。また、システムの健全性とバッテリー駆動時間に配慮してメッセージを実装することも重要です。このドキュメントでは、Android アプリでメッセージを一貫して効率的かつ確実に受信するための主な戦略とツールについて説明します。
メッセージ配信メカニズム
信頼性の高いメッセージングを実現するための最適なアプローチは、アプリの特定の要件によって異なります。次のような要素を考慮します。
- 現在のリアルタイムのニーズ
- メッセージの頻度
- バッテリーの制約
フォアグラウンドのリアルタイム メッセージング
アプリがフォアグラウンドにある場合、ユーザーは通常、次のような情報をある程度多く得たいと考えています。
- メッセージの送信相手がデバイスに存在しているか。
- 入力中ですか?
- メッセージを読んだかどうか。
このようなリアルタイムのデータ交換をサポートする一般的な方法は、WebSockets などのクライアント サーバー プロトコルを使用することです。WebSocket を使用すると、アプリとサーバー間で永続的な全二重通信が可能になります。OKHTTP ライブラリには、Android クライアントで使用できる WebSocket プロトコルの実装が含まれています。
Firebase Realtime Database には、この種の通信を処理できる事前構築済みのバックエンドとクライアント フロントエンドが用意されています。内部的には、クライアントとサーバー間のリアルタイム通信に WebSocket を使用します。
バックグラウンドでのリアルタイム メッセージング
アプリがフォアグラウンドにない場合は、システムの健全性とバッテリー駆動時間に悪影響を及ぼす処理を避けることが重要です。メッセージ通知を確実に配信することは依然として重要であるため、Firebase Cloud Messaging(FCM)を使用することをおすすめします。
FCM は、Android(およびその他の)デバイスに通知とデータ メッセージを効率的に送信するクロスプラットフォーム メッセージング ソリューションです。Google サービスを搭載したデバイスでは Android トランスポート層(ATL)が利用されるため、アプリが実行されていないときでも変更の通知を受け取ることができます。メッセージ配信の適時性は、デバイスの状態、メッセージの優先度、Doze またはアプリ スタンバイによる制限がアプリに適用されているかどうかによって異なります。
メッセージ配信の信頼性を高める
メッセージ配信をさらに堅牢にするには、次の戦略を検討してください。
WorkManagerを使用して、デバイスがネットワーク接続されているとき、および(理想的には)デバイスが充電器に接続されているときに、アプリを定期的に起動して新しいメッセージを確認します。- Firebase コンソールや FCM Data API の Android SDK 配信指標などのツールを使用して、FCM 配信に関する分析情報を取得します。
- Firebase Crashlytics などのロギング メカニズムとツールを使用して、メッセージ配信の問題をモニタリングし、トラブルシューティングします。