Google+ もご覧ください
ユーザーアイコン

実務で使えるTitaniumテクニック

Titanium Mobile を実務的に使うための開発環境の整え方(2)

Ryugoo

Titanium Mobile を実務的に使うための開発環境の整え方(2)

Titanium Mobile とテスト環境

前回からの続きです。

Titanium の入門編であれば、ここからは Titanium アプリケーション開発に入っていきたいところですが、はやる気持ちを抑えて Titanium アプリケーション開発を実務的に行うための方法を考えてみましょう。

コードと自信

Titanium の特徴は JavaScript を用いて複数プラットフォームに対応するアプリケーションの開発を、素早く行えることです。頭の中にあるアイデアを形にする上で、この特徴は強力に作用します。しかし、アプリケーションを素早く開発することができたとしても、マーケットで配付するとなったら、正常系以外の動作も考慮する必要が出てきます。正常系以外の動作を考慮してコードに盛り込んだとしても、そのコードは正しく動作するのか、あまりにも抽象度が低すぎてカバーし切れていないのではないか…などなど、自分が書いているコードに自信が持てなくなってきます。

自分のコードに自信が持てない状況は、開発者の精神的にも、マーケットに配付するアプリケーションとしても良い状態ではありません。趣味プログラミングの範疇であればカバーできるかもしれませんが、もしも金銭などの対価を得ながら開発していたとしたら、自分のコードにある程度の自信がある状態であることが望ましいと思います。

自信とテスト

自分のコードに自信を持つには、テストを書く事が大切です。公式の Titanium アプリケーションのテスト環境は Appcelerator が提供する有償版の開発環境 Appcelerator Platform があります。残念ながら無償で使える範疇では、公式に提供されているテスト環境はありません。しかし、有志によって Jasmine がテストコードの記述に使えるようになっています。

Jasmine は Ruby のテストフレームワーク RSpec によく似た構文でテストを書くことができる JavaScript 用のテストフレームワークです。 Jasmine や RSpec の詳しい説明は省きますが、 Jasmine を使うことで関数から正しい値は返ってきているか、不正な値を与えたときに例外が発生しているか、非同期処理の結果が返ってくるのを待ったりとアプリケーションの振る舞いを元にテストを書く事ができます。

Jasmine
Jasmine

Titanium と Jasmine と TiShadow

Titanium と Jasmine を組み合わせるにはどのようにしたら良いのでしょうか。最も簡単に環境を整える方法は TiShadow を使うことです。 TiShadow は Titanium アプリケーション開発を加速させる強力なサードパーティツールです。公式にも、

the complete toolset for rapid titanium app development

と書かれています。 ChatWork 社内でもこの TiShadow を使った開発をベースにしています。 TiShadow の詳細は公式サイトの getting started を見ていただきたいと思います。専用の TiShadow アプリケーションをシミュレータや実機にインストールしておき、開発環境内で TiShadow サーバを立ち上げておくことで、このサーバに接続されているシミュレータや実機に対してアプリケーションを瞬時に配付し、テストすることができます。

また、TiShadow について詳細に説明が書かれている @astronaughts さんのスライドが Speaker Deck に掲載されています。日本語の情報を確認したい方はこちらが参考になるでしょう。この TiShadow は Jasmine をサポートしており、 Titanium アプリケーション開発と Jasmine を使ったテストを便利に統合してくれます。こちらは公式サイトの テスト ページを見ていただければと思います。

TiShadow をインストールする

TiShadow は Node.js ベースのコマンドラインツールとして開発されています。 Titanium CLI の環境を整えていれば Node.js 0.8 系が既にインストールされているはずですので、同じように npm を使ってインストールすることができます。

$ npm -g install tishadow

TiShadow をインストールすると tishadow コマンドが使えるようになります。コマンドが有効になったら、シミュレータ・エミュレータ、または実機に TiShadow アプリをインストールしておきます。

$ mkdir ~/titanium/tishadowapp && tishadow app -d ~/titanium/tishadowapp

今回の例ではホームディレクトリに titanium ディレクトリを作り、その中の tishadowapp ディレクトリに TiShadow アプリを設置します。 tishadowapp ディレクトリに移動してみると、 Titanium アプリケーションプロジェクトができてます。この中の tiapp.xml をテキストエディタで開くと、 sdk-version という項目がありますので、この項目を先にインストールした Titanium SDK のバージョンに揃えます。

TiShadow tiapp.xml
TiShadow tiapp.xml

これで TiShadow を使う準備が整いました。もう1つターミナルを開き、その上で

$ tishadow server
[DEBUG] TiShadow server started. Go to http://localhost:3000

を実行します。これで TiShadow サーバが立ち上がります。あとは先ほど設置した TiShadow アプリを立ち上げます。今回は iOS シミュレータで確認してみましょう。

$ cd ~/titanium/tishadowapp
$ titanium build -p ios -S 6.1 -I 6.1

ビルドに成功してアプリが立ち上がると、アプリはサーバに接続するためのダイアログを表示します。

TiShadow サーバに接続する
TiShadow サーバに接続する

localhost と入力し、 Connect ボタンを押すと TiShadow サーバに接続されました。 TiShadow サーバを立ち上げているコンソールを確認すると、

[DEBUG] A socket connected
[INFO] [iphone, 6.1, 192.168.1.2] Connected

このようなメッセージが表示されているはずです。ここまできたら、 TiShadow アプリを立ち上げていたコンソールの上で control + c などを入力して TiShadow アプリのコンソールから抜け出します。コンソールから抜けても iOS シミュレータや Android エミュレータは起動し続けているはずです。


では次のページから実際にTitaniumアプリケーションプロジェクトを作成し、Jasmineを使ってテストしてみます。

Titanium

連載バックナンバー

記事をリクエストする

関連記事

コメント