By

TiShadowを使った爆速チーム開発への挑戦

TiShadowをグローバルサーバに立ててチーム共有レビュー

このエントリーをはてなブックマークに追加

今回は,TiShadowをチームで共有して爆速レビュー環境を作ろうとしてわかったことと,普通にTiShadow使ってわかったことを書きます.

TiShadowとは

他の人の記事公式ページにも詳しく書いてあるので簡単に書くと,ローカル環境にTiShadowサーバを建て,TiShadowサーバにTitaniumプロジェクトをTiShadowアプリとしてアップロードすることで,TiShadowサーバに接続しているTiShadowクライアントをインストールしてある端末やエミュレータ上で爆速実行できる仕組みです.通常のビルドは30秒以上かかるのですが,TiShadowを使えば数秒で反映されるため,まるでWebアプリを実行するような速度でスマホアプリを実行することができます.

本来TiShadowはローカルネットワーク上で利用することを想定していますが,TiShadowサーバをグローバルサーバ上に構築し,チームの誰かがサーバにアップロードした時に,チーム全体のTiShadowクライアントが更新されるようにすれば,爆速チームレビューができるではないか!と考えたので試してみることにしました.

グローバルサーバに導入してチーム共有

グローバルサーバにローカルサーバと同じようにTiShadowサーバを構築し起動します.今回は,ServersManのVPSを使いました.

$ tishadow server

次に,開発用マシンでTiShadowクライアントを生成し,スマートフォンにインストールします.

$ mkdir tishadowapp
$ tishadow app -d tishadowapp/
$ cd ~/tishadowapp
$ ti build -p iphone -T device -F universal # iOS端末にインストールする場合
$ ti build -p android -T device             # Android端末にインストールする場合

TiShadowサーバのグローバルIPアドレスを入力して接続ができれば準備完了.

TiShadowクライアント画像

最後に,サーバにTitaniumプロジェクトをアップロードするときはtishadow runコマンドに引数で,TiShadowサーバのアドレスを渡してあげます.

$ tishadow run –o TiShadowサーバのホスト名(もしくはアドレス)

ローカル環境で実行するときよりもアプリの反映に時間がかかりますが,相手の場所を問わずTiShadowクライアントを更新することができます.これは便利.

更に,普通はiOSのビルドができないWindows/Linuxマシンでも,TiShadowサーバ経由でiOSのTiShadowクライアントを更新すれば,Macじゃなくても開発できるのではないかということになり,それも試すことにしました.

Windows/Linuxマシンでは,新しくTitaniumプロジェクトを作った時に,tiapp.xmlのdeployment-targetsのipadとiphoneがfalseになっているので,trueに変更します.

<target device="ipad">true</target>
<target device="iphone">true</target>

あとはコマンドプロンプト等からtishadow runするとiOS端末に反映された!

顧客にもTiShadowクライアントさえ端末にインストールしてもらえれば,爆速でレビューができるじゃん!など色々と夢広がりングなTiShadowでありますが,実際は下記の問題点があり,まだ実用するのは難しいことがわかりました.

グローバルサーバにTiShadowサーバを建てた時の問題点

パスワードをかけることができない

一番の問題点はこれです.TiShadowサーバのアドレスを知っていれば,誰でもTitaniumプロジェクトをサーバにアップできてしまうし,Titaniumクライアントにもパスワードを入れる欄が無いので開発中のアプリを誰でも見ることができてしまいます.そもそもグローバルで使うものではないのでパスワードを設定する必要はないのですが・・・

動作が不安定

TiShadowは,ブラウザ上からサーバに接続している端末などを管理することができますが,グローバルサーバに立てた時はブラウザ上に接続中の端末が表示されません.ターミナル上からは接続中の端末を確認できるためその点はそこまで問題ではありませんが,その他にもTitaniumプロジェクトがアップされた時に,TiShadowクライアントが落ちることがありました.

TiShadowの問題点

その他にも通常の使い方でローカル環境内で使っていると,以下の様な問題が発生することがあります.

レイアウトがずれることがある

TiShadowだけで確認して開発していると,後々ビルドしたときにレイアウトがずれていることがありました.

tiapp.xmlに追記する必要がある機能は基本使えない

カメラやAndroidのServiceなど,tiapp.xmlに記述しないと使えない機能は,Titaniumプロジェクトだけでなく,TiShadowクライアント側のtiapp.xmlにも記述する必要があります.

まとめ

TiShadowは爆速でレビューできるので,ローカルで使っても非常に有用なツールです.しかし,上記の問題から開発がアプリのロジック部分になるに連れて,あまり使わなくなってしまいました(本当はデバッグで使いたいのだけれども).

その他にもTiShadowにはテストコードを実行できるjasmineが標準で組み込まれています(http://tishadow.yydigital.com/test).今後は,この機能も使って,チームで爆速Titaniumアプリ開発ができるよう,うまく使っていきたいと思います.