flutterというGoogle社が提供する、モバイル向けクロスプラットフォームSDKがおもしろそうなのでまとめてみます。個人的には、ラピッドプロトタイピング用途で使うことを目的としています。
flutterとは
公式ホームページによると、
Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.
と書かれています。
1つのコードベースでモバイル, Web, デスクトップ向けのネイティブ環境でコンパイルできる美しいアプリケーションのための、Googleが提供するUI toolkitってところでしょうか。アプリ界隈の素人的には、Unityと似てそうだなと思いました。
どれぐらいイケていそうか
同様のマルチプラットフォームUI toolkitとしては、React Native, Xamarinなどがあるようです。定量的にOSSがどれぐらいイケているかを示す指標として、GithubのStarがあります。
flutterは99.1K, React Nativeは89.7K, GithubでXamarinと検索して関連していそうなレポジトリの中で最もStar数の多いXamarin.Formsは4.7Kとなっています。
また、Google Trendでみたところ、やはり2018年8月以降は概してflutterの方が検索されているようです。
flutterの特徴
- Dartでプログラミングをする必要がある
- 独自のrendering engine
- Native Peformence
- Hot Reload
- UIが綺麗
Dartでプログラミングをする必要がある
ここが物議を醸すところかと思いますが、flutterではDartでプログラミングをする必要があります。Dartとは、Google社が開発しているプログラミング言語で、オブジェクト指向でclassに対応しており、ガーベジコレクション搭載のC風の文法を持つ言語です。Dartの例を見る感じ、Javascriptに似ている印象を受けました。Dartはマイナー言語だと思いますので、学習コストは少しかかることが想定されます。実質Javascriptと思えば簡単だと思いますが
独自のrendering engine
flutterはGoogleが開発しているSkiaと言う低レイヤrendering engineを使用しており、そこからCPUやGPUを叩くことでプラットフォーム標準と同等かそれ以上の描画性能を達成しているそうです。
Native Performance
スクロール、ナビゲーション、アイコン、フォントといったプラットフォームごとの違いをFlutterのウィジェットに組み込むことで、iOS, Android両方でネイティブパフォーマンスを実現しているらしいです。
Hot Reload
コードを更新した時のアプリへの反映がスムーズらしい。仕組みとしては、コードを動かしているDart Virtual Machine (DVM)に対してコードを挿入し、自動的に再ビルドして動かせるからスムーズらしい。実測で数百msぐらいでできることもあるみたいです。
UIが綺麗
こんな感じの美しいUIモジュールが簡単に使えるらしい。https://flutter.dev/docs/development/ui/widgets
確かに、Cupertino (iOS-style widgets)とかは、iOSのデフォルトのUIモジュールと似ていて良さげですね。
flutterで作られたアプリ
実際にflutterを用いて使われているアプリの代表例としては、
- realtor.com
- Tencentのアプリ
- The New York Times
- Square
- Google Assistant
があるそうです。
私も、The New York TimesとGoogle Assistantは使ったことがありますが、遅延も全然無くSwiftなどで書かれていると思っていました... すごい!
以上、flutterの概要についてです。
最後に、flutterの紹介動画を貼っておきます。
0 件のコメント:
コメントを投稿