Slide 1

Slide 1 text

Release! Flutter app Rui Kowase @rkowase 2018/03/29 Dart Meetup Tokyo #4

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

Expressive, beautiful UIs https://flutter.io/

Slide 5

Slide 5 text

Feature ● Build beautiful native apps in record time ● Fast development ● Expressive, beautiful UIs ● Modern, reactive framework ● Access native features and SDKs ● Unified app development https://flutter.io/

Slide 6

Slide 6 text

Question Are you ● Web dev? ● Android dev? ● React Native dev? 6

Slide 7

Slide 7 text

Flutter Documentation 7 https://flutter.io/docs/

Slide 8

Slide 8 text

Flutter Documentation for Web/Android/ReactNative devs 8 https://flutter.io/docs/

Slide 9

Slide 9 text

Develop & Release flow 9 Develop Build Release Setup

Slide 10

Slide 10 text

Develop & Release flow 10 Develop Build Release Setup

Slide 11

Slide 11 text

Dart 2 11 https://www.dartlang.org/dart-2

Slide 12

Slide 12 text

Dart 2 in Flutter 12 https://github.com/flutter/flutter/wiki/Trying-the-preview-of-Dart-2-in-Flutter

Slide 13

Slide 13 text

Dart 1 to Dart 2 13 Container( padding: EdgeInsets.all(16.0), child: Text("Flutter") ), Dart 1 new Container( padding: const EdgeInsets.all(16.0), child: new Text("Flutter") ), Dart 2

Slide 14

Slide 14 text

Develop & Release flow 14 Develop Build Release Setup

Slide 15

Slide 15 text

Build production app for Android - Step1 (Create key.properties) 15 storePassword= keyPassword= keyAlias=key storeFile=/key.jks>

Slide 16

Slide 16 text

Build production app for Android - Step2 (Edit build.gradle) 16 +def keystorePropertiesFile = rootProject.file("key.properties") +def keystoreProperties = new Properties() +keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) android {

Slide 17

Slide 17 text

Build production app for Android - Step3 (Edit build.gradle) 17 +signingConfigs { + release { + keyAlias keystoreProperties['keyAlias'] + keyPassword keystoreProperties['keyPassword'] + storeFile file(keystoreProperties['storeFile']) + storePassword keystoreProperties['storePassword'] + } +} +buildTypes { + release { + signingConfig signingConfigs.release + } +}

Slide 18

Slide 18 text

Build production app for Android - Step4 (flutter build apk) 18 $ flutter build apk --preview-dart-2 Initializing gradle... 1.0s Resolving dependencies... 8.1s Running 'gradlew assembleRelease'... Skipping AOT snapshot build. Fingerprint match. Built build/app/outputs/apk/release/app-release.apk (9.2MB).

Slide 19

Slide 19 text

Demo (Dev/Build/Release)

Slide 20

Slide 20 text

Summary ● Develop by Android Studio and VSCode ● Flutter Documentation for Web/Android/ReactNative devs ● Dart 2 ready ● Build app of release version by terminal and IDE ● Many contributing chance 20

Slide 21

Slide 21 text

Appendix 21

Slide 22

Slide 22 text

Speaker Deck https://speakerdeck.com/rkowase/try-flutter 22

Slide 23

Slide 23 text

Qiita https://qiita.com/rkowase/items/56f6606b7e101d939e10 23

Slide 24

Slide 24 text

Qiita 24 https://qiita.com/rkowase/items/f1012ef0738791dd6084

Slide 25

Slide 25 text

GitHub 25 https://github.com/flutter/website/pull/907

Slide 26

Slide 26 text

GitHub 26 https://github.com/flutter/plugins/pull/436