GoogleのFlutterはmacOSやWindowsも含む真のマルチプラットフォーム対応へ

GoogleのFlutterは、クロスプラットフォーム開発に対応した UIツールキット。登場してからまだ2年しか経っていないが、あっという間に多くのデベロッパーがこぞって採用するフレームワークとなった。ただし、これまでは「クロスプラットフォーム」の意味は、AndroidとiOSにのみ限定されていた。昨年末になってGoogleは、Flutterをモバイル用だけでなくウェブにも拡張すると発表した。そして米国時間5月7日に開催されたGoogle I/Oで、その言葉通り、ウェブ用Flutterのテクニカルプレビュー版を発表した。

さらにGoogleは、Flutterを利用して、macOSWindowsLinuxをターゲットにした開発がもうすぐ可能になることも明らかにした。すでにGoogle自身も、Flutterを利用してGoogle Home Hub(Nest Hubに改名)のユーザー体験を設計し始めているという。それ以外に、さまざまな組み込みデバイス用に活用することも視野に入れている。

「Flutterは、カスタマイズされたユーザー体験を開発するための、美しく、速く、生産的なオープンソースのツールキットです。もともとはモバイル向けとして、基礎的な部分から構築したものです」と、Flutter担当のグループプロダクトマネージャ、Tim Sneath氏は語った。「今回のニュースは、Flutterをモバイル専用という枠から開放し、モバイル、組み込み、さらにデスクトップを含む汎用のポータブルなUIツールキットに昇華させるという、大きな意味を持つものです」。

デフォルトでは、Flutterを利用するアプリはGoogleのDart言語で記述し、そこからJavaScriptにコンパイルすることができる。その点では、Flutterをブラウザ上で利用するのは単純なことのように思われる。しかし、Flutterのエンジンをブラウザ上で製品レベルの品質で動作させるには、それなりの開発作業が必要だった。Sneath氏によれば、Flutterチームは、ブラウザ上でもモバイルとまったく同様に動くようにするため、特に熱心に取り組んだという。それはデベロッパーからも、ユーザーからも、同じように見え、使えるものでなければならなかった。

「大きな課題は、標準的なウェブの機能を利用して、Flutterベースのリッチなユーザー体験を実現し、それをどうやってクライアントに届けるのか、ということでした」と、Sneath氏は説明した。ウェブ上で動かすということは、ユーザーによるウィンドウのサイズ変更のような基本的なことから、キーボードやマウスとのやりとりといったことまでサポートしなければならないことを意味する。

このような要件は、もちろんデスクトップにも当てはまる。ただし、デスクトップ用のコードは、まだ製品レベルには達していない。とはいえ、すでにデベロッパーはデスクトップ版での開発も試せるようになっている。Flutterチームによれば、現状ではmacOS版の完成度が最も高いが、それなりの覚悟があれば、Windows版やLinux版での開発も可能だという。

チームは、Flutterのコードベースを1つに統一したいと考えている。そうすれば、デベロッパーがさまざまに異なるプラットフォームをサポートする際にも、Flutterのフレームワークや、その上で動作するアプリのコードをフォークし直す必要がなくなる。「私たちは、1つのフレームワークですべての環境に対応できるようにしたいと考えています」と、Sneath氏は言う。しかも、一見するとデスクトップアプリに見えるウェブアプリではなく、ネイティブ動作するデスクトップアプリも含めての話だと強調した。

Sneath氏は、New York Timesのパズルアプリのデモを見せてくれた。モバイルとウェブで、見た目も操作感覚も、まったく同じだった。これはFlutterのデベロッパーにとって、理想的なシナリオに違いない。

今回のアップデートで、GoogleはFlutterのコアに、さらにいくつかの新機能を追加した。その中には、iOS用の新しいウィジェット、Googleならではマテリアルデザイン、Dart 2.3のui-as-codeのサポート、といったものが含まれている。さらにFlutterチームは、ML Kit Custom Image Classifier for Flutterも発表した。これを利用すれば、デベロッパーは自分のアプリに画像認識のワークフローを組み込むことができる。「スマホのカメラを使用してトレーニング用のデータを収集することができます。他の人にデータ収集に協力してもらうことも可能です。1つのアプリでモデルのトレーニングをすることも、トレーニング済のモデルを利用することもできます」と、チームは発表した。

今後の展望としては、テキストの選択やコピー、ペーストのサポート強化、プラグインのサポート、PWA(プログレッシブウェブアプリ)といった新技術を標準サポートすることも計画している。

画像クレジット:TechCrunch

原文へ

(翻訳:Fumihiko Shibata)

GoogleがモバイルUIツールFlutterを刷新、アプリや機能のオンデマンド配信も可能に

米国時間2月26日、バルセロナで開催中のMWC 2019でGoogleはクロスプラットフォームのUIフレームワーク「Flutter」をバージョン1.2にアップデートした。

今回のアップデートでFlutterはAndroid App Bundleをサポートする。これはアプリや機能をオンデマンド配信するためのGoogleの最新テクノロジーだ。Androidアプリを効率的にパッケージできるだけでなく、ダウンロードせずにアプリを利用できるInstant Appも作成できる。

また新しいFlutterフレームワークにはデベロッパーがアプリ内課金によって収入を得ることを助ける仕組みなど多数のウェブベースのツールが用意されている。

昨年のMWCでFlutterのアルファ版が公開された後、Flutter 1.0がリリースされたのはわずか数カ月前だった。それならバージョン1.1はどうしたのだといぶかる読者もいるだろう。実は先月のベータリリースがそれだった。Flutterチームは毎月一度程度の割合で1.xアップデートをリリースする計画だという。

当然のことながらFlutterは今回のアップデートでパフォーマンス、信頼性とも改良されて通常の安定版になっている。また最新のDart 2.2 SDKがデフォルトでバンドルされる(FlutterアプリケーションはDart言語で書かれている)。開発チームはiOSのサポートにも力を入れておりフローティングカーソルでのテキスト編集にも対処しているという。

Flutterはモバイルに重点を置いたプロダクトだが、最近、Googleではこのフレームワークを使ったデスクトップアプリケーション開発の可能性に言及するようになった。準備の一環として、1.2ではキーボードイベントとマウスカーソルを乗せるイベントのサポートが追加された。Project HummingbirdはFlutterをWebに移植するためのプロジェクトだが、今後数カ月以内にテクニカルプレビューとして公開されるという。

開発ツールとして見た場合、GoogleはすでにAndroid StudioでFlutterをサポートしている。またMicrosoftのポピュラーなツール、Visual Studio Code向けのツールを追加している点も注目だ。また新しいWebベースのプログラミングツールであるDart DevToolsも開発中だ。これらのツールはローカルに実行され、ウィジェットインスペクタ、タイムラインビュー、ソースレベルのデバッガ、ロギングビューなどを含む。

現在、これらのツールは公式プレビュー版が公開されており、既存のVS Code、Android Studioの拡張機能やアドインとともにインストールできる。

今回のアップデートのリリースに加えて、FlutterチームはFlutter Createと呼ばれるコンテストを実施することを発表した。参加者はFlutterを使って「面白くてためになりビューティフルな何か」を作ることを求められる。Dartのコードのボリュームは5K以下でなければならない。賞品には1万ドル相当のiMac Proが含まれているが、メモリー128GBというスペックなので5Kのコードの処理に手間取る心配はないだろう。

原文へ

(翻訳:滑川海彦@Facebook Google+

Dart言語によるモバイルアプリ(iOS/Android)開発フレームワークFlutterがベータを開始

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を挙げている。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa

あらゆるArduino機器用汎用無線通信モジュールFlutter, レンジ1000m強+メッシュネットワーク内蔵でKickstarterに登場

このKickstarterプロジェクトが成功したら、Arduinoを使ったデバイス間の長距離通信が、これまでよりも安く容易にできるようになるだろう。この、Arduino用のワイヤレス開発プラットホームFlutterは、通信可能な距離が半マイルあまりで、WiFiでは通信が難しいようなアウトドア活動に向いている。

想定される用途は、ホームオートメーション、クァドコプターのような飛行ロボット、環境監視システム、無線で制御する自動車などだ。要するにある程度の長距離で通信を必要とするArduinoデバイスなら、何でもよい。レンジは1000メートル強だがメッシュネットワーキングの機能が組み込まれる予定なので、複数のデバイスによってこのレンジを超えた距離をカバーすることも可能だ。

Kickstarterで8万ドルの目標を達成すると商用の生産が可能になり、Flutterのボードがペアで売られることになる。予価は20ドル、アンテナ付きのプロ仕様が30ドルだ。プロセッサはARM系のAtmel SAM3sを使っている。

Flutter Basicのボードには内蔵アンテナがあり、部品を裏表両側に載せているのでサイズが小さい。電源とプログラミングのためにマイクロUSBがあり、LED、ボタン、デジタルとアナログ用のI/Oポートもある。Proボードには電池充電器や、外付けアンテナがあり、ボタンの数もメモリもBasicよりは多い。

Flutterの製作者は、ボードのほかに簡単にプラグ&プレイできるキットもいろいろ企画している。たとえば家庭用基地局はEthernetやWiFiのルータに接続できる。スマートフォンと通信できるためのBluetoothシールドもあるので、将来的にはFlutterのモバイルアプリも可能だ。

単価が20~30ドルだから、かなり大規模な利用プロジェクトも比較的安上がりに実装できるだろう。

Kickstarterで資金を提供した者には、最低で25ドルのBasicボードから、最高475ドルまでのいろんなオプションが提供される。そのメニューは、Flutter Basic 5、Flutter Pro 5、RC Shield 4、Shield shield 2、Flutter Network Shield 1、Bluetooth Shield 1、Starter Kit 1、USB 10、Breakouts 12などだ。

暗号チップを内蔵していて、通信はすべて暗号化される。長距離の通信がどこかで傍受されても安全だ。

ファームウェアがすべてオープンソースであるだけでなく、設計図面も回路図も材料部品仕様書もすべて公開される。それは、現状をベースとしての改良やフォークを誰もが容易にできるためだ。ワイヤレス開発のためのチュートリアルも提供されるから、ユーザレベルでの今後の多様な開発が期待される。

…という相当意欲的なプロジェクトだが、まだまだ今後やることは多い。商用化に向けてのデザイン、ワイヤレスハードウェアがFCCの認可を取る、サポートのためのソフトやモバイルアプリ(iOSとAndroid)を作る、などなど。でも資金募集の方は、あと27日ある段階ですでに目標額の半分に近いから、明らかにメーカーたちコミュニティの広いニーズにフィットしたのだ。これだけの支持があれば、成功間違いなしだろう。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))