さらに本格的なフレームワークも、幾つかある。その中から、AngularJS+Ionic Frameworkの組み合わせを紹介しよう。
アプリが複雑になってくると、jQueryなどのライブラリを使っているだけでは限界がある。画面遷移を避けるために1つのHTMLファイルの中にたくさんの画面定義を収めていくと、どんどん見通しが悪くなる。onDeviceReady関数を起点にコードを書いていくと、どうしてもロジックとDOM操作が混在したメンテナンスしにくいコードになっていく。そこで、画面とロジックのコードを分離でき、また画面ごとにファイルを分割できるようなフレームワークが必要になってくるというわけだ。
Ionic Frameworkは、最近になって人気が出てきたフレームワークで、AngularJSの上に構築されている。そして、VS Tools for CordovaでIonic Frameworkを利用するプロジェクトテンプレートが提供されているので、簡単に始められるのである。
Ionicプロジェクトテンプレートを導入すれば、Ionic FrameworkとAngularJSも一緒にインストールされる。Visual Studio 2015を立ち上げて、メニューバーの[ツール]−[拡張機能と更新プログラム]を選ぶ。出てきた[拡張機能と更新プログラム]ダイアログで「Ionic Project Templates for Visual Studio」を見つけてインストールするだけだ(次の画像)。
Ionicプロジェクトテンプレートをインストール後の[新しいプロジェクト]ダイアログには、Ionicを使うテンプレートが3つ追加されている。今回は、その中から「Ionic Tabs Template」を試してみよう(次の画像)。
プロジェクトができたら、早速デバッグ実行してみよう(次の画像)。タブで画面を切り替えるアプリになっている。
プロジェクトの構造を簡単に見ておこう(次の画像)。www\templatesフォルダに入っている拡張子が.htmlのファイルに、それぞれの画面のコンテンツが定義されている。wwwフォルダ直下にあるindex.htmlファイルには<ion-nav-view>というタグがある。フレームワークが、それぞれの画面のコンテンツを<ion-nav-view>タグの部分にはめ込むという仕掛けだ。
複数画面にわたって処理を続けるような複雑なアプリを開発するときは、このIonicのようなフレームワークの採用を検討してみてほしい。
Ionicでは、Rippleエミュレータが対応していない関数を使っているため、エラーが出ることがある。実機でエラーが出なければ問題ないとはいえ、いちいちエラーダイアログに応答するのも面倒だ。
エラーを回避する手段として、Rippleにダミーの関数を挿入する方法がある。Ionic Tabs Templateの場合は、app.jsファイルの先頭に次のようなコードを追加するとよい。
window.has_ripple = (window.parent !== undefined)
&& (window.parent.ripple !== undefined);
if (window.has_ripple) {
var bridge = window.parent.ripple('platform/cordova/2.0.0/bridge');
bridge.add('Keyboard', {
init: function () { },
close: function () { },
});
bridge.add('StatusBar', {
_ready: function () { },
styleDefault: function () { },
});
}
今回は、VS Tools for CordovaでAndroid/iOS/Windows用クロスプラットフォーム開発を行う際のテクニックを紹介した。
また、本格的なフレームワークとしてIonic Frameworkを紹介した。
次回は、デバイスの機能を利用するプラグインを中心に解説する予定だ。
Copyright© Digital Advantage Corp. All Rights Reserved.