Flutterは、iOSやAndroidのアプリ開発を助けるGoogleのオープンソースのツールだ。まだ生まれて1年にもならないから、知らない人も多いが、ある面ではFacebookのReact Nativなど人気のフレームワークに対抗する製品だ。GoogleのDartプログラミング言語*を使用するこのツールは、昨年のデベロッパーカンファレンスGoogle I/Oで発表された。〔*: Dart言語, 本誌記事。〕
同社の今日(米国時間2/27)の発表では。Flutterは現在ベータでだが、すでに多くのデベロッパーがこれを使ってアプリを作り、Google PlayやApple App Storeで人気上位になっているアプリもある。
GoogleでFlutterを担当しているプロダクトマネージャーSeth Laddによると、MWCでFlutterの発表をしたのには理由がある。それはモバイルデベロッパーに関心を持ってもらいたいからであり、また、昨年から今日までにかけて達成された進歩を強調したいからだ。とくに大きいのは、Android StudioやVisual Studio Codeがサポートされて、Flutterのアプリをそこで書けるようになったことだ。
アルファでローンチしてから以降、FlutterのチームはiPhone Xなど新しいスマートフォンのサポートを加え、アクセシビリティ機能や、右から左へ書いていくテキストのサポート、ローカライゼーション、国際化、Flutterのコードをバックグラウンドで動かす機能、などを加えていった。
デベロッパーにとって、もっとおもしろいのは、ステートフルなホットリロードがサポートされたことだろう。ソースコードを書き換えると一瞬後には、その変化がデベロッパーのスマートフォン上のアプリに反映される。Laddによると、これによってえ開発工程が早くなるだけでなく、いちいちプロトタイピングツールを使う機会が減る。
Dartというニッチなプログラミング言語に依存していることについてLaddは、Flutterにとって正しい言語はDartだ、と主張する。“ほかの言語では、1)早い開発サイクル、2)デベロッパーが期待する標準的機能の充実、3)オブジェクト指向、4)リッチなライブラリ、5)使い慣れるのが早くて容易であること、この5拍子が揃ってる言語はあまりない”、という。このベータでFlutterは、Dart 2のプレリリースバージョンをサポートし、クライアントサイドの開発がより強力にサポートされる。
Laddによると、React Nativeのようなライバルのフレームワークに比べるとFlutterは独自のGPU加速グラフィクスとレンダリングエンジンを使い、Webビューを使わない。“これによって、デザイナーがデザインしたものと、デベロッパーが目にするものとが、正確に同じピクセルになり、ユーザーが実際に体験するデザインにもなる”、という。“独自のグラフィクスエンジンがあることによって、デザイナーが構想した一貫性のあるデザインを提供できる”。
Flutterのチームは、既存のアプリとの統合が容易なことも強調する。Flutterでは、既存のアプリをFlutterの画面から利用する、といったことができる。完全に新規にFlutterで作られた、最も人気のあるアプリとしてGoogleは、Hamiltonを挙げている。