l

o

a

d

i

n

g

.

.

.

短期にFlutterを学習するブログ STEP0:導入・全体像把握

2026/02/19

Flutter プログラミング 学習

t f B! P L
eyecatch とある案件でFlutterを使う必要が出てきたので、短期間でFlutterを使いこなせるように事前学習をしておこうと思います。 ついでにブログで学習内容を書いておいて、自分への備忘録としてしまい、ついでのブログのアクセス数も伸ばしてしまおうという、一度に三度の事を実現してしまおうという、欲張り精神満載の取り組みである。 これまで、Webサービスは、ほぼ「Vanilla(全て自前でプログラミング)」をモットーとして、ガリガリとネイティブ、JSとPHPを書いたり、サーバーでは、自分でC言語でモジュールを作ったりする、変態エンジニアっぷりを発揮していたんだが、ここにきて、ここ数年前から流行っているFlutterを使うことになろうとは・・・ そもそも、何故Flutterなのかというと、この案件を依頼してきた会社の社長さんとお友達で、その会社でいつもFlutterを使ってサービス構築を行っているため、その流れに乗って欲しいというオーダーである。 値段が安いか高いかは問題ではない、エンジニアたるもの、ベースが決まっているなら、あとは中身を作り込むだけだ。 言語や環境に左右されるのは本望ではないし、真のエンジニアとは言えない・・・と偉そうに考えてみた。 ということで、Flutterの学習、始めますよ。

Flutterの各種リンク

公式サイト

https://flutter.dev/

公式ドキュメント(英語)

https://docs.flutter.dev/

日本語翻訳ドキュメント

https://flutter.ctrnost.com/

Dart Pad

https://dartpad.dev/

Download (archive)

https://docs.flutter.dev/install/archive

このシリーズのゴール

Flutterを「なんとなく知っている」状態にしない事を目的にして、できるなら自分で使いこなして、他の案件でも選択肢として使える状態にする。 そして、次の判断ができる状態を目指す。 ・自分の案件で使うべきか ・チームに導入できるか ・あえて使わない判断が妥当か ゴールはとりあえず、以下のように設定しておく。 ・Flutterで中規模業務アプリを設計・実装できる ・技術選定の説明を言語化できる

Flutterってどんなモノ?

そもそも、Flutterってなんなのよ?という人のために、少し事前に説明をしておく。 Google製のUIフレームワークで、Dart言語を使用している今流行りのプラットフォーム。 単一コードベースで以下をカバーしている。
・iOS ・Android ・Web ・Desktop
最大の特徴は、UIをネイティブ描画するという点で、HTML / CSS に依存しないというのが斬新的。 よくある誤解としては、
・「Web技術の延長」ではない ・「React Nativeの代替」でもない

Webエンジニア視点での立ち位置

React / Vueとの比較で見た場合、FlutterはSPAではないということを理解しておきましょう。 レンダリング思想が根本的に違うということ。 なので、CSS地獄が存在しないし、ブラウザ差異・OS差異に悩まされにくいのが特徴です。 その代わり、HTML的な自由度はないし、SEO重視用途には向かないので、社内システムや、特定のツールとしての利用が向いているフレームワークだと思う。

Flutterが向いているサービス

とりあえず、ミスリードにならないように、以下のようなサービス(システム)開発を目的にFlutterを利用するのがいいと思われる。
・業務支援ツール ・社内向け管理画面 ・スタートアップ初期プロダクト ・UI品質を一定以上担保したいSaaS

逆に向いていないケース

・コンテンツSEOが主軸のWebメディア ・Webのみ・超軽量が最優先のサービス

Flutterのメリット

クロスプラットフォームの完成度が高い

iOS / Android / Web / Desktop を単一コードベースで実装できるので、アウトプットの幅が多いのと、運用管理が単一管理することができるので、少人数開発での運用も可能にできる。 「とりあえずWeb+スマホ」を最短で出せるので、モックアップを使うのにも向いている。 PoC(Proof of Concept/プルーフ・オブ・コンセプト) として、本番への移行コストが低いのも非常に魅力的である。

UIの再現性が高く、崩れにくい

CSS差異・ブラウザ差異に悩まされないらしいが、これは今後学習をしていくことで、何故そうなのかが明確にわかるだろう。 デザイナー指定のUIをそのまま実装しやすいのも、非常に魅力的。 OSアップデートの影響を受けにくいというのは、スマホなどのコンテンツにとっては、非常にありがたい限りだ。

パフォーマンスが安定している

ネイティブ描画のため体感速度が速いらしい。 SPAで起きがちな描画遅延が少ないし、業務アプリで「遅い」と言われにくい。 これらは、体感値ということなので、実際に自分でコーディングをしてみて確かめたいし、VanillaのWebページとの比較も行ってみたいとも思った。

UIとロジックを一体で管理できる

Widget単位で責務が明確なので、プログラミングデザインパターンが構築しやすい。 コンポーネント分割が自然に設計へつながるので、明確な設計ができる(らしい) フロントのスパゲッティ化を防ぎやすいが、これも実際にコーディングをやって1サービスぐらいを構築してから判断してみることにする。

バックエンドとの責務分離がきれい

API駆動設計と相性が良いとのこと。 BFF(Backend for Frontend)的な考え方をシンプルに実現できる。 既存のPHPやNode APIをそのまま活かせるというのは、非常に助かる。

採用・教育コストの現実解

Webエンジニアが比較的早く戦力化できるのは、仕事で使う場合に非常に助かる。 「React疲れ」した人材の受け皿になるので、設計に疲れたエンジニアは、Flutterを使うべきとも思った。 学習範囲が限定されているので、今回のブログ学習に向いていると考えたワケだ。

このステップのあとがき

今回、Flutterを学習するのは、流行っているからという理由ではないが、流行っているからという理由で、プログラミング学習をするのは、個人的に嫌いではない。 何故なら、そのプログラムができると、フリーエンジニアとしての仕事の幅が増えるし、何より新しい領域のエンジニアと話の接点ができる。 そして、流行りに乗っかるというのは、個人的なモチベーションアップにもつながる。 というわけで、今Flutter学習を開始しようとブログを書き始めた自分としては、まあまあワクワクしている状態なんですね。

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ