2013年1月19日土曜日

Titanium mobile、どうも困った…

記事に要約つけることにしました。
  • TitaniumアプリのAndroid版でフラグメントに遭遇
  • Titaniumあかんか…という気配
  • 次はNative+jQuery。いや、いっそNative+Airでw

iPhoneでは問題ない…■

会社でTitaniumを使ってちょっとしたアプリを書いてます。iPhoneでテストしてひと通り動くようになったところでAndroidエミュレータでテスト、画面の差異などを吸収したりソース分けたりして社内テスターにリリース。

そこで問題発生、Android OSバージョン:
  • 2.3.3では問題なし
  • 2.3.4では動くヒトと動かないヒト
  • 2.3.5では起動すらしない
  • 4以降は今のところ問題なし
いろいろ追いかけてみたところ、スマートフォンなのにisTabletがtrueで返ってきてしまってあちこち矛盾するのが原因らしいと判明。2.3.5のエミュレータなんて無いからテストできないですよorz

今回Titaniumを使うことになったのは、クロスプラットフォーム性を最重視、であればPhoneGap+jQueryより少しはサクサク動くTitaniumの方が良いか…という判断でした。Androidのフラグメントについては皆さん了解済だったんですが、0.0.1の違いでバラついてしまい、同じバージョンでも差異が出てしまうというのはさすがにアウトだなぁという空気になりまして。まぁそりゃそうですわな。

それなりにwork aroundもあるとは思うんですが、Titanium SDK 3.0.0も出たばかりでそのバグフィックスリストを見ると、ちょっとこれはシンドいかなという気分に。「JavaScriptからブラウザを経由しないでネイティブのAPIを叩くからjQueryより少し軽い」というのはメリットなんですが…ランタイム上のネイティブなオブジェクトを参照する辺りの処理がイマイチ書き切れてない感じです。以前もviewのframeサイズを拾ってこようとしたら何やっても0しか返って来ないってこともあったっけ。ごく基本的なAPIがreferenceに書いてある通りに動かないのはイカンよなぁ…。

今回Titaniumの評価も兼ねたプロジェクトだったわけですが…とりあえずACS(Appcelerator Cloud Service)はそのまま使うけど、Titaniumについてはしばらくペンディング…ということになりそうです。

個人的にはUIエディタのないツールでプロトタイプを作るのはイヤなので、ちょっと助かったとです。リキッドレイアウトが協力ならまだ良いんだけどねぇ。

ホントならここでSenchaへ行きたいところなんですが、ツールを買い揃える予算がないのでMonaca方面で試行錯誤中。

しかし…jQuery mobileについて勉強してた当時はある程度ソラで書けるようになっていたのに、また「えーと、画面と画面を区切るのはなんだっけ…(ググり中)そうそう <div data-role="page" id="foo"></div> だった」なんてところまで退化していて困ったもんだ。

個人的には「そんなにクロスプラットフォームが良いなら、iPhone版はNativeで書くとしてもAndroid版を含めて残り全部Adobe Airで良いんじゃね?」と鬼のようなことを考えていたりもするのですがw

0 件のコメント:

コメントを投稿