ここで言う費用対効果は、以下の2つの側面を指しています。
- アプリケーションの開発コストの低減
- 学習コストの低さと学んでから成果を得られるまでの時間の短さ
ユーザーにとってはコストメリットが有り、開発者にとっても学習コストの低く、すぐに成果を得られやすい技術のため、冒頭の「費用対効果が高い」という話につながっています。
Flutter is 何
2018年にGoogleが世に出した、クロスプラットフォームフレームワーク。1つのコードで複数のプラットフォームで動作するアプリケーションを提供するもの。以下のプラットフォームで動作すると公式では謳っている。
- iOS
- Android
- Web(PWA)
- Windows デスクトップアプリ
- Macデスクトップアプリ
- 組み込み
すごく簡単に言うと、iPhoneアプリとAndroidアプリ、1個で作れるものです。
OSにインストールして利用するタイプのアプリケーションは、言語も動作環境も全く違います。iOSで動作するアプリを作っても、Androidでは動かない。同じ機能を持つアプリを2つ作る必要がありました。
flutterは、その辛みから解放してくれるため、2021年に私はヘッドスライディングで飛びつきました。大正解だと思っています。
Flutterはプログラミング初学者に向いている
Flutterの本質を表現したツイートがあります。本当にこのとおりだと考えています。
「やったことに対してできることがめちゃくちゃ大きい」という一文がFlutterの本質を表現しています。やったこと=実装するコードだと考えて良いです。
Flutterは「あ、こうやって書けば、いいんだ」という成功体験がとても得られやすいフレームワークです。様々なOSSを使ってきましたが、「この技術は、天下を取るかもしれない」と可能性を感じました。
2025年時点で、アーリーアダプターが一周回った程度です。これから、どんどんマジョリティが食いついてくるので、将来性も高いと言えます。
自分が作ったものが「操作できて動かせる」
プログラミングを覚えるのに、Flutterでのアプリ開発はとてもよい教材だと思います。書いたものが目に見えて、動かせるから。どんなコードを書いたらどう動くのか、どこを変えたら何が変わるのか、視覚的に見ることが出来ます。
プログラミングの学習だと、黒い画面に print("hello world")
って書いて、地味にコードを動かすより、刺激が大きいです。UIを実装するのが、プログラミングの最初の一歩として、適切なだと思います。
バックエンドのコードを書くには、インフラを初めとした周辺技術の理解も必要となります。HTTPがよくわかってない、Webサーバを立てたことがないのに、WEBアプリケーションを実装できるなフレームワークを使っても、使われているだけです。応用が効かない。
ソフトウェア開発は「カタカナ用語」とずっと付き合っていく必要があり、一語多義的で抽象的な考え方や概念を、いかに自分の言葉で噛み砕いて、比喩化して、モノにしていくか。それがプログラミングの学習において一番大きな壁だと思っていますし、乗り越えられないと例外なく挫折します。
Flutterはその挫折要素が最も少ないフレームワークであり、少なくともアプリ開発においては、間違いないです。
Flutterを学習する中で詰まるポイントをまとめて、全5回ぐらいの記事で公開する予定です。お楽しみに。