Designing for the Web with Flutter (Flutter Interact ’19) 視聴メモ

ntaoo
4 min readDec 18, 2019

--

Designing for the Web with Flutter (Flutter Interact ‘19)の視聴メモです。

Flutter Webの利点とは

  • インストール無しでアプリを試せること
  • 反復を通じての改善(イテレーションサイクル)が迅速になること

レスポンシブデザイン

Web対応では特に重要となるレスポンシブデザイン。

Desktop
Tablet
Phone
Desktop
TabletとPhone

Web Standard対応

Google社内でよくある質問

コードサイズは?パフォーマンスは?

マテリアルデザインアプリでは、最低でも300KB(gzipped)。このサイズを抑えるためにハードワーク中。パフォーマンスに関しても、DOMの無駄な破棄と再生成を抑制するようにしている。

アクセシビリティ機能が動かないのでは?

リペイントをFlutterが制御しているということは、Webのアクセシビリティ機能が壊れるのではという疑問に対して。FlutterのWidget TreeとSemantic Treeは異なる。実行時の実際のTreeよりも小さなSemantic Treeを維持することで、Webのアクセシビリティ機能であるARIAに対応している。

既存のモバイル用のプラグインにWebサポートを追加するべきなのか?

Web Pluginを使ってWeb APIを利用する。

Pluginは、プラットフォームの機能の実装を隠蔽し、PluginのAPIを通じてその機能を利用する手段を提供する。

(注) 将来は、web用のdependencyをpubspec.yamlに書く必要はなくなるようです。

例として、SharedPreferencesのWeb Pluginの実装を見たら、現状でのWeb Pluginを書き方を理解しやすい。

現状のユースケース

コンパニオンアプリを作る

メインのモバイルアプリとは独立して、そのアプリの補助用として、デスクトップWebでキーボードも利用できるアプリを作る。

WebページにFlutterを埋め込んで利用する。

感想

FlutterのWebサポートが成熟したら、まずはUIをレスポンシブなWebブラウザー上で作って、ネイティブアプリであとで確認という手法が有効そう。プラットフォームとの通信が必要なるモジュールでWebで実現できない箇所は、Webではスタブ化しておけば良い。

--

--