書評:HTML5とApache Cordovaで始めるハイブリッドアプリ開発

以前、教育コンテンツとハイブリッドアプリという記事を書きましたが…
そこでも紹介した Apache Cordova という開発プラットフォームについての技術書

HTML5とApache Cordovaで始めるハイブリッドアプリ開発

が発売されました。

本記事は、WINGSプロジェクトの書籍レビュアーに応募し、献本いただいた書籍を読んで書かせていただいております。(ありがとうございます!)

目次

公式ページから転載させていただきました。

第1章 Apache Cordovaで本格スマホアプリに挑戦しよう
1.1 対象読者
1.2 ハイブリッドアプリって何?
1.3 ハイブリッドアプリの使いどころと落とし穴
1.4 ネイティブアプリ VS ハイブリッドアプリ
1.5 Cordovaの歴史
1.6 サポートしているOS
1.7 開発するOSの選択
1.8 Cordovaが利用可能なサービス・フレームワーク
1.9 Apache CordovaをサポートしているIDE
1.10 まとめ

第2章 Apache Cordovaでスマホアプリ開発を始める前の環境設定
2.1 Cordova開発環境の概要
2.2 コマンドでの開発環境の構築
2.3 最初のアプリの作成
2.4 Visual Studio 2017を使ったApache Cordovaでの開発
2.5 まとめ

第3章 カメラプラグインを使って、Apache Cordovaのサンプルアプリを作ってみよう
3.1 サンプルアプリを作ってみる
3.2 プラグインの追加
3.3 Webリソースの概要
3.4 HTMLファイル作成時の注意点
3.5 プラグインAPIの組み込み
3.6 サンプルアプリの実行
3.7 まとめ

第4章 基本のプラグインを使ってハイブリッドアプリを作ってみよう
4.1 Apache Cordovaで使われるWebフレームワークについて
4.2 デバイス情報を取得する
4.3 端末のネットワーク状況を取得する
4.4 ダイアログを表示する
4.5 ログを表示する
4.6 まとめ

第5章 デバイスのファイルにアクセスするプラグインを使おう
5.1 モダンブラウザでのデータの保存方法
5.2 HTML5におけるFileSystem APIの現状とCordovaによるFileSystemの実現
5.3 Fileプラグインを使う
5.4 ファイルの一覧を取得する
5.5 ファイルの内容を読む
5.6 まとめ

第6章 ファイルを操作するためのプラグインで、テキストや画像をアプリ内に保存する
6.1 サンプルアプリの概要
6.2 cdv leプロトコルについて
6.3 テキストファイルの保存と削除
6.4 画像ファイルの保存と表示
6.5 まとめ

第7章 サーバへのファイルアップロード、ダウンロードを便利にするプラグインを使う
7.1 ファイルのダウンロードとアップロードプラグイン
7.2 まとめ

第8章 オーディオファイルの再生を便利にするプラグインを使う
8.1 オーディオファイルを扱う方法
8.2 オーディオファイルを再生する流れ
8.3 音楽プレイヤーを作成する
8.4 まとめ

第9章 マイクやカメラを使って音声・写真・ビデオデータを取得するプラグインを使う
9.1 Mediaプラグインを使ったマイクからの音声を録音する
9.2 マイク・カメラの音声、映像をキャプチャーするプラグイン(1)
9.3 マイク・カメラの音声、映像をキャプチャーするプラグイン(2)
9.4 まとめ

第10章 カメラとアルバムから写真データを取得するプラグインを使う
10.1 Androidでのファイル名に関する問題を解決するためのプラグイン
10.2 カメラ・アルバムにアクセスするためのプラグイン
10.3 プラグインを利用したサンプルアプリ
10.4 その他、アルバムから選択するプラグイン
10.5 まとめ

第11章 連絡先データにアクセスするプラグインを使う
11.1 連絡先にアクセスするためのプラグイン
11.2 連絡先のプロパティとデータ型
11.3 サンプルアプリの概要
11.4 連絡先データの取得
11.5 データの更新(追加・変更)
11.6 OSが提供するUIから選択する
11.7 まとめ

第12章 カレンダーの予定を管理するプラグインを使う
12.1 カレンダーにアクセスするためのプラグイン
12.2 カレンダーアプリを起動する
12.3 カレンダーの取得・追加・削除
12.4 イベント
12.5 まとめ

第13章 カレンダーを管理するプラグインを使って、予定の追加と削除を行う
13.1 カレンダー内のイベントの管理(1)
13.2 カレンダー内のイベントの管理(2)
13.3 Android 6.0以降での操作権限について
13.4 まとめ

第14章 Cordovaでアプリを公開するためのビルド方法をカスタマイズしよう
14.1 プロジェクトの設定ファイルを理解しよう
14.2 プロジェクトの設定ファイルをより自由に扱えるプラグインを使う
14.3 アプリ名を変更したい
14.4 パッケージ名を変更したい
14.5 SDKやiOSの対象バージョンを指定する
14.6 ビルドバージョンを指定する
14.7 ブラウザからアプリを起動できるように指定する
14.8 iOSアプリの言語を日本語にする
14.9 アイコンやスプラッシュ画像を設定する
14.10 まとめ

付録A プラグイン・参考資料
A.1 サンプルで紹介したプラグイン一覧
A.2 その他、参考資料

この本のターゲット

おそらく「入門書を読んでHTMLを編集したことがある」くらいの人でも、きちんと順に読んでいけばアプリ開発できる内容にはなっています。ただ、あくまでも技術者向けの「ドキュメント」に近い形なので、ビジュアルで説明してくれる入門書しか読んだことがないと、面白みのなさにモチベーションが続かなかったり、分からないことが出てきところでつまづいてしまう可能性が高いと思われます。

一方、「HTML+CSS+JavaScriptでやりたいことはできる」「ハイブリッドアプリは初めて」という人には最適の本です。Cordovaのメリット・デメリット、環境構築方法から、さまざまなネイティブ機能を使うためのプラグインの使い方まで、手順を追って丁寧に説明されています。

そして、私のように「けっこう、Cordovaでアプリ作っているよ」という人も、ぜひ手に取ってほしいです。使ったことあるプラグインはともかく、使ったことのないプラグインは、一読するだけで「なるほど、こういうことができるのか」ということが分かり、非常に参考になります。

やりたいことが、けっこう網羅的に紹介されている

アプリにしたときに「やりたいな」と思うようなこと、例えば

  • ネットワークの接続状態を調べたい
  • カメラやマイクを使いたい
  • 重いファイルはアプリ本体には含めずに、初回にファイルダウンロードさせたい
  • ファイルの読み込みや保存をしたい

などを実現するプラグインが紹介されていて便利です。順に本を読んでいくというよりは「やりたいことが書いてある章だけ開いて読む」というリファレンスとして重宝します。

また「HTML5だけで実現できることも、プラグインを使ってネイティブ機能を使うことで、より便利になる」といったTIPSも散りばめられているので、気になる章は、コードだけではなくざっと一読すると気づきがあります。

逆に、載せてほしかったこと

この情報もあったらよいのに、と思ったことがいくつか。補完する意味で、あわせて勝手に他サイト紹介します。

  • SQLite
    簡単なものなら、ファイルの入出力でも実現できますが、ローカルのデータベースを使うという場面は多くあるはず。SQL文の説明をしないまでも、構造化されたデータをローカルにもつとしたら、SQLite一択だと思うので、紹介されていたらよかったです。
    参考サイト:Cordova アプリ内に SQLite でローカル DB を構築できる cordova-sqlite-storage
  • プッシュ通知
    正直、実装は簡単ではないですが、やりたいことの上位だと思います。Nifty Cloud mobile backendとのタイアップでよいので、紹介があるとよかったと思いました。
    参考サイト:Cordovaアプリにプッシュ通知を実装する
  • config.xmlの詳細設定とアプリ公開までのフロー
    config.xmlについては、最終章に少し載っているのですが、ここだけは情報不足を感じました。経験上、config.xmlの記述は、Web上の情報が古くて使えないことも多くハマる箇所なので、もう少し丁寧にかいてあってもよいかと思いました。また、アプリができて「いざ申請して公開しよう」となったときの具体的な情報がないため、そこでつまづいてしまったら非常にもったいない。せめて、Android / iOS の公開までの流れくらいは載せるべきだったのではないかと感じました。
    (参考サイトあとで追記します。。。)

総評

よくまとまっている、いい本がでした。
ここのところ、Cordovaの書籍はあまり出ておらず、数年前の本の情報はバージョンアップで仕様が変わってほぼ使えない、という状況でしたので、Cordova未経験者も経験者も手に取ってほしい一冊です。知っている内容の章でも、ちょっとした発見がけっこうあります。

最後に改めてリンクをはっておきます。
HTML5とApache Cordovaで始めるハイブリッドアプリ開発