目次

はじめに

この本を通して学べること
対象読者
サンプルプログラムについて
免責事項
表記関係について
底本について

第1章 FlutterとFirebaseを知ろう

1.1 Flutterの概要
1.2 Flutterの特徴
1.3 Firebase

第2章 開発環境を構築しよう

2.1 Flutter SDKのインストール
2.2 Android Studioのインストール
2.3 Flutterプラグインの追加

第3章 Flutterをサクッと動かしてみよう

3.1 Flutterの始め方
3.2 Android Studio 機能解説
3.3 Flutterを実行しよう

第4章 Flutterの基礎知識を学ぼう

4.1 Flutterアプリの構造について
4.2 Stateless?Stateful?
4.3 プライベート変数について
4.4 パッケージ

第5章 アプリの仕様を決めよう

5.1 アプリの仕様
5.2 プロジェクトの作成

第6章 Firebaseの設定をしよう

6.1 アカウント取得
6.2 FlutterアプリとFirebaseの紐付け
6.3 データーベースの作成

第7章 一覧画面の実装をしよう

7.1 pubspec.yamlの変更
7.2 リスト作成
7.3 新規ボタン追加
7.4 編集ボタン追加

第8章 入力画面の実装をしよう

8.1 入力画面の作成
8.2 一覧画面から入力画面への画面遷移
8.3 ラジオボタンの有効化
8.4 日付選択画面作成

第9章 登録機能の実装をしよう

9.1 登録機能作成
9.2 入力チェック機能

第10章 編集機能の実装をしよう

10.1 編集機能の作成

第11章 削除機能の実装をしよう

11.1 削除機能の作成

第12章 ログイン機能の実装をしよう

12.1 ログイン機能の作成
12.2 Cloud Firestoreとログイン機能を組み合わせよう

第13章 共有機能を実装しよう

13.1 プラグインを追加する
13.2 共有機能の作成

第14章 多言語化対応しよう

14.1 多言語化プラグインのインストール
14.2 生成ファイルの確認
14.3 多言語化対応の設定
14.4 言語ファイルの準備
14.5 言語ファイルの反映

第15章 アプリのアイコンを設定しよう

15.1 プラグインを追加する
15.2 アプリのアイコンを配置する
15.3 アイコンの生成

第16章 スプラッシュ画面を実装しよう

16.1 プラグインを追加する
16.2 画像の保存
16.3 画像表示設定
16.4 スプラッシュ画面表示の解説

第17章 アプリをリリースしよう(Android版)

17.1 jksファイルの作成
17.2 キーストアの登録
17.3 サインイン情報の追記
17.4 リリースAPKの作成
17.5 APKの動作確認
17.6 Google Play Storeへの登録

第18章 アプリをリリースしよう(iOS版)※参考

18.1 Apple Developer Programへの登録
18.2 iTunes Connectにアプリを登録
18.3 Xcodeプロジェクトの設定を確認
18.4 ビルドアーカイブの作成

おわりに

感想

はじめに

 本書をお手に取って頂きありがとうございます。

 本書では、GoogleによるオープンソースのモバイルアプリケーションフレームワークであるFlutterと、同じくGoogleが提供するFirebaseを使用し、AndroidとiOS上で動作するアプリを作成します。実際に「貸し借りをメモするアプリ」を作成しながら、Flutterで必要となることを学びます。

この本を通して学べること

 ・Flutterの環境構築

 ・Flutterを用いたAndroid、iOSアプリ開発

 ・FirebaseとFlutterの連携

 ・画面遷移などのFlutterの基礎的な知識

対象読者

 ・Flutterが気になる方

 ・AndroidやiOSアプリを開発してみたい方

 ・Firebaseを使ったアプリを開発してみたい方

サンプルプログラムについて

 本書で記載されているコードはすべて次のGitHubリポジトリからダウンロードすることができます。タグで章ごとに項目を分けてありますので、ぜひ参考にしてください。

 https://github.com/chasibu/kasikari_memo

免責事項

 本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。

表記関係について

 本書に記載されている会社名、製品名などは、一般に各社の登録商標または商標、商品名です。会社名、製品名については、本文中では©、®、™マークなどは表示していません。

底本について

 本書籍は、技術系同人誌即売会「技術書典5」で頒布されたものを底本としています。

第1章 FlutterとFirebaseを知ろう

1.1 Flutterの概要

 Flutterは、Googleが開発したオープンソースのモバイルアプリケーションフレームワークです。

 モバイルアプリの開発はこれまで、「AndroidであればJavaやKotlin」「iOSであればObjective-CやSwift」で開発する必要がありました。AndroidとiOSのアプリをリリースする場合にはそれぞれ別の言語を学習しないといけないため、開発コストが非常に高くなります。

 しかし昨今、クロスプラットフォーム開発フレームワークという、ひとつの言語でAndroidとiOSで動作するアプリケーションを開発できるツールが登場しています。たとえば、Facebookが開発したReactNativeやMicrosoftが開発したXamarinがこれにあたります。

 2017年5月にGoogleが発表したクロスプラットフォーム開発フレームワーク、それがFlutterです。

1.2 Flutterの特徴

1.2.1 簡単なUI設計

 マテリアルデザインに沿ったUIを簡単に設計できます。「マテリアル=物質的な」という意味があるように、マテリアルデザインとは「物理的な法則に沿ったデザイン」を指します。現実世界のルールである光や影、奥行き、重なりを取り入れたデザインとなっており、Googleが発表しているWebサイトやアプリに多く用いられています。

 これを簡単に設計できるため、UIにあまり工数を掛けずとも、Google製のような美しいアプリケーションを簡単に作成することができます。

1.2.2 開発言語 Dart

 Googleによって開発されたプログラミング言語です。これはJavaScriptの替わりとなる言語として作られました。JavaScriptやJavaと記法が似ており、どちらかの言語を使ったことがある方には始めやすい言語でしょう。

1.2.3 ホットリロード対応

 Flutterにはホットリロードという、アプリの実行中にコードの変更をすばやく反映させる機能があります。

 アプリの実行中にコードを変更した場合、通常は再ビルドする必要があり、それを反映するためには数十秒から数分かかります。しかしホットリロードを使うと、コードを変更してもアプリを停止することなく動作に反映できるため、格段にアプリの開発効率が向上します。

 次の画像は、「Hello World!」から「Flutter」と文字をプログラム上で変更する例です。文字を変更してプログラムを保存すると、1秒後には画像にあるようにアプリの表示が更新されました。

 通常であれば数十秒から数分かかるプログラムの更新がすぐできるので、非常に効率よくプログラムを作成できるのが伝わると思います。

図1.1: ホットリロード(文字変更)

FuchsiaとFlutter

 Googleの開発しているOSにFuchsia(フクシア)というものがあります。2016年8月にGitHub上に公開されその存在が明らかになりました。特徴としては、スマートフォン、タブレット、PCなど幅広いデバイス上で起動させることができ、また、Flutterで作成したアプリを動作させることができます。FuchsiaがAndroidの後続として世界に広まれば、Flutterひとつでモバイルアプリ、PC用アプリが開発できる世の中になるかもしれませんね。

図1.2: Flutterロゴ

1.2.4 ReactNativeやXamarinとの比較

 他のクロスプラットフォーム開発環境とFlutterを比較してみます。

表1.1: 他のマルチクロスプラットフォームとの比較
対応プラットフォーム Flutter/Dart ReactNative/JavaScript Xamarin/.NET
Android
iOS
デスクトップ(Win) - -
デスクトップ(Mac) - -
Web(フロントエンド) - -
Web(バックエンド) - - -

 デスクトップアプリが作れるXamarinに比べると対応プラットフォーム数は劣りますが、ReactNativeと対応プラットフォーム数は同じです。

1.3 Firebase

 FirebaseはGoogleが運営するBaaSです。

 BaaS(backend as a service)とは、サーバーサイドのプログラミングが不要で、データーベースや認証機能、プッシュ通知などを行ってくれるサービスです。

 本書では「Cloud Firestore」(※2018年11月現在、β版のみ提供)という、クエリと自動スケーリング機能を兼ね備えたリアルタイムデーターベースを使用します。

第2章 開発環境を構築しよう

 それでは、Flutterで開発するための環境を構築します。

 インストールするものは次のとおりです。

 ・Flutter SDK

 ・Android Studio

 ・Xcode((Macのみ)iOSの開発を行う場合)

 基本的に開発環境および開発はWindows 10をベースに行います。

 ここでは執筆現在(2018/12/05)のインストール方法について紹介します。本書の手順でうまくいかない場合など最新のインストール方法については公式サイトをご覧ください。

 公式サイト: https://flutter.io/get-started/install/

2.1 Flutter SDKのインストール

 Flutter SDKのインストールを行います。WindowsとMacのインストールが手順が異なるので、順に説明します。

2.1.1 Windows版

 1.公式のFlutterのサイト(https://flutter.io/docs/get-started/install/windows)にアクセスします。

 Flutter SDKのダウンロードリンクをクリックし、ダウンロードします。※執筆時点ではフォルダー名が「flutter_windows_v1.0.0-stable.zip」となっています。

図2.1: ダウンロードリンク

 2.ダウンロードしたZipファイルを展開し、中身のFlutterフォルダーを「C:\Users\ユーザーフォルダー」の下などに配置します。

図2.2: フォルダー配置
試し読みはここまでです。
この続きは、製品版でお楽しみください。