Flutterとは?特徴と基本的な使い方を徹底解説

アプリ開発の勉強や新規事業などでさまざまなフレームワークが選ばれる中、Flutterというアプリ開発のフレームワークが注目されてきています。今回は、Flutterを使ったアプリ開発における環境構築からサンプルプロジェクト、アプリリリースまでの方法について初めての人でもわかりやすく解説していきます。

Flutterとは?

Flutterは、Google社製のハイブリット型のモバイルアプリ開発フレームワークです。1つフレームワークでiOSやAndroid、ウェブアプリといった複数のプラットフォームのアプリケーションを作成することができます。

Flutterでは、Google社が開発しているDartという言語で開発することができ、KotlinやSwiftのネイティブ開発言語を知らなくてもアプリの作成が可能です。加えて、以下の特徴も持ち合わせています。

  • デフォルトでマテリアルデザインが適用
  • 開発しながらUIを確認できるホットリロード
  • ネイティブ用のコードにコンパイルされるため処理が速い
  • 予め様々なWidgetが用意されているためUI開発がしやすい
Flutterの始め方について知りたい方は、以下のページで開発環境の構築手順やローカル環境の実行方法について解説しているので参考にしてみてださい。

Dart言語とは?

Flutterを使ったアプリ開発では、Dartというプログラミング言語を使用します。Dartは、2011年にGoogleが開発しJavaScriptの代替となることを目的とされました。しかし、思ったより普及することがなかったことからモバイル開発も可能にした背景があります。Flutterは、Dart言語で作られたモバイル開発のフレームワークでモバイルの機能へのアクセスを可能にしています。

Dartには様々な型がありますが、以下の型は特に使う基本的な型になります。Dartを使ったプログラムの書き方については以下の記事でも紹介しているので、ぜひ参考にしてみてください。

  • 整数型:int
  • 浮動少数型:double
  • 論理型:bool
  • 文字列型:String
  • リスト型:List
  • マップ型:Map

fvmとは?

fvmは「FVM(Flutter Version Management)」の略称で、flutterのインストールやバージョンを管理することができるツールです。fvmを通して複数のバージョンのflutterをインストール・管理することができ、プロジェクトごとにflutterバージョンを切り替えたり、チームでバージョンを揃えるのがとても容易にできるというメリットがあります。

アプリ開発のよく使うコンポーネント・機能

Flutterアプリ開発では、一覧表示の基本的なコンポーネントに加えてProviderやRiverpod、WebView、GPS、データベースといったよく使われる機能があります。それらの機能の使い方や実装方法について紹介していきます。

一覧機能を提供するList / Grid / Tableウィジェット

Listウィジェットは、Flutterでもよく使われる一覧機能を提供するコンポーネントの1つです。設定画面、タイムライン、アルバム、友達一覧などあらゆる機能で使われており、必ず覚えておいたほうが良い機能の1つです。一覧機能の実装方法などは下記の記事で解説しているので、参考にしてみてください。

Riverpodの基礎と応用

Flutterで利用できる状態管理ライブラリで、現在最も使われている状態管理ライブラリの1つです。Flutterのライブラリの中でもよく使われており人気のあるライブラリです。Dartのみでも利用することができます。アプリケーション内の状態やデータを効率よく管理し、異なるウィジェットにデータを共有することができる様になるのでコードが複雑になるのを防ぐことができます。導入や実装方法などは下記の記事で解説しているので、参考にしてみてください。

Providerパッケージの基本と応用

ProviderはRIverpodの前身となったパッケージで、Flutterの基本ウィジェットのInheritedWIdgetを使いやすくするラッパーです。ちなみに、RiverpodはProviderのアナグラムになっています。下記の記事でProviderの導入方法や使い方について解説しているので、参考にしてみてください。

WebViewの特徴と実装方法

WebViewウィジェットは、ウェブページを表示することができるコンポーネントの1つです。WebViewパッケージのパッケージはいくつか用意され、Flutter開発チームが作っているものと、オープンソース開発されているものがあります。それぞれのパッケージによって、内部的な機能やできることが変わってくるので、用途によって使い分ける必要があります。それぞれの特徴や使い方について、下記の記事で紹介しています。

GPSの使い方

GPSは、プロダクトの中でマップを表示したりユーザーの行動をトラッキングしたりする機能です。アプリ上で位置情報を取得するためのパーミッションの設定やバックグラウンドで実行する方法、導入方法、使い方について下記の記事で紹介しているので、気になる方は参考にしてみてください。

Driftデータベース

Driftはアプリのローカル環境にデータベースを構築し、データ保存や永続化をできるようにするFlutterパッケージです。ORMと呼ばれるものでデータベースの扱いを比較的簡単に行えるようにし、ローカルで管理するためAPIやDBサーバーなどのオンライン接続をしなくともオフラインでデータ管理できる様になります。SQLとDartの両方でクエリを記述できるため複雑なクエリも書くことができ、マイグレーションやトランザクション、バッチ処理、タイプセーフなコードを生成など多くの機能をサポートしています。

サンプルアプリの作り方紹介

01noteでは、Flutterのサンプルプログラムの作り方をいくつか紹介しています。カウンターアプリの作り方の初回記事では、Flutterの基礎となるStatelessWidgetやStateなどを活用して基本的な学習ができる内容になっています。

他にも、StateやListコンポーネントを活用した簡単なタスク管理アプリの作り方を紹介しています。カウンターアプリ開発で学んだ内容に加えてListコンポーネントを使ったアプリ開発の内容になっています。ぜひ参考にしてみてください。