Flutter

1 つのコードで iOS / Android 両対応のアプリを作れる Google 製フレームワーク

モバイルフレームワーク
Flutter」の技術書を見る →

Flutter とは

Flutter (フラッター) は、Google が開発するアプリ開発フレームワークだ。1 つのコードベースから iOS・Android の両方に対応するアプリを作れる「クロスプラットフォーム」開発を実現する。Dart という言語で記述し、Web やデスクトップ向けの出力にも対応する。見た目と動作を細かく制御できる点が特徴になる。

クロスプラットフォームの価値

観点個別開発Flutter
コードiOSAndroid で別々1 つを共有
開発コスト二重になりがち抑えやすい
一貫性ずれが生じやすい揃えやすい

iOS と Android を別々に開発すると、人手もコードも二重になる。Flutter は 1 つのコードで両対応できるため、開発・保守の負担を減らせる。

描画の仕組み

Flutter は各 OS の標準 UI 部品を呼び出すのではなく、自前の描画エンジンで画面そのものを描く。この描画エンジンは Impeller と呼ばれ、公式ドキュメントは 3.27 のリリース以降これを既定としている (2026 年 8 月時点)。Impeller は描画に使うシェーダをビルド時にコンパイルしておく方針を採るため、実行中に初めて通る演出でシェーダの生成待ちが発生して一瞬引っかかる、という従来型の症状を避けやすい。どの端末でも同じ見た目を出せる利点も、この自前描画から来ている。

裏返しの制約もある。OS 側が標準部品の外観や作法を更新しても自動では追随せず、文字入力やアクセシビリティのように OS 標準部品が担ってきた領域は、フレームワーク側の実装品質に依存する。見た目を握れることと、OS の流儀からずれ得ることは同じ性質の表と裏だ。

採用時の注意点

クロスプラットフォームは万能ではない。各 OS 固有の最新機能への対応は、ネイティブ開発より遅れることがある。また、記述言語である Dart は採用の場が Flutter 周辺に集中しているため、他の言語で積み上げたライブラリや設計の資産をそのまま持ち込みにくい。高度に OS 依存する機能や、極限の性能が求められるアプリでは、ネイティブ開発 (Swift / Kotlin) が適することもある。「両対応の効率」と「個別最適化」のどちらを優先するかで選択が変わる。

判断の目安になるのは、画面の作り込みをどこまで自分の手で握りたいかだ。独自のデザインを全画面で貫き、端末をまたいで同一の見た目を保証したい場合は自前描画が味方になる。逆に OS 標準の見た目に馴染ませたい場合や、公開直後の OS 機能をすぐ使いたい場合は、ネイティブ寄りの選択が素直になる。

体系的に学ぶなら関連書籍が手がかりになる。

この記事は役に立ちましたか?

関連用語

関連する記事