Flutter チュートリアル

Flutter は、クロスプラットフォームアプリケーションを構築するための UI ツールキットであり、Google によって開発・保守されています。開発者は、単一のコードベースを使用して iOS、Android、Web、Windows、macOS、Linux 向けのネイティブコンパイルされたアプリを同時に構築できます。

Flutter は Dart プログラミング言語を使用し、ホットリロード、豊富なウィジェットライブラリ、高性能なレンダリングエンジンを備えており、開発者が美しく滑らかなネイティブ体験のアプリを迅速に構築するのに役立ちます。


このチュートリアルは誰向けですか?

このチュートリアルは、プログラミングの基礎がある開発者向けです。オブジェクト指向プログラミングの基本概念(クラス、オブジェクト、関数など)をすでに理解していれば、Flutter をすぐに使いこなせるようになります。

Dart 言語に慣れていなくても心配する必要はありません。Flutter は Dart 言語で書かれていますが、構文は JavaScript、Java、C# などの言語に似ており、学びやすいです。


このチュートリアルを学ぶ前に知っておくべきこと

このチュートリアルを学ぶ前に、変数、関数、クラス、ループなどの基本的なプログラミング概念を理解しておく必要があります。モバイルアプリ開発についてある程度知っていれば、Flutter の仕組みをより簡単に理解できます。


Flutter の特徴

Flutter がクロスプラットフォーム開発の人気の選択肢となっているのは、主に以下の特徴によるものです:

特徴説明
クロスプラットフォーム開発単一のコードベースで iOS、Android、Web、Windows、macOS、Linux アプリを同時に構築
ホットリロードコードを変更した後、アプリを再起動せずに変更をリアルタイムでプレビューでき、開発効率が非常に高い
豊富なウィジェットライブラリMaterial Design(マテリアルスタイル)と Cupertino(iOS スタイル)の 2 大ウィジェットライブラリを提供
高性能レンダリングSkia グラフィックスエンジンと自社製 Impeller レンダラーを使用し、60fps の滑らかなアニメーションを実現
expressive UI強力な宣言的 UI フレームワーク。カスタムウィジェットをサポートし、さまざまなデザイン要件を満たす
開発効率が高い単一の Dart 言語、一連の Widget コンポーネント、多数のプリセット機能

Flutter の適用シナリオ

シナリオ説明
モバイルアプリ開発iOS と Android のネイティブアプリを構築し、1 つのコードで両プラットフォームで実行
Web アプリレスポンシブ Web アプリを構築し、ブラウザにデプロイ可能
デスクトップアプリWindows、macOS、Linux のデスクトップアプリを構築
プロトタイプの迅速な検証ホットリロード機能により、迅速なイテレーションとプロトタイプ開発が非常に効率的
エンタープライズアプリ複数プラットフォームにわたるデプロイを必要とするエンタープライズ向けアプリに適している

Flutter の技術アーキテクチャ

Flutter はレイヤードアーキテクチャを採用しており、主に次の 3 つのレイヤーで構成されています:

レイヤー説明
Framework(フレームワーク層)Dart で実装された UI フレームワーク。Widget、レンダリング、アニメーションなどを含む
Engine(エンジン層)C++ で実装されたレンダリングエンジン。Skia/Impeller と Dart ランタイムを含む
Embedder(エンベッダー層)プラットフォーム固有のエンベッダー層。Flutter を各プラットフォームに埋め込む

Flutter の中心的な設計理念は「すべてが Widget」です。単純なテキストでも複雑なページレイアウトでも、すべて Widget の組み合わせで構成されています。


なぜ Flutter を選ぶのか?

比較軸FlutterReact Nativeネイティブ開発
開発言語DartJavaScript/TypeScriptSwift/Kotlin/Java
レンダリング方式自社エンジン(Skia/Impeller)ネイティブコンポーネントマッピングネイティブレンダリング
パフォーマンス高い(ネイティブに近い)中(ブリッジが必要)最高
コード再利用1 つのコードで複数プラットフォーム1 つのコードで複数プラットフォーム個別に記述が必要
学習曲線中級(Dart言語)中程度(React の知識が必要)やや高い(複数言語)

関連リンク

リソースアドレス
Flutter 公式サイトhttps://flutter.dev
Flutter 公式ドキュメントhttps://docs.flutter.dev
Flutter API リファレンスhttps://api.flutter.dev
Flutter ウィジェットカタログhttps://docs.flutter.dev/ui/widgets
その他の拡張