ntaoo blog

主にDart, Flutter, AngularDartについて書いていきます。ときどき長文。日本語のみ。Twitter: @ntaoo

Flutterでデスクトップアプリを開発

公式ではなくコミュニティベースのソリューションだが、興味深い記事だったので紹介。

https://medium.com/flutter-community/flutter-on-desktop-a-real-competitor-to-electron-4f049ea6b061

以下、上記記事の要点。

  • Androidエミュレーターを立ち上げないので、開発速度は更に高速。
  • デスクトップアプリなので、当然ウインドウは可変。まるでWebブラウザのような感覚のレスポンシブデザイン。もちろんウインドウの枠をドラッグで自由に変更できる。
  • Hot reloadingとdebuggingも従来どおり可能。
  • RAMの使用量に圧倒的な差。エミュレーターは1GB使うのに対し、こちらは100MB。
  • Androidエミュレーターでもデスクトップのウインドウでも動くChatデモの動画あり。
  • ホバーやカーソルの種類の変化など、マウス前提のデスクトップアプリに必要なWidgetを用意。
  • ほとんどの既存のWidgetはすでにデスクトップでも利用可能はユニバーサルなもの。
  • TargetPlatformでページのデザインを分岐。レスポンシブデザインのbreak pointが少なくともモバイルとデスクトップ用で用意されているようなもの。
  • CursorWidgetなどのデスクトップ用Widgetは、モバイルでは単に無視される。
  • デスクトップ用レイアウトとモバイル用レイアウトの切り替えは、PageLayoutWidgetで行う。
  • Pluginは、デスクトップもサポートしているものならばそのまま使える。

さっそく試そうと思ったが、コードは近日中 (soon) に公開されるとのことなので、期待して待ちたい。

Fuchsia OSですでにFlutterが動いているはずだし、デスクトップアプリ開発も公式に対応を研究していたはずなので、アプリはすべてデスクトップも含めてFlutterで書いてしまって、WebはSPA PWAでなくペライチのランディングページで済ますという方向性の開発も予想される。

Webブラウザで動かすFlutter for WebもGooglerの個人プロジェクトベースで模索されていて、WebのUIなどの要求事項は独特なのでなかなかWidgetの再利用は難しいはずだが、すでにあるAngularDartという信頼できるソリューションに加えて、もしFlutterも選択肢に加わると、かなり贅沢なクライアントアプリ開発環境になるだろう。感慨深い。