
どうも、まつまるです。モバイルアプリを開発したいけど、どのツールを使おうか悩んでいる方に向けてFlutterについて解説していきます。ちなみに僕はFlutterでアプリ開発中です。
Flutterとは
まずは公式サイトから引用します。
Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.
訳すとFlutterはGoogleが開発したモバイル、ウェブ、デスクトップのアプリケーションを美しく作るためのツールで、プラットフォームごとにコードを変更しなくても良い!みたいです。
さらに、オープンソースなツールなので、誰でも無料で始めることができます。
しかし、Flutterのリリース日は2017年なので、まだまだ立ち上がったばかりです。
ただ、アメリカや中国は大手がflutterを導入しています。Googleはもちろん、中国ではアリババやテンセントなどが導入しています。
アリババ?テンセント?なにその企業?聞いたことないよって方がいるかも知れません。アリババは中国版Amazon、テンセントは中国版Facebookみたいな感じです。
2020年世界時価総額ランキングを見るとアリババが8位、テンセントが9位、時価総額日本一のトヨタは世界41位です。日本がんばれ。
つまり、世界のトップがFlutterを導入しているんです。なのですぐに廃れることはないと考えても良さそうです。

中国でも使われているため、中国語の文献をたまに見ます。中国語はまじでわけ分からんので、英語が優しいと感じる謎の現象が起きます。笑
2017年にリリースされたばかり。
中国でも流行ってる。
Flutterの言語は?

Flutterの言語はDartです。DartはGoogleが2011年にリリースしためっちゃマイナーな言語です。Dartについては他に譲ります。
最近自分の中でWeb開発はReactJS、モバイルアプリ開発はFlutterが良いという結論がでました。 Flutterでの実装はDart言語で行います。 基本的なモダン文法をサポートしているため、他言語から入ってくる人には入りやすい...
要約するとDartは、速い、読みやすい、静的&動的言語の機能を兼ね備えているなど、Flutterに最適だということです。
Flutterの特徴
ここでは個人開発(少人数)に重きを置いて考えてみます。まずはメリットです。
マルチプラットフォームに対応
アプリのビルドが早い
豊富なデザイン
マルチプラットフォームに対応なのでios,androidのアプリ開発をflutter1つで管理できます。アプリの内容が同じでもiosなら言語はSwiftで、androidなら言語はKotlinと分けて個人開発することは現実的ではないでしょう。
また、flutterはホットリロードと言って、コードの中身を変更してすぐにアプリに反映することができます。PDCAが早く回せるのでgood。
そして、Googleが推奨しているマテリアルデザインがいっぱい使えます。例えばios風のウィジェットもあるしね。
次はデメリットです。
日本語文献が少ない
ネィティブコードを書く必要がある
日本語文献はまじで少ないです。英語が読めないとエラー対処できないと思っていた方が良いです。ポジティブに捉えれば英語の勉強になります。笑
ただ、今はGoogle翻訳とかあるので、そこまで大きな問題ではないと思います。
ネィティブコードについては若干めんどうですね。例えば、アプリ内でローカルにアクセスしようとすると出てくるポップアップはios,androidで別々のコードが必要になってきます。

Flutterの競合
マルチプラットフォーム対応はFlutterだけではありません。Flutterとよく比較されるのがReact Nativeです。
分かりやすいサイトがあるので詳細は譲ります。
近年、Flutter や React Native といった新しいクロスプラットフォームフレームワークが登場してきました。 今、クロスプラットフォーム開発をするときに、どのフレームワークを選定すれば良いのか迷っている人のために、各フ...
React NativeはFacebookが開発しており、Reactというwebフロントエンドのフレームワークがベースです。
実際にReactが使われているサービスは
Facebook
Instagram
Netflix
twitter
Yahoo!ニュース
などなど、たくさんあります。
Web系に多くの実績があるので、Reactに慣れている人はReact Nativeの方が学習コストが低くて良さそうですね。

個人アプリ開発で、ios,androidどっちも対応したいならFlutterかReact Native良さそう。Reactに慣れているならReact Nativeで、特にこだわりなければFlutterかな。
まとめ
以上より、僕はFlutterを使ってアプリ開発中です。日本ではまだまだ盛り上がっていないので少しでも興味を持ってもらえるとうれしいです。
参考になれば幸いです。