フラッター テンプレート

FlutterとBack4Appを使用したソーシャルネットワーキングアプリの構築

52min

はじめに

ソーシャルネットワーキングアプリを作成することは複雑な作業ですが、FlutterとBack4Appを使用することで、開発プロセスを効率化できます。このチュートリアルでは、ユーザー認証、プロフィール管理、ニュースフィード、友達接続、メッセージング、通知を含むフル機能のソーシャルネットワーキングアプリの構築方法を案内します。

このチュートリアルの終わりまでに、以下の機能を持つ実用的なソーシャルネットワーキングアプリが完成します:

  • ユーザー認証: 安全なサインアップとログインプロセス。
  • ユーザープロフィール: ユーザー情報を編集可能なプロフィール。
  • ニュースフィード: 友達やユーザーからの投稿を表示。
  • 友達接続: 友達リクエストを送信および受信する機能。
  • メッセージング: ユーザー間のリアルタイムチャット。
  • 通知: 友達リクエスト、メッセージ、投稿のインタラクションに関するプッシュ通知。

前提条件

このチュートリアルに従うには、次のものが必要です:

  • Flutter SDK があなたのマシンにインストールされていること。 公式のFlutterインストールガイドをあなたのオペレーティングシステムに従ってください。
  • FlutterとDartの基本的な知識。Flutterが初めての場合は、 Flutterドキュメントを確認して基本を理解してください。
  • IDEまたはテキストエディタ、例えばVisual Studio CodeやAndroid Studioなど。
  • Back4AppアカウントBack4Appに無料アカウントを登録してください。
  • Flutter用のParse Server SDKがあなたのプロジェクトに追加されていること。 Back4App Flutter SDKガイドを参照して設定方法を学んでください。

ステップ1 – Flutterプロジェクトの設定

1.1. 新しいFlutterプロジェクトを作成する

ターミナルを開いて、次のコマンドを実行します:

Bash


プロジェクトディレクトリに移動します:

Bash


1.2. 依存関係を追加する

pubspec.yaml」を開いて、次の依存関係を追加します:

YAML


flutter pub get」を実行して、パッケージをインストールします。

注意: 私たちは次のものを使用しています:

  • parse_server_sdk_flutter Back4App統合のため。
  • provider 状態管理のため。
  • image_picker プロフィールと投稿画像を選択するため。
  • cached_network_image 効率的な画像読み込みのため。
  • firebase_messaging プッシュ通知のため。
  • uuid ユニークIDを生成するため。

ステップ2 – Back4Appの設定

2.1. 新しい Back4App アプリケーションを作成する

  1. あなたの Back4App ダッシュボード にログインします。
  2. "新しいアプリを作成" をクリックします。
  3. アプリケーションの名前を入力します。例: "SocialApp", そして "作成" をクリックします。

2.2. データモデルを設定する

Back4App にいくつかのクラスを作成する必要があります:

  • ユーザー: ユーザー認証のための組み込みクラスです。
  • プロフィール: ユーザーのプロフィール情報を保存します。
  • 投稿: ユーザーの投稿を保存します。
  • 友達リクエスト: ユーザー間の友達リクエストを管理します。
  • メッセージ: ユーザー間のメッセージを保存します。

2.2.1. プロファイルクラス

  1. "Database"」セクションに移動します。
  2. "Create a class"」をクリックします。
  3. モーダルで:
    • "Custom"」を選択します。
    • クラス名として「"Profile"」を入力します。
    • "Create class"」をクリックします。

次の列を追加します:

  • ユーザー: タイプ Pointer<_User>
  • ユーザー名: タイプ String
  • フルネーム: タイプ String
  • バイオ: タイプ String
  • プロフィール写真: タイプ File

2.2.2. 投稿クラス

次の列を持つ "Post" クラスを作成します:

  • user: 型 Pointer<_User>
  • content: 型 String
  • image: 型 File
  • createdAt: 型 Date

2.2.3. FriendRequest クラス

次の列を持つ "FriendRequest" クラスを作成します:

  • fromUser: 型 Pointer<_User>
  • toUser: 型 Pointer<_User>
  • status: 型 String (値: "pending", "accepted", "rejected")

2.2.4. Message クラス

次の列を持つ "Message" クラスを作成します:

  • fromUser: 型 Pointer<_User>
  • toUser: 型 Pointer<_User>
  • content: 型 String
  • createdAt: 型 Date

2.3. アプリケーションの資格情報を取得する

  1. 次に進みます App Settings > Security & Keys.
  2. あなたの Application IDClient Key をメモしてください.

ステップ 3 – Flutter アプリでの Parse の初期化

lib/main.dart」を開いて、次のように修正します:

Dart

  • 'YOUR_APPLICATION_ID'」と「'YOUR_CLIENT_KEY'」を Back4App の資格情報に置き換えます。
  • 認証状態を管理するために、「ChangeNotifierProvider」を使用しています。

ステップ 4 – ユーザー認証の実装

4.1. 認証サービスを作成する

services」という新しいディレクトリを作成し、「lib」の下に追加し、「auth_service.dart」という名前のファイルを追加します。

Dart


4.2. ログインおよびサインアップ画面を作成する

screens」というディレクトリを作成し、「lib」の下に追加し、「login_screen.dart」と「signup_screen.dart」を追加します。

4.2.1. ログイン画面

Dart


4.2.2. サインアップ画面

Dart


ステップ5 – ユーザープロフィールの設定

5.1. プロファイルサービスを作成する

という名前のファイルを追加します profile_service.dart の下に lib/services/:

Dart


5.2. プロファイルモデルを作成する

という名前のファイルを追加します profile.dart の下に lib/models/:

Dart


5.3. プロフィール画面を作成する

profile_screen.dart」という名前のファイルを追加します。「lib/screens/」の下に:

Dart


ステップ 6 – ニュースフィードの実装

6.1. 投稿サービスを作成する

という名前のファイルを追加します post_service.dart の下に lib/services/:

Dart


6.2. 投稿モデルを作成する

という名前のファイルを追加します post.dart の下に lib/models/:

Dart


6.3. ホーム画面を作成する

次のファイルを修正します: home_screen.dart の下に lib/screens/:

Dart


ステップ 7 – 友達の接続を追加する

このステップでは、ユーザー間の友達接続を実装します。ユーザーは友達リクエストを送信し、それを受け入れたり拒否したり、友達リストを表示したりできます。この機能をサポートするために、データモデルを変更し、サービスを作成し、UIを更新します。

7.1. データモデルの更新

私たちはすでに以下の列を持つ FriendRequest クラスをBack4Appで作成しました:

  • fromUser: ポインタ _User
  • toUser: ポインタ _User
  • status: 文字列 (値: "pending", "accepted", "rejected")

さらに、ユーザーの友達リストを追跡する必要があります。これを行うには、friends 関係を _User クラスに追加します。

7.1.1. ユーザークラスに友達関係を追加する

  1. Back4Appで、User クラスに移動します。
  2. 新しい列を追加するには、"+" ボタンをクリックします。
  3. 列の名前を "friends" とし、タイプを Relation <_User> に設定します。

7.2. 友達リクエストサービスを作成する

次の名前のファイルを作成します friend_service.dartlib/services/:

Dart


7.3. UIを更新する

7.3.1. ユーザー検索画面を追加する

search_users_screen.dart」という名前のファイルを作成します。lib/screens/:

Dart


7.3.2. 友達リクエスト画面を追加する

という名前のファイルを作成します friend_requests_screen.dart の下に lib/screens/:

Dart


7.3.3. ホーム画面のナビゲーションを更新する

home_screen.dart, ユーザー検索と友達リクエスト画面へのナビゲーションを追加します:

Dart


7.4. 友達の投稿を表示するためにニュースフィードを更新する

getPosts」メソッドをpost_service.dartで修正して、ユーザーとその友達の投稿を取得します。

Dart


ステップ8 – メッセージングの実装

このステップでは、Live Queriesを使用してユーザー間のリアルタイムメッセージングを追加します。

8.1. Back4AppでLive Queriesを有効にする

  1. Back4Appアプリのダッシュボードで、アプリ設定 > サーバー設定に移動します。
  2. サーバーURL」の下に、サーバーURL(例:https://YOUR_APP_NAME.back4app.io)をメモします。
  3. Back4Appでは、Live Queriesがデフォルトで有効になっています。

8.2. FlutterでLive Queriesを設定する

parse_server_sdk_flutter」パッケージにはLive Queryサポートが含まれています。

8.3. メッセージングサービスを作成する

message_service.dart」という名前のファイルを作成し、lib/services/の下に配置します。

Dart


8.4. メッセージモデルを作成する

message.dart」という名前のファイルを作成し、lib/models/の下に配置します。

Dart


8.5. チャット画面を作成する

chat_screen.dart」という名前のファイルを追加します lib/screens/:

Dart


8.6. チャットを開始するためのUIを更新

友達リストまたはユーザー検索画面からチャットを開始できます。

友達リストで友達を表示する際に、チャットを開始するボタンを追加します:

Dart


ステップ9 – プッシュ通知の追加

プッシュ通知を実装するには、Firebase Cloud Messaging (FCM) を設定し、Back4App と統合する必要があります。

9.1. Firebase Cloud Messaging の設定

9.1.1. Firebase プロジェクトの設定

  1. 次に進むには、Firebase コンソール に移動し、新しいプロジェクトを作成します。
  2. Android および/または iOS アプリをプロジェクトに追加します。
    • Android の場合、パッケージ名 (applicationId) が必要です。
    • iOS の場合、バンドル識別子が必要です。

9.1.2. 設定ファイルのダウンロード

  • Android の場合: google-services.json をダウンロードし、android/app/ に配置します。
  • iOS の場合: GoogleService-Info.plist をダウンロードし、Runner の下に Xcode プロジェクトに追加します。

9.2. firebase_messaging パッケージを追加

次のことを確認してください: firebase_messagingpubspec.yaml:

YAML


次に、flutter pub get を実行してインストールします。

9.3. FlutterでFirebaseを初期化する

を修正する main.dart:

Dart


9.4. Firebase Messagingを設定する

という名前のファイルを作成する push_notification_service.dartlib/services/の下に:

Dart


9.5. main.dartを更新してプッシュ通知を初期化する

main.dart, Parseを初期化した後、 PushNotificationServiceを初期化する:

Dart


9.6. Back4Appからプッシュ通知を送信する

クラウドコードまたはサーバーから直接プッシュ通知を送信できます。

9.6.1. 友達リクエストの通知を送信する

ユーザーが友達リクエストを送信すると、受信者にプッシュ通知を送信できます。

friend_service.dart」で、sendFriendRequestメソッドを修正します:

Dart


注意: インストールをユーザーに関連付けていることを確認してください。

9.7. インストールをユーザーに関連付ける

ユーザーがログインすると、そのインストールをユーザーアカウントに関連付けます。

auth_service.dart」で、ログイン成功後:

Dart


注意: プッシュ通知は、クライアントとサーバーの両方で追加の設定が必要です。バックグラウンド通知やユーザーの権限など、さまざまなシナリオを処理する必要がありますが、これらはこのチュートリアルの範囲を超えています。



結論

おめでとうございます!FlutterとBack4Appを使用して、ソーシャルネットワーキングアプリの基盤を構築しました。このアプリには、ユーザー認証、プロフィール管理、ニュースフィード機能が含まれています。友達の接続、メッセージング、通知の完全な実装はこのチュートリアルの範囲を超えていますが、アプリを拡張するための必要な構造は整っています。

次のステップ

  • 友達の接続: 友達リクエスト機能を実装します。
  • メッセージング: Live Queriesを使用してリアルタイムチャット機能を追加します。
  • 通知: ユーザーエンゲージメントのためにプッシュ通知を統合します。
  • UIの改善: ユーザーインターフェースとユーザーエクスペリエンスを向上させます。
  • セキュリティ: Back4Appで適切なACLを設定してデータのセキュリティとプライバシーを確保します。

追加リソース

コーディングを楽しんでください!