まずは本書を手に取っていただきありがとうございます、out_of_kayaと申します。軽く自己紹介をしますと、普段の業務ではAndroidとフロントエンドの開発をメインにやっています。Flutter歴はそろそろ1年で、業務でも2020年頭くらいから触っています。最近はAndroidネイティブはほとんど触らずFlutterメインで開発しています。
本書はそんな私が実際にFlutterであつまれどうぶつの森(以降、あつ森)の便利ツールを作った際のコードを例にしたFlutter入門書です。Flutter未経験のエンジニアの方はもちろん、プログラミングもあんまりやったことないっていう初心者の方にもなるべくわかるように解説したつもりです。手を動かしながら読み進めていくことで、Flutterでの実装方法を理解できます。
本書の内容は筆者の所属する組織の公式見解では有りません。また本書はできるだけ正確を期すように努めましたが、筆者が内容を保証するものではありません。よって、本書の内容に基づいて読者の行った行為やそれに伴う不利益について筆者は一切の責任を負いません。
不正確、または誤認と思われる箇所がありましたら必要に応じて適宜改定を行いますので筆者までご連絡いただけると幸いです。
twitter: @out_of_kaya
まえがき
第1章 はじめに
第2章 Flutterの基礎
第3章 便利ツールを作ろう
付録A 知っていると便利かもしれないUIレシピ集
あとがき
FlutterというのはGoogleが開発したモバイルアプリケーションフレームワークです。と言うのがググると出てくる内容です。この説明で「なるほど完璧に理解した」ってなった人は以下は読み飛ばして大丈夫です。
読み飛ばさなかった方向けに語弊を恐れずにもっと噛み砕いて言うと「1つのコードでAndroidとiOSのアプリを同時に作ることができるもの*1」です。
すごくないですか?ワクワクしませんか?ちなみに先に言っておくと、「Flutterだけで本当にAndroidアプリもiOSアプリも出来るの?」の問いには「出来ることもあるし出来ないこともある」というのが答えになります。なんとも煮え切らない答えですねw でもこれが現実なので次の節でもう少し解説します。
その他メリットとしてよく挙げられるのにホットリロード機能があります。これは毎回1からビルドしなくても変更点だけすぐに反映してくれるという機能*2で、確かに開発してて捗るポイントです。
ちなみに実装に採用されているDartという言語はもともとJavaScriptの代替言語として生まれたらしいのですが、型があったりするのでどちらかというとJavaっぽいというのが個人的な感想です。
ザックリ言うとUIのレイアウトに関しては簡単に実装出来ます。出来ないのはOSに依存する機能(ex. カメラ、位置情報など)です。*3
なので、Webサイトで実現できているSNSのクライアントアプリだとか、メモ帳的な一般的なユーティリティアプリについてはほぼ問題なく作ることが出来ます。逆にOSに依存する機能をバリバリ使ったアプリを作りたい場合や、UIを独自デザインでこだわりたい場合、OSごとにUIや機能を分けたい場合にはあまり恩恵を受けられない可能性が高いです。
実際にアプリを作る前にはこのような観点でFlutterを採用しても良いか考えてみると良いでしょう。まだFlutterで何が出来るかわからないから判断できないよ!って人はとりあえず本書を読み進めてもらって、こういうことが出来るなら大丈夫かな?とか考えてもらえれば良いと思います。
[*1] FlutterではDartという言語さえ使えればAndroid/iOS以外にWebやデスクトップアプリも作成できます。 (戻る)
[*2] 変更内容によってはホットリロードでは反映されないこともあります。具体例を挙げると、ページが表示された状態で初期化処理を更新しても実行されるタイミングがないので反映されません。 (戻る)
[*3] 各OSのネイティブコードを実装してFlutterから呼び出す機能が用意されているのでネイティブコードが書ければ実装可能です。また既に誰かがOSSライブラリとして公開してくれている可能性もあります。 (戻る)