ti.trap
DESCRIPTION
TitaniumTRANSCRIPT
Titanium の罠
tsuyoshi hyuga @cofeegyunyu
自己紹介
現在までに、個人アプリを 10 個ぐらい作成
お仕事でも Android 、 iPhone のアプリ作成
うち、お仕事での Titanium アプリ作成は4 本
個人での Titanium アプリ作成もいくつか
All SNSChecker 複数の SNS(Twitter,Faceboo
k,mixi など ) に書き込み、閲覧、検索ができるアプリ
外部呼出しにも対応してるよ(URL スキーム、インテント)
iPhone と iPad と Android に対応
http://bit.ly/TIm1lu https://play.google.com/sto
re/apps/details?id=jp.coe.snsm&hl=ja
カードリーディングゆずりは
カードリーディングを実在のプロの方(セラピスト)にやってもらうアプリ
実在のプロの方に通知が飛び、その人の診断が終わり次第、プッシュ通知( GCM )で依頼者にお知らせして依頼結果を購入してもらう
購入と CGM はモジュール https://play.google.com/sto
re/apps/details?id=jp.coe.yuzuliha&hl=ja
その他
二つのクソゲーアプリを審査中( iPhone 版) 0o (数字 or アルファベットを当てるゲーム) Yubi tonton (指の間をトントンするアレ) iPhone 版には Game Center にモジュールで対
応( Android はどうしようか考え中) 仕事で、某企業のアプリを4つほど携わりました
( iPhone,Android 両対応)
Android TIPS 絶対に TableViewRow にクラス名を指定する ReadOnly のオブジェクトを下手にいじらない SDK2.0.2 以上で Optimus chat L-04C でアプリが起動
しない場合がある 「 Android ってウィジェットってあるでしょ?実装して
よ」
絶対に TableViewRow にクラス名を指定する
className を指定していない場合、スクロールするだけでメモリを使い果たす
しかし、適当に className を指定すると強制終了する
構造の同じ同士が同じ名前になるよう設定する
上の列と下の列は違う名前にならないといけない
ReadOnly のオブジェクトを下手にいじらない
例えば、HTTPClientで出てくるresponseXMLとかをへたに変数にコピーすると、二度と解放されない変数が出来上がります。var myXML = this.responseXML; ←myXMLは二度と解放されません
SDK2.0.2 以上で Optimus chat L-04C
助けてください(^ー^)11-11 22:33:22.761: D/com.kugoweb.launcher.lib.commons.a(1500): TOTAL:3783KB, USED:2959KB(3030896), USAGE:78%
11-11 22:33:24.221: E/wifi(1404): [android_net_wifi_getRssiHelper] rssi -6611-11 22:33:24.411: I/ActivityManager(1404): Starting activity: Intent { act=android.intent.action.MAINcat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=jp.coe.snsmtest/.SnscheckerActivity }11-11 22:33:24.481: I/ActivityManager(1404): Start proc jp.coe.snsmtest for activity jp.coe.snsmtest/.SnscheckerActivity: pid=16213uid=10090 gids={1015, 1006, 3003}11-11 22:33:25.061: I/TiApplication(16213): (main) [0,0] checkpoint, app created.11-11 22:33:26.121: I/TiApplication(16213): (main) [1063,1063] Titanium 2.1.4 (2012/10/30 17:34 e5cb5e6)11-11 22:33:26.691: I/TiApplication(16213): (main) [571,1634] Titanium Javascript runtime: v811-11 22:33:26.721: D/ImageresizerModule(16213): (main) [25,1659] inside onAppCreate11-11 22:33:26.721: D/NendandroidModule(16213): (main) [6,1665] inside onAppCreate11-11 22:33:26.731: D/ExcameraModule(16213): (main) [2,1667] inside onAppCreate11-11 22:33:26.751: I/TiRootActivity(16213): (main) [0,0] checkpoint, on root activity create, savedInstanceState: null11-11 22:33:26.751: I/TiApplication(16213): (main) [1,1] Analytics have been disabled11-11 22:33:27.231: E/wifi(1404): [android_net_wifi_getRssiHelper] rssi -6111-11 22:33:30.241: E/wifi(1404): [android_net_wifi_getRssiHelper] rssi -6211-11 22:33:33.251: E/wifi(1404): [android_net_wifi_getRssiHelper] rssi -6411-11 22:33:34.431: W/ActivityManager(1404): Launch timeout has expired, giving up wake lock! ←ここで止まる11-11 22:33:34.771: W/ActivityManager(1404): Activity idle timeout for HistoryRecord{44a9edf8jp.coe.snsmtest/.SnscheckerActivity}
※一応、V8ではなくRhinoでつくり直すと動くかも・・・
「 Android ってウィジェットってあるでしょ?実装してよ」
超苦労したけどモジュールつくりました。https://marketplace.appcelerator.com/apps/2662?856576772
iPhone TIPS
Ti.Geolocation の ACCURACY_BEST は、全然ベストではない
Titanium がゲーム作成に向かない理由は、 Ti.Media.Sound にある(と思う)
Ti.Geolocation の ACCURACY_BEST は、全然ベストではない
なぜだか知らないけど、ACCURACY_HIGHやACCURACY_BEST は、設定すると Objective-C内部で、ACCURACY_THREE_KILOMETERSと設定されてしまいます
対処法: ACCURACY_NEAREST_TEN_METERSにしましょう
Titanium がゲーム作成に向かない理由は Ti.Media.Sound
iPhoneのサウンド再生にはAVAudioPlayerが使われているAVAudioPlayer→遅い上に同期で待たされる
対処法:モジュールつくるしかないAudioServicesPlaySystemSoundかOpenALを使いましょう
Android はやめとけ
頑張ってiOS Android 両対応
アプリを作ろう(^ー^)