先日の5/26(土)にNSEG勉強会でTitanium Mobileのハンズオンがあり、参加してきました。
第27回勉強会 - 長野ソフトウェア技術者グループ NSEG
Appceleratorでエバンジェリストをされてる増井さんに講師をしていただきました。
増井さんはPukiWikiの開発者としてもよく知られている方です。
ハンズオンで使われた資料はこちら。
Titanium Mobileとは、iOSやAndroidのObjective-C/Javaでの開発のかわりにJavascriptで同一コードでアプリケーションが作れるというツールで、非常に簡単にアプリケーションの開発が行えるものです。
ほんとはもっと長く書いてたんですが、間違って消しちゃって再度書くモチベーションがでないので、今回のハンズオンやTitanium Mobileについての感想とか思ったことなどをちょこっとまとめ。
- Titaniumはちょっとしたアニメーションや効果のついたUIを使いたいとかが得意とのこと。
- たぶん今までフルFlashで書いてたようなものが一番向いてる印象。そういうの必要ないならHTML5というかjQuery Mobile+Javascriptとかでも良いのかなと思った。
- Titaniumの対抗としては Corona(2Dゲームに向く Lua) Unity(3Dゲーム) PhoneGap(HTML5)とかあるとのこと。
- ちなみにHTML5+JavascriptでiOSやAndroidのアプリケーション作れるものはMonaca http://monaca.mobi/ というのがある。
- iPhoneとAndroidで独自UI作法に対応するためのコードがあるため5%ほど個別のコードが必要だが、だいたい95%ほどまで共通のコードで書けるとのこと。
- TitaniumはiPhoneやAndroidのほとんどの機能を利用できるようになってるが、対応できない分は外部モジュールが使えるとのこと。
- 外部モジュールはObjective-CやJavaでネイティブで書ける。
- そしてその部品はTitaniumマーケットで売ってたりする。というか売れる。
- Titaniumは線を引くとかそういう機能が弱いとのこと。ゲームとか1/60でなにかするなんかは厳しい。javascriptなんでバイナリいじったりとかも。
- Titaniumはプラットフォーム毎のネイティブにあったUIに勝手になる。そこはとても良い点。だが逆に注意も必要。
- 1.6以降の情報ならだいたい2.0でも使えるっぽい。
- 日本語の情報は増井さんとこのサイト http://ti.masuidrive.jp/ で情報共有がされてて、結構アクティブなのでおすすめとのこと。
- TitaniumのAndroidのエミュレータの起動と最初のコンパイルが劇遅で泣ける…
- Androidのパッケージは一度コンパイル通すとその後のビルドは差分なのでだいぶ早くなるとのこと。
- だから最初にプロジェクト作ったらまずビルドしちゃうのがおすすめとのこと。
- Androidのはとにかくメモリを食うためメモリたくさん乗っけておくのがおすすめとのこと。
- たまにビルドがうまくいかず変更したのに反映されないことが起きるらしい。その場合ブロジェクトのクリーンってので中間ファイルを削除できる。
- ACSというAppceleratorの始めたクラウドサービスがあり、現在ベータで利用できる。
- ACS使うと簡単に永続的なDBを使ったアプリが書ける、てかサーバ側の準備をする必要がないからとりあえずなんかテスト的なもの作るのはらく。
- ACSのバックエンドのDBにはMongoDB使ってるとのこと。
- 自分の環境だとCloudのチェックボックスがdisableになってるからなんでだ??と思ったらTitanium SDKが1.7でCloudは2.0以降じゃないとダメだからだった。
- nodeのsocket.io使いたいけどTitaniumだと使えないですよね、と質問したら、増井さん自身が以前websocketのモジュール書いてて、それベースにしたsocket.ioのモジュールがTitanium用にもあるとのこと。それどんな真田さん?nowelium/socket.io-titanium · GitHub
- mruby の話が面白かった。MobiRubyというiOSやAndroidの上で動くrubyがあり今趣味ベースで作ってるとのこと。MobiRuby
- たしかに競合するけど、出来上がったらjavascriptの代わりにmruby(MobiRuby)ベースのTitanium作るとかもあったら楽しそう。