Slide 1

Slide 1 text

Flutter Overview++ (Google I/O 2018) Rui Kowase @rkowase 2018/05/31 Flutter Meetup Tokyo #2

Slide 2

Slide 2 text

Profile ● Name: Rui Kowase / 小和瀬 塁 ● Account: @rkowase Skill: Flutter, Android, etc...

Slide 3

Slide 3 text

Flutter Overview++ ++

Slide 4

Slide 4 text

What’s Flutter Flutter makes it easy and fast to build beautiful mobile apps. https://github.com/flutter/flutter

Slide 5

Slide 5 text

Dart 2 ● A client-optimized language ● Rich & powerful frameworks ● Delightful & flexible tooling https://www.dartlang.org/

Slide 6

Slide 6 text

Ready for Production Apps: Flutter Beta 3 https://developers.googleblog.com/2018/05/ready-for-production-apps-flutter-beta-3.html ● Flutter offers ○ High-velocity development ○ Expressive and flexible designs ○ High-quality experiences ● Roadmap to Release ○ Performance and size ○ Compatibility ○ Ecosystem

Slide 7

Slide 7 text

What’s New in Flutter Beta 3 https://medium.com/flutter-io/flutter-beta-3-7d88125245dc ● Fundamentals ○ Material Design Widget ○ Dart 2 ● Ecosystem ○ Firebase ○ AdMob ● Tooling ○ Android Studio ○ IntelliJ IDE ○ VS Code

Slide 8

Slide 8 text

Google I/O sessions 2 Sessions 6 Sessions x3 https://events.google.com/io/schedule/?section=may-8&topic=flutter&type=sessions

Slide 9

Slide 9 text

Flutter sessions ● Flutter & Design ○ Customize Material Components for your product ○ Build great Material Design products across platforms ○ Code beautiful UI with Flutter and Material Design ● Flutter & Firebase ○ Total mobile development made fun with Flutter and Firebase ○ Add Firebase to your cross-platform React Native or Flutter app ● Flutter ○ Build reactive mobile apps with Flutter https://events.google.com/io/schedule/?section=may-8&topic=flutter&type=sessions

Slide 10

Slide 10 text

Material Design

Slide 11

Slide 11 text

Material Design Roadmap https://github.com/material-compone nts/material-components/blob/develo p/ROADMAP.md

Slide 12

Slide 12 text

Material Components Support (May 2018) Android (1.0.0-alpha1) iOS (55.0.2) Web (0.35.1) Flutter (Beta 3) Color theme components 8 / 16 12 / 16 9 / 16 16 / 16 Type theme components 7 / 10 9 / 10 5 / 10 10 / 10 Expanded set of components 1 / 3 2 / 3 0 / 3 3 / 3 Shape parameter 0 / 2 2 / 2 2 / 2 2 / 2 https://github.com/material-components/material-components/blob/develop/ROADMAP.md

Slide 13

Slide 13 text

Material Design Flutter

Slide 14

Slide 14 text

Firebase

Slide 15

Slide 15 text

Firebasde Integration https://www.youtube.com/watch?v=8wQ_MorYCEk

Slide 16

Slide 16 text

Available FlutterFire plugins https://github.com/flutter/plugins/blob/master/FlutterFire.md

Slide 17

Slide 17 text

How to integrate 1. Signed up for a Firebase account 2. Create a Firebase project 3. Platform-specific Firebase configuration ○ Configure iOS ○ Configure Android

Slide 18

Slide 18 text

Configure Flutter Plugin for iOS

Slide 19

Slide 19 text

Configure Flutter Plugin for Android

Slide 20

Slide 20 text

Getting started with Firebase and Flutter https://firebase.google.com/docs/flutter/setup

Slide 21

Slide 21 text

Flutter

Slide 22

Slide 22 text

Handling state ● Flutter & state - setState() ● State & widget tree - InheritedWidget() ● Reactive with streams - BLoC & Stream https://www.youtube.com/watch?v=RS36gBEp8OI

Slide 23

Slide 23 text

Flutter & state - setState https://www.youtube.com/watch?v=RS36gBEp8OI

Slide 24

Slide 24 text

Pros/Cons - setState() ● Access state ❌ ● Updating on change ❌

Slide 25

Slide 25 text

State & widget tree - InheritedWidget https://www.youtube.com/watch?v=RS36gBEp8OI

Slide 26

Slide 26 text

Pros/Cons - InheritedWidget ● Access state ✅ ● Notify other widgets ✅ ● Mutating state ❌

Slide 27

Slide 27 text

Sample App - Shopping Cart https://www.youtube.com/watch?v=RS36gBEp8OI

Slide 28

Slide 28 text

ScopedModel ● External Package ● Build on InheritedWidget ● Access, Update & Mutate https://pub.dartlang.org/ packages/scoped_model

Slide 29

Slide 29 text

Pros/Cons - ScopedModel ● Access state ✅ ● Notify other widgets ✅ ● Minimal rebuild ❌

Slide 30

Slide 30 text

RxDart & StreamBuilder https://www.youtube.com/watch?v=RS36gBEp8OI

Slide 31

Slide 31 text

Reactive with streams - BLoC & Stream https://www.youtube.com/watch?v=RS36gBEp8OI

Slide 32

Slide 32 text

Pros/Cons - BLoC & Stream ● Access state ✅ ● Updating on change ✅ ● Mutating state ✅

Slide 33

Slide 33 text

Summary ● Material Design Flutter ● Firebase Flutter ● Reactive Framework ⚡

Slide 34

Slide 34 text

Appendix

Slide 35

Slide 35 text

Appendix - Build reactive mobile apps with Flutter (Google I/O '18) メモ - Qiita https://qiita.com/rkowase/items/23ee4264d54e7890d919

Slide 36

Slide 36 text

Appendix - Google I/O 2018で聞いたFlutter関連の質問 - Qiita https://qiita.com/rkowase/items/43ecf5bb5bf9a4eac61f

Slide 37

Slide 37 text

Appendix - Flutter Showcase https://flutter.io/showcase/

Slide 38

Slide 38 text

Appendix - Flutter Hot Reload Game

Slide 39

Slide 39 text

Thank you