Win/macOS/LinuxでもFlutterアプリが動作する「Flutter Desktop Embedding」を発表
少し前の話しですが、Googleは12月4日にロンドンで「Flutter Live '18」を開催しています。
この基調講演で、FlutterアプリケーションをWindowsやmacOS、そして、Linuxでも実行可能にする「Flutter Desktop Embedding」が発表されました。
Flutterは、Googleによって開発されたモバイルアプリケーションのフレームワークでiOSとAndroidに対応しています。今回発表されたFlutter Desktop Embeddingで、モバイルだけではなくデスクトップでもFlutterが使えるようにしようという試みです。
発表では数ヵ月前から取り組んでいたとされており、基調講演で使われたプレゼンテーションは、Flutter Desktop Embeddingを使いmacOS上で動作しているアプリだと明かし会場をわかせています。開発はオープンソースで進められており、GitHubにはプロジェクトページができ上がっています。
プラットホームのネイティブ体験を重要視するアプリの場合は、慎重に導入する必要はありますが、ネイティブ体験を重要視しないアプリでは早々に導入を検討できるはずです。
Flutterはこれからの側面も残していますが、Raspberry PiやChromebookなどへも展開する計画があるのと、ネイティブ環境との親和性が高いので、将来性の点では今後には期待ができそうです。ただ、これと相反する動きも出てきているので次でご紹介します。
HummingbirdでDartがWeb開発言語に復活
Dartは、Webアプリ向けのプログラム言語として登場し、JavaScriptの代替言語となることが目的とされていました。しかし、生みの親のGoogleではTypeScriptが社内標準言語となり、Dartの仮想マシンをGoogle Chromeに組み込む目論見も断念しています。
モバイルに特化してFlutterとともにDart 2とリブートするまで、過去のものとなっていましたが、Flutter Desktop Embeddingでデスクトップアプリを開発するためのプログラミング言語としての道筋を見いだし、次のステップとして元々狙っていたWebアプリケーションを開発するプログラム言語の道筋を模索しています。これが「Hummingbird」と呼ばれるもので、Flutter Live '18で発表されました。
Hummingbirdは、Flutterを使ってDartで書かれたアプリをJavaScriptにコンパイルしてWebアプリ化するものです。現実になれば、Flutter+Dartは、モバイルOSとデスクトップOSに留まらず、Webでもエコノミーを展開することになります。また、組み込みOSも狙っているので、とどまるところ知らずです。
JavaScriptにコンパイルする場合、Dartで書かれたFlutterフレームワーク部は、置き換えを狙った言語からの変換なので面倒な話しは少ないのかもしれません。しかし、Flutterのエンジン部はC++で書かれており、これをWebで使えるように書き直しの作業を行っているとしています。これは、途方もないことにも感じますが、最適化が進んでいない段階で、60fpsの描画速度が実現できているとしています。書き直しに手数がかかるが、ネイティブの体験をWebでも体験するのは、難しい話しではないのかもしれません。
Hummingbirdは、オープンソースにはなっておらず手元で試せませんが、ある程度安定したらGitHubに公開するとされています。
Googleは、Progressiv Web Applicationに力を入れているので、このHummingbirdが最適な手段となる可能性はあります。ただ、ネイティブで動作しているものをWebに持ってくると、Webならではの制約にひっかかるので、これらに対してどう対応するのか、どう切り捨てていくのか気になるところです。
2019年のGoogle I/Oで詳細を発表するとしているので、詳しくはそこまで待ちです。ただ、この前にGitHubにソースコードが公開されるので、このタイミングで全体が見えてくるはずです。
今週は、このあたりで、また来週。