Google Flutterがベータ版をリリース:クロスプラットフォームモバイル開発への新たな挑戦

Table of Contents

Google Flutterがベータ版をリリース:クロスプラットフォームモバイル開発への新たな挑戦

MWC2018 Flutterに興味がありますか?Googleは、先週のMobile World Congressで最初のベータ版が発表された新しいクロスプラットフォームのモバイル開発フレームワークにユーザーが賭けてくれることを期待しています。

Flutterは、Googleで開発されたオブジェクト指向C言語であるDartをベースにしており、Lars BakとKasper Lundによって設計されました。2011年に初めて発表され、構造化プログラミングをWebに導入することを目的としていました。2013年にはECMA標準として採用されました。GoogleはかつてDart VMをChromeブラウザに統合する計画でしたが、2015年にチームは方針を転換し、DartをJavaScriptにコンパイルしてあらゆるWebブラウザで実行できるようにすることに焦点を当てました。

DartはしばしばMicrosoftのTypeScriptと比較されます。TypeScriptもJavaScriptにコンパイルされ、構造化された型付きプログラミングをWeb開発に導入し、大規模アプリケーションの安全性と管理性を向上させるという同様の目標を掲げています。しかし、TypeScriptはJavaScriptのスーパーセットであるのに対し、DartはJavaScriptにコンパイルされる別の言語です。そのため、TypeScriptはWeb開発では人気がありますが、モバイルアプリケーションには適していません。ただし、Apache Cordova(モバイルブラウザとJavaScriptエンジンを使用するアプリケーション)や、TelerikのNativeScriptなどのツールでは使用できます。

一方、DartはAndroidとiOSの両方をターゲットとするネイティブコードコンパイラの恩恵を受けています。Flutterは、Dartをモバイルアプリに拡張したものと考えることもできます。

Android Studio を使用して Flutter アプリを開発します。

Android Studio を使用して Flutter アプリを開発する (クリックして拡大)。

他のフレームワークではなく、なぜDartを選ぶべきなのでしょうか?AndroidとiOS間でコードを共有できる点は魅力的ですが、他にも多くの選択肢があります。Dartは、状態の変化がユーザーインターフェースに自動的に反映されるリアクティブフレームワークなど、モダンなデザインの恩恵を受けています。また、Googleのマテリアルデザインコンセプトを実装したマテリアルコンポーネントや、iOSのデザインスタイルに準拠したCupertinoウィジェットなど、洗練されたデザインのウィジェットセットも備えています。当然ながら、マテリアルデザインセットの方がより包括的です。

Flutter開発にはどのエディタでも使えますが、Android Studio、JetBrains IntelliJ(Android Studioのベース)、Microsoft Visual Studio Codeには専用のプラグインがあります。開発を始めるには、Android開発環境の一般的なコンポーネントをインストールし、DartとFlutter SDKとツールを追加するだけです。Flutterチームは、依存関係をチェックして推奨事項を提示するFlutter doctorという便利なツールを提供しています。

Flutterツールには、ビジュアルデザイナーは一切含まれていません。GoogleのMobile World Congressのブースで、そのようなデザイナーはレスポンシブなユーザーインターフェースの設計の妨げになる可能性があると言われました。とはいえ、デバッグ環境の優れた機能の一つにホットリロードがあります。これにより、デバッグ中にコードを変更し、rターミナルペインでクリックするだけで、実行中のアプリケーションにほぼ即座に変更が反映されます。

Flutter(とDart)はオープンソースで無料で利用できます。なぜGoogleはこれに投資しているのでしょうか?答えは、GoogleはDartユーザーが他のGoogleサービスも利用してくれることを期待しているからだと聞きました。Googleの設計ガイドラインに準拠したAndroidアプリの開発を簡素化するフレームワークは、Android全体にもメリットをもたらすという考えに基づいています。言い換えれば、プラットフォーム企業が常に無料または補助金付きの開発ツールを提供している理由と同じです。®

Discover More