はじめに
第1章 Ionicって一体……?
第2章 開発環境を設定しよう
第3章 Ionicを動かしてみよう
第4章 ここからが本番!Ionicアプリケーションを作ろう
第5章 ひとまずメッセージボードを作ってみよう!
第6章 Firebaseでユーザー認証しよう
第7章 Firebaseでデータを永続化しよう
第8章 メッセージボードの機能を改善しよう!
第9章 アプリケーションついに完成
あとがき
著者紹介
この本を手に取っていただきまして、本当にありがとうございます。本書は、Ionic(アイオニック)とFirebaseを組み合わせて、簡単なアプリケーションを作ってみよう!という入門書です。
まず掲示板のようなアプリケーションを作り、それを少しずつ拡張して、最終的にログイン認証を可能にしてデータベースへの読み書きを行います。本書を順番に読み進めれば、いつのまにかアプリケーションの完成まで体験できる内容になっています。
JavaScriptはあまりわからないけど、アプリケーションの開発をちょっとやってみたいデザイナーやHTMLコーダーの方や、一度何かを作ってみた方が技術の雰囲気を掴みやすい、という方にもお勧めです。その他、IonicやFirebaseを使ってみたいけど、まとまった情報がなくていまいちやる気になれなかった……という方にも適しています。
なんだか難しそうと思ったあなた、心配はいりません!おそらく筆者よりこれを読んでいただいている皆様の方が100倍賢いです!筆者にできたのですから、絶対にできます。できなかったら筆者の責任です!楽しんでやっていきましょう。
・HTML/CSSは分かる
・JavaScriptの基本的な構文は一応分かる(ES2015以降の書き方が分かればなおよい)
・ターミナルの基本的な操作ができる(簡単な説明をその都度行います)
本書は、原則としてMacで動作確認することを前提としており、最終的にiOSシミュレーターと、Webへのデプロイでアプリケーションの完成としています。
つまり、Windows環境の場合はiOSシミュレーターが起動できないので、Webへのデプロイのみとなることをご了承ください。
・OS: Mac OS 10.14.1 (macOS Mojave)
・node: v10.14.1
・ionic CLI: 4.5.0
・Ionic Framework: @ionic/angular 4.0.0-beta.17
・cordova: 8.1.2
・Xcode: Xcode 10.1 Build version 10B61
・npm: 6.4.1
・Google Chrome最新版
本書に関する情報はすべて次のURLで公開します。
・https://sinack.com/ird_ionic/
本書に記載された内容は、情報の提供のみを目的としています。したがって、本書を用いた開発、製作、運用は、必ずご自身の責任と判断によって行ってください。これらの情報による開発、製作、運用の結果について、著者はいかなる責任も負いません。
本書に記載されている会社名、製品名などは、一般に各社の登録商標または商標、商品名です。会社名、製品名については、本文中では©、®、™マークなどは表示していません。
本書籍は、技術系同人誌即売会「技術書典5」で頒布されたものを底本としています。
この本のタイトルにもなっていますので、読者の方はもしかしたらIonicをすでに知っているかもしれません。しかし、入門本というのはその題材の説明からはじめるのが常ということで、Ionicとそれに関わる周辺技術について簡単に説明します。
Ionic Framework(以降、Ionic)は、HTML5やCSS、JavaScriptを使用して、モバイルアプリケーションやデスクトップアプリケーションを開発するためのUIツールキットです。その作法にしたがってHTMLやJavaScriptを記述することで、シングルページアプリケーションといわれるWebアプリケーションを開発することができます。
そして、作成したWebアプリケーションはCordovaやCapatitor(このあと説明しますよ!)という仕組みを使うことで、iOSやAndroid用のアプリケーションとしてストアで配信することも可能です!
Ionicで用意されているUIコンポーネント(ボタンなどの部品のことです)はとても美しく、デザインは苦手だなあ……という方でも、手軽に見栄えのいいデザインを実現することができます。また、ネイティブアプリケーションのような表現が簡単にできることも、Ionicの特徴と言えるでしょう。
本書執筆時(2018年12月)に正式版としてリリースされているIonicはバージョン3系(以降、Ionic3とします)です。Ionic3を含め、これまでのIonicはAngularをベースとしたハイブリッドアプリケーション開発用のフレームワークでした。
本書で扱うのは、2019年に正式リリースを予定しているIonicの新しいバージョンである、Ionicバージョン4系(以降、Ionic4とします)です。Ionic4では、Angular以外にもVue.jsやReactといったフレームワークを使用して開発ができるようになるようです。「なるようです」と書いたのは、現在はまだAngular以外で開発を行うのは、辛く厳しい道を歩むことが必要な状況だからです。
そういった理由もあり、本書ではすでに環境が整備されているAngularを利用して、Ionicアプリケーションの開発を進めていきます。
Cordova(コルドバ)とは、正式にはApache Cordovaという名称のモバイルアプリケーション開発用のフレームワークです。
Ionic開発における役割は、Ionicで作られたWebアプリケーションをiOSやAndroid用に変換したり、iPhoneやAndroidといった実際の端末にしかないカメラの機能などを、アプリから利用できるようにすることです。Ionicでは、そのようなCordovaプラグインとの連係機能も標準で用意されています。
そしてCapacitor(キャパシター)は、Ionicを開発しているIonic Teamが作った、新しいHTML5アプリプラットフォームです。HTML5ベースで作られたアプリケーションを、iOS/AndroidのモバイルアプリケーションやPWA(Progressive Web Apps)、Electron(デスクトップアプリケーション)に変換するためのものです。Cordovaへの後方互換性もあり、Cordovaプラグインも全て使用できるようです。現在はベータ版となっています。
本書では、Cordovaを利用したアプリケーションのビルド方法を説明します。
通常、Webアプリケーションとモバイルアプリケーションを別々に開発すると、次のような知識がそれぞれ必要です。
・Webアプリケーション開発
─HTML
─CSS
─JavaScript
・iOSアプリケーション開発
─Objectibe-C / Swift
・Androidアプリケーション開発
─Java / Kotlin
ひとつのアプリケーションを作るために、これらを全て習得するのはかなり大変です。そこでIonicとCordova、Capacitorを使用することで、Web開発の技術を使用してモバイルアプリケーションも同時に開発することができます。
この章のはじめに記述したように、本書ではAngular(アンギュラー)を利用してIonic開発を行います。これからIonicを学ぶ前に、Angularという存在が一体何かを認識しておくとIonicへの理解が進みやすいので、概要だけ少し説明します。
Angularは、Googleとコミュニティーによって開発されている、JavaScriptで作られたフルスタックなフロントエンドWebアプリケーション用フレームワークです。
何だかよく分からない言葉が出てきてしまいましたが、「フルスタックなフロントエンドWebアプリケーション用フレームワーク」というのは、【フロントエンドWebアプリケーションを開発するのに必要な機能がひととおり揃っている】という意味です。
つまりAngularだけで、フロントエンドWebアプリケーションが必要とする大抵の機能を実装することができます。そして重要なのが、さきほどJavaScriptで作られたと書きましたが、もう少し詳しく書くと、AngularはJavaScriptを拡張した言語であるTypeScript(後述します)で作られています。つまり、IonicでAngularを使って開発を行う場合も、TypeScriptを使用して開発することになります。
HTMLやCSS、JavaScriptを使って作れる!っていうからやってみようと思ったのに、さっそく知らない技術ばかりで不安になってきたぞ!という気持ちの皆様、ご安心ください。TypeScriptはあなたの味方です。TypeScript特有の構文などは都度説明していきますので、ここではTypeScriptというのが一体何者で、どんな特徴があるのかを説明します。
TypeScriptは、Microsoftとコミュニティーによって開発されている、JavaScriptのスーパーセットといわれる言語です。スーパーセットというのは、JavaScriptの機能を全て含んでいる、という意味です。構文などもそこまで大きな違いはありません。TypeScriptの全ての機能を使いこなすのは中々大変ですが、本書で扱うような基本的な機能であれば、JavaScriptがある理解できていればすぐに慣れます。しかもTypeScriptのほうが後から作られている言語ですから、間違いなく便利です。むしろ筆者は、もうJavaScriptは全てTypeScriptで書きたいという気持ちです。
TypeScript最大の特徴は、変数などのデータ型を前もって決めておける「静的型付け」機能です。
JavaScript自体にも型という概念はありますが、厳密に変数などに型を指定することはできません。文字列を格納するために用意した変数strに、数値を入れることもできてしまいますよね。
TypeScriptでは変数strはstring型と指定することで、この変数strにはstring型以外のものは格納できなくなります。これが静的型付けという機能です。そして、TypeScriptはコンパイラによって最終的にJavaScriptのコードへ変換されます。指定した型以外のデータを入れようとした場合には、この変換時にエラーを発生させて教えてくれる(リスト1.1)というわけです。
// JavaScript
let str = "string以外も入っちゃう…";
let str = 100; // ほら…数字なのに…
// TypeScript
// 変数名の後に【: 型名】と書いてあげると、型に合ってない場合エラーが発生します
let str: string = "stringしか入らない!"; // OK
let str: string = 100; // NG
他にもたくさんの便利な機能があるのですが、ここでまとめて説明すると本書がTypeScriptの本になってしまうので、必要なときに説明していきます。
前章でIonicとその周辺技術についてざっくりと雰囲気を感じたところで、本章ではさっそくIonicを使うための環境を整えていきましょう!
昨今、フロントエンド開発を行うには、何かにつけてNode.jsが必要です。
Node.jsというのは、サーバーサイドでJavaScriptを実行する環境です。そしてNode.jsには、npm*1というパッケージ管理ツールがあります。npmでは、Node.js環境で動作する便利なパッケージがたくさん公開されていて、本書で利用するパッケージもnpmからインストールすることになります。難しいことは考えず、まずはNode.jsをインストールしましょう。
[*1] npmはNode Package Managerの略です
もうすでにNode.jsはインストールしてあるよ!という方はここは飛ばして下さい。
あれ…前にインストールしたっけなあ……忘れたな……という方は、ターミナル(Windowsの場合はコマンドプロンプトやPowerShell)を開いてください。そして次のように入力してエンターキーを押してみて下さい。(ちなみに最初の$マークは入力しなくて大丈夫です!Windowsだと>マークになっています。)
$ node -v
エンターキーを押した結果、
v10.14.1
のようなバージョン番号が表示されれば、インストールが完了しています。
-bash: node: command not found
のような表示になった場合は、インストールされていないということです。インストールしましょう!
実は、Node.jsのインストールにはさまざまな方法があるのですが、ここでは一番分かりやすい公式サイトからのインストール方法を説明します。
まずはNode.jsの公式サイト*2を開いてみましょう。ダウンロードボタンがふたつあるので、LTSと付いているバージョンをダウンロードします。(図2.1)ちなみに画像では10.14.1 LTSとかかれているほうです。
リンクをクリックすると、インストーラーがダウンロードできます。これを開いてインストールしましょう。インストール手順は特に難しいところはないので、そのまま次へ次へと進んで下さい。インストールが完了したら、ひとつ前の項目で説明したコマンドをターミナルで入力して、バージョン番号が表示されることを確認してください。