Google I/O 2019, focus on Flutter. - 2019/05/15 potatotips #61 @Wantedly - 2019/05/22 Flutter Meetup Tokyo #9 @Studyplus
Google I/O 2019で直接確認した、FlutterでのAndroid/iOSのUI出し分け方法と今後のUI検討指針Yuma TanakaMobile Application Engineer at MTI Ltd.(Video Market Corp.)
View Slide
2019年7月にFlutterアプリを公開予定(iOS版)
Google I/O 2019【主な参加目的】● Office HoursでGoogle社員の方にFlutterに関する質問をさせて頂き、業務で扱っているアプリの実装に活かす● Flutterに関する最新情報の取得
UI出し分け方法
UI出し分けを実装する機会はあまりなさそう● UI出し分け○ Android → Material Components Widgetsで実装○ iOS → Cupertino Widgetsで実装● 考えられる実装の動機(稀では?)○ Flutterアプリで、Google PlayやApp StoreでのFeaturedを本気で狙う○ 個人的な学習
ソースコード例(一部)https://api.dartlang.org/stable/2.3.0/dart-io/Platform-class.html
これまで実装してきて感じた事● 厳密に、Widget毎にプラットフォーム判別を行い、出し分けを実装するのは大変、ソースコードも長くなる● Cupertino Widgetsと比較してMaterialComponents Widgetsが豊富● 同じ用途のWidgetでも、Cupertino WidgetsよりMaterial Components Widgetsの方が、機能が豊富で実装しやすい印象
Office Hoursで質問【質問】Widget毎にプラットフォーム判別を行ってUI出し分けを行うのが大変である。何か簡単にできる方法はないか。【回答】現時点でない。ダイアログ等、アプリ構成の一部だけ判別して出し分けを行い、基本的には判別せず共通Widgetを使用する方針はどうか。Brett MorganDeveloper Relations Engineer,Dart and Flutter at Googlehttps://events.google.com/io/schedule/events/
UI検討指針
Flutter for Web:Technical Previewannounced at Google I/O 2019
UI検討指針・Mobile Platform↓・Multi Platformhttps://developers.googleblog.com/2019/05/Flutter-io19.html
Office Hoursで質問【質問】Flutterでマルチプラットフォーム化が進んでいる。Android/iOSだけで見てもナビゲーションの文化が異なったりするが、何を指針にして実装していくべきか。【回答】プラットフォーム側の提示するデザインガイドラインに拘りすぎない。ユーザに一番大切にして欲しい行動を各自・各社考えた上で、サービスに反映していくべき。Brett MorganDeveloper Relations Engineer,Dart and Flutter at Googlehttps://events.google.com/io/schedule/events/
Summary● Flutter○ Google I/O 2019での注目度は高いと感じた。○ プラットフォーム毎に UI出し分けを実装できるが、何か一発で完全に実現する方法は現時点で存在しない。厳密にやるとWidget毎に定義する必要があり大変。○ Material Components Widgetが豊富で実装しやすい為、特別な理由のない限り Materialベースでの実装を推奨。○ マルチプラットフォーム化が進んでいるが、ユーザにどのような行動をして欲しいのか熟考した上で、サービスに反映させていくべき。● Other○ Google I/Oに参加するなら、App Review や Office Hoursにも行く事を推奨。○ Office Hoursでは他にも入手できた情報があるので、興味のある方は別途。
References● Google I/O Schedulehttps://events.google.com/io/schedule/events/● Dart > dart:io > Platform classhttps://api.dartlang.org/stable/2.3.0/dart-io/Platform-class.html● Flutter: a Portable UI Framework for Mobile, Web, Embedded, and Desktophttps://developers.googleblog.com/2019/05/Flutter-io19.html