FlutterでAndroid/iOSアプリ開発

Dart, Flutter

今年のGoogle I/O ’18では各種AIやAndroid Pなどの内容で盛り上がっていますが、
Flutter Beta 3がリリースされたというニュースに興味があってYoutubeのセッション動画も見てみたので簡単に紹介したいと思います。

Flutterとは

Googleの開発する単一のコードから複数環境のネイティブアプリを開発するためのフレームワークです。
似たような技術にWeb技術を使用するReact Native、NativeScript、Weex、Cordovaなどがあります。
Flutterでは同じくGoogleの開発するDartという言語を使ってアプリを開発します。

DartはJavaScriptにコンパイルできる静的型付け言語で、
Web開発用の言語としてはTypeScriptが採用されることが多いと思うのですが、
ここに来てFlutterが盛り上がっているのでこれから人気が出るかもしれません。

セッションを見たり実際に触って思ったこと

  • ホットリロード/リスタートが高速なのでアプリをビルドして確認するコストが低い
    • NativeScriptを触った時は結構リビルドしないとエラーになったりシュミレータが固まったりが多発したがFlutterは比較的安定している感じ
  • IDE(VSCodeやAndroidStudio)のプラグインがかなり優秀
    • Dartのソースがちょっと特殊なので学習コストは高そうですがIDEのサポートが強力なので何とかなりそう
    • Flutter向けの機能もありリファレンスをあまり見なくても開発が進められそう
  • Firebaseとの連携が簡単
    • 公式のFirebaseプラグインが用意されている
    • 今のところCrashlytics以外は対応しているのでFirestoreやPush通知などを簡単に追加できる
  • リアクティブプログラミングによりコード量を抑えられる
    • Widget x stateの組み合わせでstateが変更されたらWidgetに伝搬させ再描画する仕組みを用いて実装する
    • こちらのセッションで詳しく解説されています

今後について

AlibabaのアプリがFlutterで作られていて間も無くリリースされるということです。
(AlibabaはWeexの開発もしているのですがこちらはどうなるのか。。)
また、Beta3なのはまだ国際化などの対応が不十分だったり今後も発展する予定なのが理由ということで商用環境にも十分使えるとFlutterのPMの方が言ってました。

まとめ

普段はWeb開発がメインでiOS/Android開発は入門程度までしか触れたことがないためその辺りとの比較はできていないのと、まだ動画やドキュメントを見てチュートリアルをやった程度なので、Flutter x Firebaseで何か作ってあらためて使い勝手などを共有できればと思います。

オススメのセッション

Dart, Flutter