チャットアプリハンズオン

1.6K Views

August 29, 22

スライド概要

FlutterでChatアプリを作成するハンズオンです。

profile-image

狐とFlutterが好きなプログラマ

Docswellを使いましょう

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

Chat アプリ ハンズオン Chat アプリハンズオン with Flutter pregum pregum 1

2.

アプリ ハンズオン 目次 Chat 最初に とは? Flutter とネイティブアプリとの違い なぜ他のXPではなくFlutterなのか? 今日作るアプリについて ChatApp 作成 ( 時間があれば ) 、質疑応答 Flutter pregum 2

3.

Chat アプリ ハンズオン 最初に 今日はハンズオンに参加していただき、ありがとうございます。 1 点お願いがあります。 サンプルのカウンターアプリが起動ができていない方は 話している最初の10~15分程度でサンプルのカウンターアプリの起動 まで準備していただけますと スムーズに進行できるかと思いますので、ご協力お願いします。 それではよろしくお願いします。 pregum 3

4.

Chat アプリ ハンズオン 動作環境 のバージョン: 3.0.5 Flutter のバージョンは flutter doctor -v で確認できます。 Flutter のバージョンをいじりたくない場合は fvm を入れてバージョンを固定しましょう . brew install fvm コマンド実行後、今回の作業フォルダで fvm local 3.0.5 -f を実行すれば OK 参考サイト: https://zenn.dev/riscait/articles/flutter-versionFlutter management pregum 4

5.

Chat アプリ ハンズオン 自己紹介 年生まれ 普段はKotlin, Swift, TypeScript で開発しています Flutter で個人アプリを 作っています 1995 pregum 5

6.

Chat アプリ ハンズオン Flutter とは? が開発中のクロスプラットフォーム(以降XP)開発が可能なフ レームワークです。 今現在(2022/8/22)、iOS/Android/Web/Linux/macOS/Windowが 開発可能です。 Google pregum 6

7.

Chat アプリ ハンズオン Flutter とネイティブアプリとの違い 開発スピードと処理速度 項目 Flutter パフォーマンス 若干遅い 開発速度 概ね1Platform分 検討されるケース 開発コスト削減 pregum ネイティブアプリ 早い OS 数に応じて遅くなる native の機能が必要 7

8.

Chat アプリ ハンズオン なぜ他のXPではなくFlutterなのか? 色々ありますが以下が大きな要因です。 いい感じのUIが標準ライブラリで作れる アプリを起動しながらレイアウトの微調整が可能 pregum 8

9.

Chat アプリ ハンズオン 今日作るアプリについて 今日できるアプリ https://github.com/Pregum/chat-app-hands-on-flutter 機能一覧 チャット送信機能 メッセージ受信機能 pregum 9

10.

Chat アプリ ハンズオン アプリを作り始める前に Flutter のUIについて のUIは全てウィジェット テキスト ボタン チェックボックス Flutter etc... pregum 10

11.

Chat アプリ ハンズオン Flutter のUIについて ウィジェットは大きく分けて2種類存在する 状態(State)を持つStateful Widget setState() で状態を変更可能 状態(State)を持たないStateless Widget setState() は使用不可 親ウィジェットや外部から受け取るデータによって更新可能 最初はStateful Widgetを使っておけばOK pregum 11

12.
[beta]
Chat

アプリ ハンズオン

Flutter

は宣言的UI

宣言的UI (React, SwiftUI, etc...)
String name = 'taro';
Center(
child: Text('Hello $name'),
),
// -> Hello taro

命令的UI (UIKit, WinForms, etc...)
text.frame = CGRect(
x: 50,
y: 50,
width: 50,
height: 50
)
text.text = "taro"
text.textAlignment = NSTextAlignment.Center

何を表示させるかを記述する。 レイアウトの配置からテキストの
文字列まで記述する。
pregum

12

13.

Chat アプリ ハンズオン 一言で表すと 宣言的UIは何をしたいかをコードで伝える (What) 命令的UIはどのようにしたいかをコードで伝える (How) pregum 13

14.

Chat アプリ ハンズオン Chat アプリで使う主なウィジェット Column 縦並びでウィジェットを配置してくれるウィジェット SingleChildScrollView スクロールする画面を作ってくれるウィジェット pregum 14

15.

Chat アプリ ハンズオン 作成の流れ に接続 2. 受信メッセージをリスト形式で表示 3. 送信用メッセージ入力欄を作成 4. デザインを調整 1. Firebase pregum 15

16.

Chat アプリ ハンズオン プロジェクトのクローン 下記コマンドを叩いて テンプレートのプロジェクトをローカルにクローンします。 git clone [email protected]:Pregum/chat-app-hands-on-flutter.git pregum 16

17.

Chat アプリ ハンズオン step1. Firebase に接続 したプロジェクトに既にプロジェクトに接続されているため、 今回はそのプロジェクトを使用します。 自分でプロジェクト入れる場合は、下記サイトに沿って入れてみてく ださい。 clone https://firebase.google.com/docs/flutter/setup?platform=android pregum 17

18.

Chat アプリ ハンズオン step2. 受信メッセージをリスト形式で表示 ファイルをmain.dartファイルへ コピー ペーストしてください。 step2.dart & pregum 18

19.

Chat アプリ ハンズオン step3. 送信用メッセージ入力欄を作成 ファイルをmain.dartファイルへ コピー ペーストしてください。 step3.dart & pregum 19

20.

Chat アプリ ハンズオン step4. デザインを調整 をmain.dartへ コピー ペーストしてください。 step4.dart & pregum 20

21.

Chat アプリ ハンズオン 完成 お疲れ様でした pregum 21

22.

Chat アプリ ハンズオン 改善ヒント 少しずつデータを読み込む仕組みを作る 日付が変わった箇所で日にちを表示するウィジェットを入れてみる 動画や画像を送信できるようにしてみる ログイン機能を作成し、ユーザーごとにチャットルームを作成して みる pregum 22

23.

Chat アプリ ハンズオン 参考サイト https://twitter.com/gethackteam/status/1268892357027663873? ref_src=twsrc^tfw|twcamp^tweetembed|twterm^126889235702 7663873|twgr^12007820d2fc3fecbe0ca6381183ab580763b432| twcon^s1_&ref_url=https%3A%2F%2Fqiita.com%2FHiroyuki_OSA KI%2Fitems%2Ff3f88ae535550e95389d https://qiita.com/Hiroyuki_OSAKI/items/f3f88ae535550e95389d https://ui.dev/imperative-vs-declarative-programming pregum 23