web-dev-qa-db-ja.com

Androidでチャットアプリケーションを作成する方法

AndroidのGmailでオンラインユーザーとのチャット機能を追加したいと思います。 Androidで自分のアプリケーションにチャット機能を追加する方法

私が選択したエリアに最も近いGoogleマップにオンラインユーザーを表示し、そのオンラインユーザーとチャットできるようにしたい

28
Urvashi Hirani

チャットをAndroid=アプリケーションに追加するには、いくつかのオプションがあります。必要な開発の専門知識の量に基づいて、最小から最大の順にオプションを提示します。

リアルタイムバックエンドサービスの使用

リアルタイムのバックエンドサービスを提供する企業は多数あります。これらのサービスは、アプリがサーバーにアクセスできるようにするSDKを提供します。 SDKを使用すると、デバイス間でデータをストリーミングできます。

最も人気のあるサービスのリストは次のとおりです。

Firebase

Googleが所有するリアルタイムデータベースは、コアテクノロジースタックとしてWebSocketsとMongoDBを使用しています。このサービスを使用すると、データを非SQLデータベースに保存し、データが変更されたときにリアルタイムの更新を受信するように登録できます。また、プッシュ通知とファイルストレージのサービスも提供します。 iOS および Android で利用可能なサードパーティのオープンソースメッセージングフレームワークもあります。

Firebaseには、アプリの場所を認識させる GeoFire というライブラリがあります。

プッシャー/PubNub

これらは非常に似ているため、これらをグループ化しました。リアルタイムのストリーミングインフラストラクチャとテクノロジーを提供します。デバイスのグループ間にチャネルを確立し、デバイス間でデータをストリーミングできます。ユーザーを認証する手段を提供しないため、アプリサーバーが必要になります。

Quickblox

Quickbloxは特にインスタントメッセージング市場を対象としており、バックエンドでXMPPサーバーを使用しています。 XMPPを使用しているため、このサービスには、プライバシーリストや入力インジケーターなどの多くのメッセージング機能が組み込まれています。それらは、合理的ではあるが基本的なメッセージングアプリの例を提供します。

レイヤー

レイヤーはQuickbloxとPubNub/Pusherの中間です。インスタントメッセージングを対象としたストリーミングプラットフォームを提供します。基本的なブロッキングのようなメッセージング機能がいくつかありますが、これはQuickbloxのような本格的なメッセージング実装ではありません。彼らは完全なアプリ-アトラスの構築を支援するために使用できるUIコンポーネントのライブラリを持っています。

サービスとしてバックエンドを使用する場合は、常に自分でチャットクライアントを構築する必要があります。 Firebaseのようなより汎用的なオプションのいずれかを使用する場合は、独自のメッセージングプロトコルを構築する必要もあります。

これらのサービスは、リアルタイムのサーバー実装、サーバー構成、スケーリングに関して時間を節約します。

[〜#〜] xmpp [〜#〜]

別のオプションは、自分でXMPPサーバーをホストすることです。利用可能なオープンソースのXMPPサーバーは多数あります。

XMPPサーバーは、箱から出してすぐに大量のメッセージング機能を提供します。通常、位置認識は含まれていませんが、別のサーバーでユーザーデータベースをホストするようにサーバーを構成することで解決できます。これにより、地理位置情報を処理するためのテーブルを追加できます。別の方法として、ユーザーの位置が一定量変化したときに、プレゼンスを使用して関連デバイスを更新することもできます。

クライアントを構築するには、 Smack を使用することをお勧めします。 XMPPはオープンスタンダードであるため、クライアントはサードパーティのXMPPサーバーおよびクライアントと連携できる必要があります。

クライアントを自分で構築したくない場合は、開始点として機能する可能性のある多数のオープンソースプロジェクト(主にコピーレフトライセンス)があります。 Xabber は1つの例ですが、検索してさらに見つけることができます。あるいは、 this 商用オープンソースプロジェクトを使用することもできます。

サーバーを自分で構築する

最後のオプションは、メッセージングサーバーを自分で構築することです。これには、必要な機能を追加して合理的にシンプルに保つことができるという利点があります。良いアプローチは、リアルタイムバックエンドに Symfony および WebSocket バンドルを使用し、クライアントに Android WebSockets を使用することです。このアプローチを使用すると、地理位置情報機能を実装する柔軟性が大幅に向上します。

13
Ben Smiley

私と私のチームは、QuickBloxというサービスプラットフォームとしてのバックエンドに取り組んでいます。 Map/Chat機能をアプリケーションに統合する方法の良い例があります。

シンプルAndroidマップ/チャットアプリケーション: https://quickblox.com/developers/Android_XMPP_Chat_Sample

4
Rubycon

私たちは開発者コミュニティと密接に連携しており、統合にわずか10分かかるApplozic Chat SDKを開発しました。試してみてください: Applozic オープンソースSDKのサンプルコードはGithubで入手できます: https://github.com/AppLozic/Applozic-Android-SDK

3

GMapsについては知りませんが、チャットを実装するには、次のリンクを試してみてください Xmpp

2
ingsaurabh

ChatCamp と呼ばれるリアルタイムチャットSDKソリューションを提供します。 ChatCamp SDKを使用すると、チャット機能をAndroidアプリにすばやく追加できます。ここにAndroidクイックスタートガイド--へのリンクがあります。 https://docs.chatcamp.io/docs/Android-chat-quickstart また、特定の場所からの距離に基づいてユーザーリストを注文することも、オンラインユーザーを上に表示することもできますグーグルマップ。

0

チャット機能を追加すると、FirebaseまたはXMPPを使用できます。

適切なオプションを選択するには、これをお勧めします https://www.quora.com/Which-protocol-is-better-to-develop-a-chat-web-app-using-Firebase-XMPP-or -HTTP

OR

バックエンドテクノロジーに関する深い知識がある場合は、自分のテクノロジーを先に進めてください。同時に、追加機能をより簡単に統合するのに役立つインスタントソリューションも市場で入手できます。

0
Jack Smith