はじめに
第1章 FlutterとFirebaseを知ろう
第2章 開発環境を構築しよう
第3章 Flutterをサクッと動かしてみよう
第4章 Dartの基礎知識を学ぼう
第5章 Flutterの基礎知識を学ぼう
第6章 アプリの仕様を決めよう
第7章 Firebaseの設定をしよう
第8章 一覧画面の実装をしよう
第9章 入力画面の実装をしよう
第10章 登録機能の実装をしよう
第11章 編集機能の実装をしよう
第12章 削除機能の実装をしよう
第13章 ログイン機能の実装をしよう
第14章 共有機能を実装しよう
第15章 多言語化対応しよう
第16章 アプリのアイコンを設定しよう
第17章 スプラッシュ画面を実装しよう
第18章 アプリをリリースしよう(Android版)
第19章 【参考】アプリをリリースしよう(iOS版)
おわりに
本書を手に取っていただき、ありがとうございます。
本書では、GoogleによるオープンソースのモバイルアプリケーションフレームワークであるFlutterと、同じく、Googleが提供するFirebaseを使用した、Android・iOS上で動作するアプリを作成します。実際に「貸し借りをメモするアプリ」を作成しながら、Flutterについて学びます。
「貸し借りを記録できるメモ帳」のアプリ制作を通し、次のことが学べます。
・Flutterの開発環境の構築
・Dartの文法
・Flutterの基礎的なWidgetの使い方
・Firebaseを利用したアプリの作成
・アプリのリリース方法
Flutterに興味のある方が対象です。Flutter未経験の方や、Firebaseを利用したモバイルアプリを作成してみたい方にオススメです。
本書で記載されているコードは、すべて次のGitHubリポジトリーからダウンロードできます。タグで章ごとに項目を分けてありますので、ぜひ参考にしてください。
本書で想定している動作環境のOSは、次のとおりです。
・Windows...Windows10
・MacOS...Catalina
本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。
本書に記載されている会社名、製品名などは、一般に各社の登録商標または商標、商品名です。会社名、製品名については、本文中では©、®、™マークなどは表示していません。
本書籍は、技術系同人誌即売会「技術書典5」で頒布されたものを底本としています。
この章では、FlutterとFirebaseの概要について説明します。
Flutterは、Googleが開発したオープンソースのアプリケーションフレームワークです。
アプリケーション開発は「AndroidであればJavaやKotlin」「iOSであればObjective-CやSwift」「WebアプリであればPHP,Ruby」などのように、動作させるプラットフォーム毎に別の言語を学習する必要があり、開発コストが高くなります。
しかし、近年において、クロスプラットフォーム開発フレームワークが登場しました。これは、ひとつの言語のみで、複数のプラットフォームに対応したアプリケーションを開発できるツールです。クロスプラットフォーム開発フレームワークのひとつがFlutterです。他には、Facebookが開発したReactNativeやMicrosoftが開発したXamarinなどがあります。
マテリアルデザインに沿ったUIを簡単に設計できます。「マテリアル=物質的な」という意味があるように、マテリアルデザインとは「物理的な法則に沿ったデザイン」を指します。現実世界のルールである光や影、奥行き、重なりを取り入れたデザインとなっており、Googleが発表しているWebサイトやアプリに多く用いられています。
マテリアルデザインに沿った、Google製のような美しいアプリケーションを簡単に作成できます。
Googleによって開発されたプログラミング言語です。これは、JavaScriptの替わりとなる言語として作られました。JavaScriptやJavaと記法が似ており、どちらかの言語を使ったことがある方には、始めやすい言語です。
Flutterにはホットリロードという、アプリの実行中にコードの変更をすばやく反映させる機能があります。
アプリの実行中にコードを変更した場合、通常は再ビルドする必要があり、反映するのに数十秒から数分かかります。しかしホットリロードを使うと、コードを変更してもアプリを停止することなく反映できるため、格段にアプリの開発効率が向上します。
次の画像は、「Hello World!」から「Flutter」と文字をプログラム上で変更する例です。文字を変更してプログラムを保存すると、1秒後には、画像にあるようにアプリの表示が更新されました。通常であれば数十秒から数分かかるプログラムの反映が数秒でできるので、効率よくプログラムを作成できます。
Googleが開発しているOSにFuchsia(フクシア)というものがあります。2016年8月にGitHub上で公開され、その存在が明らかになりました。特徴としては、スマートフォン、タブレット、PCなど、幅広いデバイス上で起動させることができ、Flutterで作成したアプリを動作させることができます。2021年5月に「Nest Hub」向けに配信され、話題になりました。今後の動向に注目が集まりそうですね。
他のクロスプラットフォーム開発環境と、Flutterを比較してみます。
対応プラットフォーム | Flutter/Dart | ReactNative/JavaScript | Xamarin/.NET |
Android | ○ | ○ | ○ |
iOS | ○ | ○ | ○ |
デスクトップ(Win) | ○ | - | ○ |
デスクトップ(Mac) | ○ | - | ○ |
Web(フロントエンド) | ○ | - | ○ |
Web(バックエンド) | - | - | - |
デスクトップアプリも作成できるため、Xamarinと並んで、クロスプラットフォーム開発環境の対応数としては最多です。
Firebaseは、Googleが運営するBaaS(Backend as a service)です。BaaSとは、サーバーサイドのプログラミングが不要で、データベースや認証機能、プッシュ通知などを行ってくれるサービスです。本書では「Firestore Database」という、クエリと自動スケーリング機能を兼ね備えたリアルタイムデータベースを使用します。
Flutterで開発するための環境を構築します。インストールするものは次のとおりです。
・DartSDK(version:2.13.1)
・FlutterSDK(version:2.2.2)
・Android Studio(version:4.2.1)
・Xcode(iOSの開発を行う場合)
DartSDKの入手方法は3種類あります。
1.Homebrewなどのパッケージ管理ツールを使用してインストールする。
2.Zip等で配布されているSDKをダウンロードする。
3.Flutterに付属されているDartSDKを利用する(Flutter 1.21以降のバージョンのみ可能)。
また、FlutterSDKの入手方法は2種類あります。
1.Zip等で配布されているSDKをダウンロードする。
2.fvmなどのFlutterバージョン管理ツールを利用し、ダウンロードする。
プロジェクト毎にバージョンを変更できるfvmの利用が便利ですが、少し手順が複雑です。本書では、Zipで配布されているFlutterSDK利用した手順を紹介します。
fvmを使ってみたい方向けに、この章の最後にfvmを利用した導入手順を記載しますので、興味のある方はそちらも参考にしてください。
WindowsとMacのインストール手順が異なるので、順に説明します。
公式のFlutterのサイト1にアクセスします。Flutter SDKのダウンロードリンクをクリックし、ダウンロードします。
※執筆時点では、フォルダー名が「flutter_windows_v2.2.2-stable.zip」となっております。
ダウンロードしたZipファイルを展開し、中身のFlutterフォルダーを「C:\Users\ユーザーフォルダー」の下などに配置します。
「コントロールパネル > ユーザーアカウント > ユーザーアカウント > 環境変数の変更」をすると、次のような画面が表示されます。「Path」と書かれた行を選択した上で、編集というボタンを押します。
先ほど展開したZipフォルダーのパスを設定します。「編集」をクリックします。本書と同じ手順であれば、「C:\Users\ユーザーフォルダー\flutter\bin」となります。設定が完了したらOKをクリックし、画面を閉じます。
コマンドプロンプトを実行し、ダウンロードしたFlutterのフォルダーに移動します。本書と同じ手順であれば、次のコマンドで移動できます。
> cd C:¥Users¥ユーザーフォルダー¥flutter¥
次のコマンドを実行し、Flutterのバージョンを切り替えます。
> git checkout refs/tags/2.2.2
Windows版のFlutter SDKの準備は完了です。
公式のFlutterのサイト2にアクセスします。Flutter SDKのダウンロードリンクをクリックし、ダウンロードします。
※執筆時点ではフォルダー名が「flutter_macos_v2.2.2-stable.zip」となっております。
ホーム直下に「development」フォルダーを作成し、ダウンロードしたzipファイルを展開しましょう。
$ mkdir ~/development
$ cd ~/development
$ unzip ~/Downloads/flutter_macos_v2.2.2-stable.zip
「~.bashrc」ファイルにパスを書き込みます。※zshを使用している方は「~.zshrc」に読み替えてください。
$ vim ~/.bashrc
#ファイルの一番下に書き込む。USERと書かれた部分には実行ユーザー名が入ります。
export PATH="$PATH:/Users/${USER}/development/flutter/bin"
pathを定義したファイルを再読み込みします。※zshを使用している方は「~/.zshrc」に読み替えてください。
$ source ~/.bashrc
ターミナル上でダウンロードした、Flutterのフォルダーに移動します。本書と同じ手順であれば、次のコマンドで移動できます。
$ cd ~/development/flutter
Flutterのバージョンを切り替えます。
$ git checkout refs/tags/2.2.2
Mac版のFlutter SDKの準備は完了です。