「Titanium Mobileで始めるiPhone / Androidアプリ開発」のメモ
参加したメモです。
- 発表資料 http://public.iwork.com/document/ja/?d=Titanium_Mobile_Workshop_2011_47_02_47_25.key&a=p40748949
- サンプルソース https://github.com/masuidrive/TitaniumSamples
- Titanium Mobileで作られているアプリ
- Titanium Developer
- iPhone環境構築
- Android環境構築
- トラブルシュート
- 同じコードでもiPhoneとAndroidで見た目が違う
- Titanium Mobileではそれぞれのプラットフォームのネイティブの部品が使われる
- KitchenSink
- デモアプリケーション
- Titanium Mobileのアーキテクチャ
- Native OSの上にJavaScriptインタプリタを動かしている。Obj-Cなどにコンパイルしているわけではない
- FAQ
- アプリの作り方
- 1window == 1source
- Window間で独立したContextにより、複数人で同時につくる時に便利
- 共有変数はTi.App以下にぶら下げる
- Window間の共有は苦手
- single context
- AJAXに近い形
- 変数は全体で共有
- 1window == 1source
- Titanium MobileはWEB系の技術者がスムーズに移行出来るように意識して設計されている
- Feedの取り扱い
- 見た目がだいぶ違う
- Pull to refreshでKitchenSinkを検索
- OSはTitanium.Platform.osnameで判定
- ロジックだけ共通化して、iPhone/AndroidそれぞれのUIを作る。
- 各プラットフォーム毎にチューニングが必要だが、いいかえれば各プラットフォームらしいアプリが作れる
- 先にiPhoneでひと通り作って、Android作成時にリファクタリングするのが効率が良い
- 経験的に7〜8割はコードを共通化できる
- デバッグ
- アニメーションテクニック
- 標準のアニメーションを組み合わせて凝ったアニメーションも作れる
- MogSnapの「食べたい」とか
- Modern JavaScrtip
- Titanium MobileではJavaScript1.6をサポート
- CommonJS, JavaScriptのオブジェクト指向, 非同期処理とクロージャ, Deferred
- Ti.IncludeよりCommonJSのrequireの方がオススメ
- この辺のModern JS勉強会もやりたい。[twitter:@masuidrive]などウォッチしてください
- イベント処理
- Deferredいいよ!非同期処理を書くときに階層が深くならない
- 資料
- 公式ドキュメントはまだイマイチ
- titanium-mobile-doc-ja
- [twitter:@appcelerator_ja]
- http://tidocs.com
- KitchenSink https://github.com/appcelerator/
- WebDB + PRESS Vol.61 発売中
- gihyo.jp http://gihyo.jp/dev/serial/01/titanium
- ぐぐる!賞味期限は3,4カ月なので注意。それより古いのはお腹を壊します。
- Stackoverflowなど
質疑応答
- Q. jQueryのUtilityなどを正式に対応する予定は?
- A. eachとかmapとかはJS1.6の機能でできる。HTTPの通信部分をサポートする予定はない。同じような方法で通信できるモジュールがあったと思う
- Q. Androidに実機転送できなくなる
- A. USBを挿し直す。本体を再起動する。build/以下を消してから実行すると結構な確率で入る。あるいはAndroid側のUSBデバッグを一度解除してからつなぐといい。
- Q. JSとネイティブを交互に行き来してもパフォーマンスはでるのか?
- A. 十分でる。実際にコミックビューアの部分では、ビューアの部分はネイティブ実装して、速度のいらない部分はJSでというのがよい