Titanium Mobile 2.0 ローンチ記念イベントに行ってきた

Titanium Mobile 2.0ローンチ記念イベントに行ってきました。

Titanium Mobileでちょっとアプリを作ろうとしたらどうもXcode 4.3とは相性が悪くて2.0を待った方がよさそうだったので、待ち望んだローンチ。

イベントは@masuidriveさんよりTitanium Mobile 2.0の紹介、Titanium Studio 2.0の紹介、FAQ、LTという流れ。

Titanium Mobile 2.0

Titanium Mobile 2.0の大きく変わったというより堅実なアップデートとのこと。アプリ開発者にとって大きな点は、レイアウトシステムの刷新とCloud Serviceのリリース。あとはTitanium WebがRC。

レイアウトシステムの刷新

レイアウトシステムでは今まではwidth/heightをautoに設定したときに、コンポーネントのコンテンツに合わせて最小サイズになるのか、親のコンポーネントいっぱいに表示するかがまちまちだった。今までレイアウトはプラットフォームに任せていたためこのようなことが起きていたが2.0からはTiが全てコントロールするようになった。autoの代わりにTi.UI.SIZE、Ti.UI.FULLを指定することでそのどちらかを指定できる。もちろんautoのままでも動くし、どちらのモードで動くかはドキュメント化されるとのこと。

詳しい説明はTransitioning to the New UI Layout Systemあたりか。

レイアウトでバッチ処理ができるようになった。今まではコンポーネントの複数のプロパティ(topとかleft)を設定すると各々のプロパティを設定した時点で再描画が起こってしまう。2.0からは以下のように描画のタイミングが制御できる。これで描画処理を改善できる、いいことを聞いた。

myView.startLayout();
myView.top = 50;
myView.left = 50;
myView.width = 200;
myView.finishLayout();

以下のようにまとめて設定する技もある。

myView.updateLayout({
  top: 50,
  left: 50,
  width: 200 
});

このへんも先のTransitioning to the New UI Layout Systemに書いてあった。

Cloud Service

Appcelerator Cloud Services

これは説明が難しい。Titanium Mobileからも使えるサーバサイドのコンポーネント集という形か。すごい便利そうなものが出てきたという印象。デモではFacebookの認証を簡単にTitanium Mobileで実現していた。ようはありきたりなサーバサイドの実装はこれを使うことで開発者はクライアント(Ti)サイドの実装に専念できる。

ただRESTFul APIをつかって自分で開発したサーバサイドのプログラムと連携したり、JavaやObjective-Cで使えるNative SDKも用意されているそうでもはやTitanium Mobileの領域を超えている。これはこれでちゃんと検証した方がよさそう。

Titanium Web

Android/iOSアプリだけでなくHTML5アプリとしてWebアプリも作れる。恐らくサブセットになってしまうだろうがTitanium Mobileと共通なものも使える。うまくモジュールのテストとして使えるとよいのだが。今のところそれ以外ではあんまり使いそうにはない。jQuery MobileSencha Touchを普通に使った方がよいかな。

そういえばSencha Touch 2.0からNativeアプリにパッケージングができる機能がついたそうなのでそれも試さないとね。

Titanium Studio

痒いところに手がとどくような細かい修正をたくさん、400くらいしたそうです。iOS SDK/Android SDKの認識が向上してセットアップの失敗が少なくなった。なんか今までAndroid SDK 2.1を入れておかないとAndroid SDKを認識しないことがあったような。コード補完の機能改善、ビルドの検証エラーが見つかったらビルドをすぐ停止するようになったり、開発効率をあげることができそう。

LT

@sngmrさん モトクロス選手とかが使う業務アプリっぽいもの
@ryugoo_さん sampleのtodolistめっちゃ警告ができるので消してみた。
@donayamaさん Tiドキュメントサイト紹介
もとはしさん 表計算的な業務用コンポーネント
@daoki2さん xib2js。IBでつくったものをTiに使える形式に変換

xib2jsが便利そうだった。ただ変換するだけじゃなくてiPhone Simulatorで動いているTiアプリに通信して即時チェックできる機能があって至れり尽くせり。

まとめ

ドキュメントが改善されたり、サーバサイドのコンポーネントが提供されたり、本格的に使えそうになってきたTitanium Mobile。2.0から始めるのはちょうどよさそうだ。moduleのドキュメントも正式なものが出てきたということでmoduleを書いたり、Cloud Serviceを調べたり先は長そうだが。最初からNativeで書く場合とTiを使う場合をうまく使い分けられるようになりたい。コア部分はmoduleで書いてプロトタイプ的にTiで作ってあとからNativeに切り替えても大丈夫とかいろいろ武器は増やしておかないとね。