FlutterとBack4Appを使用したリアルタイムチャットアプリケーションの構築
チャットアプリケーションを作成するには、リアルタイムデータの管理、ユーザー認証、メディア処理、効率的なデータストレージが必要です。このチュートリアルでは、1対1およびグループ会話、メッセージのステータス、メディア共有をサポートするFlutterでのリアルタイムチャットアプリケーションの構築方法を学びます。バックエンド機能を処理するために、Parse Serverによって提供されるバックエンド・アズ・ア・サービスであるBack4Appを使用します。
このチュートリアルの終わりまでに、以下の機能を持つ完全に機能するチャットアプリを持つことができます:
- ユーザー認証: 安全なサインアップとログインプロセス。
- リアルタイムメッセージング: ライブクエリを使用した即時メッセージ配信。
- ユーザーの存在: ユーザーのオンライン/オフラインステータスを追跡。
- メディアストレージ: チャットでの画像の送受信。
- メッセージ履歴: ユーザーのチャット履歴を保持。
このチュートリアルに従うには、以下が必要です:
- FlutterとDartの基本知識が必要です。
- IDEまたはテキストエディタ、例えばVisual Studio CodeやAndroid Studioなど。
- Flutter用のParse Server SDKをプロジェクトに追加します。
以下のコンポーネントを使用してチャットアプリケーションを構築します:
- ユーザー認証: ユーザーはサインアップおよびログインできます。
- 連絡先リスト: チャットするユーザーのリストを表示します。
- チャット画面: リアルタイムメッセージングインターフェース。
- メディア共有: 画像を送受信する機能。
- オンラインステータス: ユーザーのオンライン/オフラインステータスを表示します。
ターミナルを開いて、次のコマンドを実行します:
プロジェクトディレクトリに移動します:
「pubspec.yaml」を開いて、次の依存関係を追加します:
次のコマンドを実行して、パッケージをインストールします:flutter pub get。
- parse_server_sdk_flutter: Back4Appと対話します。
- image_picker: ギャラリーまたはカメラから画像を選択します。
- cached_network_image: 効率的な画像の読み込みとキャッシング。
- uuid: ユニークな識別子を生成します。
- "新しいアプリを作成" をクリックします。
- アプリケーションの名前を入力します。例: "ChatApp", そして "作成" をクリックします。
次のクラスを作成します:
- ユーザー (デフォルトの Parse クラス): ユーザー情報を保存します。
- メッセージ: チャットメッセージを保存します。
- チャットルーム: ユーザー間のチャットを表します。
- フィールド:
- ユーザー名: 文字列
- パスワード: 文字列
- メール: 文字列
- オンラインかどうか: ブール値
- アバター: ファイル(オプション)
この ユーザー クラスは組み込みであり、追加のフィールドがあることを確認する必要があります。
- フィールド:
- 送信者: ポインタ<_ユーザー>
- 受信者: ポインタ<_ユーザー>
- チャットルームID: 文字列
- コンテンツ: 文字列
- 画像: ファイル(オプション)
- 作成日時: 日時(自動追加)
- フィールド:
- chatRoomId: 文字列
- users: Pointer<_User>の配列
- lastMessage: 文字列
- updatedAt: DateTime(自動更新)
- 次に進む アプリ設定 > セキュリティとキー.
- あなたの アプリケーションID と クライアントキー をメモしてください。
次のように lib/main.dart を開いて修正します:
- 「'YOUR_APPLICATION_ID'」と'YOUR_CLIENT_KEY'を実際のBack4Appの資格情報に置き換えてください。
「services」という新しいディレクトリを作成し、「lib」の下に、「auth_service.dart」という名前のファイルを追加します。
新しいディレクトリを作成します。screensを libの下に作成し、次の名前のファイルを追加します。login_screen.dart と signup_screen.dart.
ユーザーのオンラインステータスを更新するために AuthService にメソッドを作成します:
ログインおよびログアウトメソッドを更新します:
作成する user_service.dart の下に services:
次の依存関係を追加します pubspec.yaml:
これにより、Live Queryサポートを備えた最新バージョンが確保されます。
- 「'YOUR_APP'」をあなたのBack4Appアプリケーションのサブドメインに置き換えます。
- ParseLiveListWidget: ライブクエリの更新をリッスンし、データが変更されると再構築するウィジェットです。
- sendMessage(): テキストメッセージまたは画像を送信します。
- pickImage(): image_pickerを使用して画像を選択し、それをメッセージとして送信します。
- setupLiveQuery(): チャットルームで新しいメッセージをリッスンするためのライブクエリを設定します。
ターミナルで、次のコマンドを実行します:
- 2つのデバイスまたはエミュレーターでアプリを開く。
- 異なるユーザーアカウントでサインアップまたはログインする。
- 1つのアカウントから、連絡先リストから他のユーザーを選択する。
- メッセージと画像を送信する; 両方のデバイスにリアルタイムで表示されるはずです。
おめでとうございます! Back4Appを使用してFlutterでリアルタイムチャットアプリケーションを構築しました。このアプリは次の機能をサポートしています:
- ユーザー認証: 安全なログインとサインアップ。
- リアルタイムメッセージング: ライブクエリを使用した即時更新。
- ユーザーの存在: オンライン/オフラインのステータストラッキング。
- メディア共有: 画像の送受信。
- メッセージ履歴: チャットメッセージの永続化。
- グループチャット: アプリを拡張してグループ会話をサポートします。
- メッセージのステータス: 読了通知と入力インジケーターを実装します。
- プッシュ通知: アプリがバックグラウンドにあるときに新しいメッセージの通知を送信します。
- プロフィール写真: ユーザーがアバターをアップロードできるようにします。
- セキュリティ強化: ACLとロールベースの権限でデータを保護します。
楽しいコーディングを!