SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
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.sn
    sm&hl=ja
カードリーディングゆずりは

   カードリーディングを実在のプ
    ロの方(セラピスト)にやって
    もらうアプリ
   実在のプロの方に通知が飛び、
    その人の診断が終わり次第、
    プッシュ通知( GCM )で依頼
    者にお知らせして依頼結果を購
    入してもらう
   購入と CGM はモジュール
   https://play.google.com/sto
    re/apps/details?id=jp.coe.yu
    zuliha&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 を指定してい
    ない場合、スクロールす
    るだけでメモリを使い果
    たす
   しかし、適当に classNa
    me を指定すると強制終了
    する
   構造の同じ同士が同じ名
    前になるよう設定する
   上の列と下の列は違う名
    前にならないといけない
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 -66
11-11 22:33:24.411: I/ActivityManager(1404): Starting activity: Intent { act=android.intent.action.MAIN
cat=[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=16213
uid=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: v8
11-11 22:33:26.721: D/ImageresizerModule(16213): (main) [25,1659] inside onAppCreate
11-11 22:33:26.721: D/NendandroidModule(16213): (main) [6,1665] inside onAppCreate
11-11 22:33:26.731: D/ExcameraModule(16213): (main) [2,1667] inside onAppCreate
11-11 22:33:26.751: I/TiRootActivity(16213): (main) [0,0] checkpoint, on root activity create, savedInstanceState: null
11-11 22:33:26.751: I/TiApplication(16213): (main) [1,1] Analytics have been disabled
11-11 22:33:27.231: E/wifi(1404): [android_net_wifi_getRssiHelper] rssi -61
11-11 22:33:30.241: E/wifi(1404): [android_net_wifi_getRssiHelper] rssi -62
11-11 22:33:33.251: E/wifi(1404): [android_net_wifi_getRssiHelper] rssi -64
11-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{44a9edf8
jp.coe.snsmtest/.SnscheckerActivity}



※一応、V8ではなくRhinoでつくり直すと動くかも・・・
「 Android ってウィジェットってあるでしょ?実装してよ」


超苦労したけどモジュールつくりました。
https://marketplace.appcelerator.com/apps/2662?
856576772
iPhone TIPS
   Ti.Geolocation の ACCURACY_BEST は、全
    然ベストではない

   Titanium がゲーム作成に向かない理由は、 Ti.Medi
    a.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 両対応
  アプリを作ろう
    (^ー^)

Más contenido relacionado

Similar a Ti.trap

Androidアプリ開発を楽にするために
Androidアプリ開発を楽にするためにAndroidアプリ開発を楽にするために
Androidアプリ開発を楽にするためにShuichi Takaya
 
20120422 日本androidの会 横浜支部 smartwatch開発
20120422 日本androidの会 横浜支部 smartwatch開発20120422 日本androidの会 横浜支部 smartwatch開発
20120422 日本androidの会 横浜支部 smartwatch開発ta9mar
 
2011年5月28日 Android勉強会プレゼン資料
2011年5月28日 Android勉強会プレゼン資料2011年5月28日 Android勉強会プレゼン資料
2011年5月28日 Android勉強会プレゼン資料Eiichi Yoshikawa
 
「Camelog」Android開発秘話
「Camelog」Android開発秘話「Camelog」Android開発秘話
「Camelog」Android開発秘話Shoya Tsukada
 
HoloLensとさまざまなデバイス連携ドドンドーン
HoloLensとさまざまなデバイス連携ドドンドーンHoloLensとさまざまなデバイス連携ドドンドーン
HoloLensとさまざまなデバイス連携ドドンドーンSatoshi Maemoto
 
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッションC# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッションYoshito Tabuchi
 
LODGEのいいところあげていきます!
LODGEのいいところあげていきます!LODGEのいいところあげていきます!
LODGEのいいところあげていきます!Satoshi Maemoto
 
Jenkinsを使おうよ
Jenkinsを使おうよJenkinsを使おうよ
Jenkinsを使おうよYohei Oda
 
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティング
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティングxR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティング
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティングShinya Tachihara
 
Androidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーションAndroidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーションKoji Shigemura
 
Androidが変えたもの
Androidが変えたものAndroidが変えたもの
Androidが変えたものYuki Yamakido
 
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介Mori Shingo
 
iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3codeal
 
classmethod devio2015 J-1 iBeacon
classmethod devio2015 J-1 iBeaconclassmethod devio2015 J-1 iBeacon
classmethod devio2015 J-1 iBeaconHiraku Komuro
 
受託案件を通じてみたWIndows8ストアアプリ
受託案件を通じてみたWIndows8ストアアプリ受託案件を通じてみたWIndows8ストアアプリ
受託案件を通じてみたWIndows8ストアアプリIkkai Takeshi
 
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)Kenichi Kambara
 
Smartphone Market(OS, Devices, Apps)
Smartphone Market(OS, Devices, Apps)Smartphone Market(OS, Devices, Apps)
Smartphone Market(OS, Devices, Apps)Naoko Tsubaki
 

Similar a Ti.trap (20)

Androidアプリ開発を楽にするために
Androidアプリ開発を楽にするためにAndroidアプリ開発を楽にするために
Androidアプリ開発を楽にするために
 
20120422 日本androidの会 横浜支部 smartwatch開発
20120422 日本androidの会 横浜支部 smartwatch開発20120422 日本androidの会 横浜支部 smartwatch開発
20120422 日本androidの会 横浜支部 smartwatch開発
 
2011年5月28日 Android勉強会プレゼン資料
2011年5月28日 Android勉強会プレゼン資料2011年5月28日 Android勉強会プレゼン資料
2011年5月28日 Android勉強会プレゼン資料
 
「Camelog」Android開発秘話
「Camelog」Android開発秘話「Camelog」Android開発秘話
「Camelog」Android開発秘話
 
Androidとは何か
Androidとは何かAndroidとは何か
Androidとは何か
 
HoloLensとさまざまなデバイス連携ドドンドーン
HoloLensとさまざまなデバイス連携ドドンドーンHoloLensとさまざまなデバイス連携ドドンドーン
HoloLensとさまざまなデバイス連携ドドンドーン
 
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッションC# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
C# を使い倒す!クロス プラットフォーム アプリ開発とクラウド連携の新潮流 - Xamarin セッション
 
20111112OITEC
20111112OITEC20111112OITEC
20111112OITEC
 
LODGEのいいところあげていきます!
LODGEのいいところあげていきます!LODGEのいいところあげていきます!
LODGEのいいところあげていきます!
 
Jenkinsを使おうよ
Jenkinsを使おうよJenkinsを使おうよ
Jenkinsを使おうよ
 
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティング
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティングxR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティング
xR Tech Tokyo 登壇資料 Mixed Realityではじまるコラボレーティブ・コンピューティング
 
Androidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーションAndroidが起こしたオープン・イノベーション
Androidが起こしたオープン・イノベーション
 
Androidが変えたもの
Androidが変えたものAndroidが変えたもの
Androidが変えたもの
 
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
 
iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3iPhoneアプリ無料勉強会 vol3
iPhoneアプリ無料勉強会 vol3
 
Wankuma0402
Wankuma0402Wankuma0402
Wankuma0402
 
classmethod devio2015 J-1 iBeacon
classmethod devio2015 J-1 iBeaconclassmethod devio2015 J-1 iBeacon
classmethod devio2015 J-1 iBeacon
 
受託案件を通じてみたWIndows8ストアアプリ
受託案件を通じてみたWIndows8ストアアプリ受託案件を通じてみたWIndows8ストアアプリ
受託案件を通じてみたWIndows8ストアアプリ
 
Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)Androidリリース作業の効率化(2)
Androidリリース作業の効率化(2)
 
Smartphone Market(OS, Devices, Apps)
Smartphone Market(OS, Devices, Apps)Smartphone Market(OS, Devices, Apps)
Smartphone Market(OS, Devices, Apps)
 

Ti.trap

  • 2. 自己紹介  現在までに、個人アプリを 10 個ぐらい作 成  お仕事でも Android 、 iPhone のアプリ作 成  うち、お仕事での Titanium アプリ作成は 4本  個人での Titanium アプリ作成もいくつか
  • 3. 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.sn sm&hl=ja
  • 4. カードリーディングゆずりは  カードリーディングを実在のプ ロの方(セラピスト)にやって もらうアプリ  実在のプロの方に通知が飛び、 その人の診断が終わり次第、 プッシュ通知( GCM )で依頼 者にお知らせして依頼結果を購 入してもらう  購入と CGM はモジュール  https://play.google.com/sto re/apps/details?id=jp.coe.yu zuliha&hl=ja
  • 5. その他  二つのクソゲーアプリを審査中( iPhone 版)  0o (数字 or アルファベットを当てるゲーム)  Yubi tonton (指の間をトントンするアレ)  iPhone 版には Game Center にモジュールで対 応( Android はどうしようか考え中)  仕事で、某企業のアプリを4つほど携わりました ( iPhone,Android 両対応)
  • 6. Android TIPS  絶対に TableViewRow にクラス名を指定する  ReadOnly のオブジェクトを下手にいじらない  SDK2.0.2 以上で Optimus chat L-04C でアプリが起動 しない場合がある  「 Android ってウィジェットってあるでしょ?実装して よ」
  • 7. 絶対に TableViewRow にクラス名を指定する  className を指定してい ない場合、スクロールす るだけでメモリを使い果 たす  しかし、適当に classNa me を指定すると強制終了 する  構造の同じ同士が同じ名 前になるよう設定する  上の列と下の列は違う名 前にならないといけない
  • 9. 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 -66 11-11 22:33:24.411: I/ActivityManager(1404): Starting activity: Intent { act=android.intent.action.MAIN cat=[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=16213 uid=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: v8 11-11 22:33:26.721: D/ImageresizerModule(16213): (main) [25,1659] inside onAppCreate 11-11 22:33:26.721: D/NendandroidModule(16213): (main) [6,1665] inside onAppCreate 11-11 22:33:26.731: D/ExcameraModule(16213): (main) [2,1667] inside onAppCreate 11-11 22:33:26.751: I/TiRootActivity(16213): (main) [0,0] checkpoint, on root activity create, savedInstanceState: null 11-11 22:33:26.751: I/TiApplication(16213): (main) [1,1] Analytics have been disabled 11-11 22:33:27.231: E/wifi(1404): [android_net_wifi_getRssiHelper] rssi -61 11-11 22:33:30.241: E/wifi(1404): [android_net_wifi_getRssiHelper] rssi -62 11-11 22:33:33.251: E/wifi(1404): [android_net_wifi_getRssiHelper] rssi -64 11-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{44a9edf8 jp.coe.snsmtest/.SnscheckerActivity} ※一応、V8ではなくRhinoでつくり直すと動くかも・・・
  • 11. iPhone TIPS  Ti.Geolocation の ACCURACY_BEST は、全 然ベストではない  Titanium がゲーム作成に向かない理由は、 Ti.Medi a.Sound にある(と思う)
  • 12. Ti.Geolocation の ACCURACY_BEST は、全然ベストではない なぜだか知らないけど、ACCURACY_HIGHや ACCURACY_BEST は、設定すると Objective-C内部で、 ACCURACY_THREE_KILOMETERSと設定されてしまいま す 対処法: ACCURACY_NEAREST_TEN_METERSにしま しょう
  • 15. 頑張って   iOS Android 両対応 アプリを作ろう (^ー^)