Slide 1

Slide 1 text

居酒屋で使えそうなゲームを FLUTTER FOR WEBで作った話

Slide 2

Slide 2 text

自己紹介 Name : 大西優司 (Yuji Onishi) 株式会社Eduphile IT事業部長 執行役員(関西でflutterを広げたい人) Birthday : 1991/8/6 Mail : [email protected] 趣味︓作曲・楽器演奏・カメラ撮影・読書・電子ゲーム・アナログゲーム 略歴︓ 新卒で就職した教育系の会社で、個別指導塾の教室長として生徒数100名弱の 地域基幹教室で勤務し、30名の講師のマネジメントを行う。教室勤務の他に企画 業務と講師採用業務を経験した後にプログラマーに転職し、医療用パッケージアプリ 開発を行う。 2018年4月に小中高向け個別指導塾を運営する会社を設立し、部下育成・組 織開発を行う。担当業務は教務・教室管理・上級プログラミング教育カリキュラム策 定・内製アプリケーション開発マネジメント。 現在は執行役員として勤務する傍ら、フ リーランスとして講師業やエンジニアなど活動を広げている。 2

Slide 3

Slide 3 text

今日話す内容 3

Slide 4

Slide 4 text

・自己紹介 ・今回組んだサンプルアプリの紹介 ・FLUTTERとは ・FLUTTER FOR WEBとは ・FLUTTERをどう組むのか ・ANIMATIONの処理 ・FLUTTERの弱点 ・FLUTTERを美しいコードにするためのある解決策 ・FLUTTER FOR WEBのFIREBASEデプロイ 4

Slide 5

Slide 5 text

サンプルアプリ機能説明 5

Slide 6

Slide 6 text

こ の ゲ ー ム は 、 2 人 以 上 の プ レ イ ヤ ー で 遊 ぶ ゲ ー ム で す 。 1 つ の タ ー ン に お い て 、 「 濁 点 の 多 い メ ニ ュ ー は ︖ 」 な ど の お 題 が 与 え ら れ ま す の で 、 飲 食 店 な ど の メ ニ ュ ー を 使 用 し 、 そ の 中 か ら 回 答 を 探 し だ し ま す 。 ま ず 、 そ れ ぞ れ の プ レ イ ヤ ー へ 順 番 に 制 限 時 間 が 与 え ら れ ま す 。 こ の 与 え ら れ た 制 限 時 間 内 に 、 メ ニ ュ ー か ら お 題 に あ っ た 回 答 を 探 し ま す 。 全 員 回 答 が 終 了 し ま し た ら 、 次 は 発 表 で す 。 画 面 に 回 答 さ れ た 内 容 が 表 示 さ れ ま す の で 、 最 も ア ナ ウ ン ス が 得 意 と さ れ る 人 が 、 プ レ イ ヤ ー の 回 答 を 発 表 し ま す 。 発 表 が 終 わ り ま し た ら 、 最 後 に 投 票 を 行 い ま す 。 画 面 に 全 プ レ イ ヤ ー の 名 前 が 表 示 さ れ ま す の で 、 お 題 に そ っ て 、 全 員 で 話 し 合 い を し て 投 票 先 を 決 定 し て く だ さ い 。 こ の 一 連 の 流 れ を 繰 り 返 し 、 最 も 投 票 さ れ た プ レ イ ヤ ー が 勝 者 と な り ま す 。 6

Slide 7

Slide 7 text

7 居酒屋のメニューを利用したゲーム

Slide 8

Slide 8 text

FLUTTERとは? 8

Slide 9

Slide 9 text

Flutter (フラッター) は Googleによって開発された フリーかつオープンソースの モバイルアプリケーションフレームワークである。 AndroidやiOS向けのアプリケーションの開発に利用されている。 Wikipediaより 9

Slide 10

Slide 10 text

FLUTTER FOR WEBとは︖ 10

Slide 11

Slide 11 text

Web support is a code-compatible implementation of Flutter that is rendered using standards-based web technologies : HTML, CSS and JavaScript. With web support, you can compile existing Flutter code written in Dart into a client experience that can be embedded in the browser and deployed to any web server. You can use all the features of Flutter, and you don’t need a browser plug-in. 11

Slide 12

Slide 12 text

Flutterを利用したウェブサポート! 12

Slide 13

Slide 13 text

FLUTTERの基本的な組み方 13

Slide 14

Slide 14 text

UI設計 14 FLUTTERのUI設計は 様々なウィジェットによって構成されている。 FLUTTERのウィジェットはUIの不変な部分を表し テキスト・図形・アニメーションなどを含む全てのグラフィック はウィジェットを使用して描画を行う。 多くの単純なウィジェットを組み合わせることで、複雑なウィ ジェットを作成することができる。 WIKIPEDIAより

Slide 15

Slide 15 text

Widgetの組み合わせによってviewを構築する︕ 15

Slide 16

Slide 16 text

FIREBASEによる保存処理 16

Slide 17

Slide 17 text

パディング付きのテキストフィールド 17

Slide 18

Slide 18 text

配置図 18

Slide 19

Slide 19 text

配置図(親子関係) 19

Slide 20

Slide 20 text

配置図(画面例) 20

Slide 21

Slide 21 text

SCAFFOLD 21

Slide 22

Slide 22 text

FLOATING ACITON BUTTON 22

Slide 23

Slide 23 text

TEXT 23

Slide 24

Slide 24 text

CENTER 24

Slide 25

Slide 25 text

COLUMN 25

Slide 26

Slide 26 text

ROW 26

Slide 27

Slide 27 text

GRIDVIEW 27

Slide 28

Slide 28 text

ANIMATION処理 28

Slide 29

Slide 29 text

利用パッケージ 29

Slide 30

Slide 30 text

30 水玉が流れるサンプル

Slide 31

Slide 31 text

31 フェードイン

Slide 32

Slide 32 text

examplesそのままの設定でかなりリッチな動作をしてくれる︕ 32 今回は汎用化して外部から使いやすいWidgetとして実装しました

Slide 33

Slide 33 text

EXAMPLES 33

Slide 34

Slide 34 text

サンプルアプリ 34

Slide 35

Slide 35 text

FLUTTERの弱点 35

Slide 36

Slide 36 text

コードが汚くなる︕ (言語特性上ネストが深くなる) 36

Slide 37

Slide 37 text

超絶不快ネスト 37

Slide 38

Slide 38 text

FLUTTERで綺麗に組むための1つの解決策 38

Slide 39

Slide 39 text

粒度を意識したコードの切り分け 39

Slide 40

Slide 40 text

不快なネストを解決 40

Slide 41

Slide 41 text

FLUTTER FOR WEBのFIREBASEデプロイ 41

Slide 42

Slide 42 text

前提①:flutterを利用できる環境にある(エミュレータはなくてもいい) 42 前提②:firebase CLIが入っている

Slide 43

Slide 43 text

①flutter channel master ②flutter upgrade 43

Slide 44

Slide 44 text

③ルートフォルダwebフォルダを作成しmain.dart.jsを指定したスクリプトタグをボディに入れたindex.htmlを作成 44

Slide 45

Slide 45 text

④flutter build web 45

Slide 46

Slide 46 text

⑤適宜ファイルを移動しfirebase deploy 46

Slide 47

Slide 47 text

是非、皆さんもFLUTTERの世界に来てください

Slide 48

Slide 48 text

ありがとうございました