【Flutter】チャットサンプルアプリの作り方とchat-uiの活用方法

Flutterチャットサンプルアプリの作り方とchat-uiの活用方法

概要

この記事では、Flutterを使用してチャットサンプルアプリを作成する方法と、chat-uiを活用する方法について説明します。Flutterは、Googleが開発したクロスプラットフォームのモバイルアプリ開発フレームワークであり、Dartというプログラミング言語を使用します。chat-uiは、チャットアプリのUIを簡単に実装するためのライブラリです。

コンテンツ

1. Flutterプロジェクトの作成

まず、Flutterの開発環境をセットアップし、新しいFlutterプロジェクトを作成します。ターミナルウィンドウで以下のコマンドを実行してください。


flutter create chat_app
cd chat_app

2. 必要なパッケージのインストール

チャットアプリを作成するには、以下のパッケージをインストールする必要があります。


flutter pub add firebase_core
flutter pub add cloud_firestore
flutter pub add flutter_chat_ui

3. Firebaseプロジェクトの作成

Firebaseは、モバイルアプリ開発のためのバックエンドサービスです。Firebaseプロジェクトを作成し、Firestoreデータベースを有効にします。

  1. Firebaseコンソールにアクセスします。
  2. 「新しいプロジェクトを作成」をクリックし、プロジェクト名を入力します。
  3. プロジェクトの作成が完了したら、「Firestoreデータベースを作成」をクリックします。
  4. データベースのロケーションを選択し、設定を保存します。

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

Firebaseプロジェクトの設定をFlutterアプリに追加します。

  1. Firebaseコンソールのプロジェクトの概要ページで、「アプリを追加」をクリックします。
  2. Flutterアプリのパッケージ名を入力し、アプリを登録します。
  3. google-services.json

    ファイルをダウンロードし、

    android/app

    ディレクトリに配置します。

5. チャットUIの実装

Flutterアプリ内でチャットUIを実装します。

lib/main.dart

ファイルを開き、以下のコードを追加します。


import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter_chat_ui/flutter_chat_ui.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(ChatApp());
}

class ChatApp extends StatelessWidget {
  final Future<FirebaseApp> _initialization = Firebase.initializeApp();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: FutureBuilder(
        future: _initialization,
        builder: (context, snapshot) {
          if (snapshot.connectionState == ConnectionState.done) {
            return ChatScreen();
          }
          return CircularProgressIndicator();
        },
      ),
    );
  }
}

class ChatScreen extends StatelessWidget {
  final FirebaseFirestore _firestore = FirebaseFirestore.instance;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Chat App'),
      ),
      body: StreamBuilder<QuerySnapshot>(
        stream: _firestore.collection('messages').snapshots(),
        builder: (context, snapshot) {
          if (!snapshot.hasData) {
            return CircularProgressIndicator();
          }
          final messages = snapshot.data.docs;
          return Chat(
            messages: messages.map((message) {
              return ChatMessage(
                id: message.id,
                text: message.data()['text'],
                createdAt: message.data()['createdAt'].toDate(),
                user: ChatUser(
                  name: message.data()['user']['name'],
                  avatarUrl: message.data()['user']['avatarUrl'],
                ),
              );
            }).toList(),
            onSendPressed: (message) {
              _firestore.collection('messages').add({
                'text': message.text,
                'createdAt': DateTime.now(),
                'user': {
                  'name': message.user.name,
                  'avatarUrl': message.user.avatarUrl,
                },
              });
            },
          );
        },
      ),
    );
  }
}

6. チャットアプリの起動

ターミナルウィンドウで以下のコマンドを実行し、Flutterアプリを起動します。


flutter run

まとめ

この記事では、Flutterを使用してチャットサンプルアプリを作成する方法と、chat-uiを活用する方法について説明しました。Flutterとchat-uiを組み合わせることで、簡単に魅力的なチャットアプリを開発することができます。是非、これらの技術を使って、自分だけの素晴らしいチャットアプリを作成してみてください。

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x