AndroidでTitanium Mobileのアニメーション機能を使うのはまだ早い?

Titanium Mobile。
開発元がMacでiPhoneメインに作っているのか、Androidアプリを作ろうとすると色々問題があります…

今までに遭遇してしまった問題たち。

・WindowsでAndroidアプリ開発 > 画像出ない!
Titanium MobileでAndroidアプリ = 茨の道で書きましたが、fastDev機能使うと画像が出ません…(出す方法知ってる方がいたら是非教えてください!)

・WindowsでAndroid SDKが認識されない!
Android SDKをインストールしたパスに半角スペースが入っているとパラメータが勝手に区切られビルドできません。
Titaniumが悪い! とは言い切れないものの、内部処理でダブルクオーテーションで囲んでくれれば動くので直してもらえるとありがたいところですね。
諸悪の根源はProgram Filesフォルダェ…

・AndroidでImageViewのImagesを使ったアニメーションが重い!
アニメーションするView10個くらいまでは何事も無く動くのですが、それを超えた途端、一気にパフォーマンスが落ちます。(作りが悪かったらごめんなさい)
iPhoneでは標準のアニメーションでスムーズに動いていました。

色々試したりコードを眺めたりして、画像の切り替えを行う際の読み込みが重いのではと思い、独自にアニメーションさせる機能を作りました。(両対応させたかったのでJSのみの形で)
独自アニメーションの形であれば30体くらい出してアニメーションさせても問題無さそうでした。
アクションやシューティングはキツイものの、RPGくらいならいけそうですね。

・Androidの2DMatrixのアニメーションを行う際、anchorPointは無視される
常に左上を中心として動きやがります…
iPhoneで動かすとanchorPointの値は認識されています(指定しなくてもデフォルトの中心点が真ん中という優しさ)

・Androidのアニメーションでtop,leftとwidth, heightを設定してanchorPointの代用をしようとすると謎の動きをする
Viewの拡大・縮小をViewの真ん中を中心として行いたくて、top,leftとwidth,heightを計算して設定する形で作ってみました。
すると何ということでしょう、top,leftの移動とwidth,heightの拡大・縮小の速度が違うではありませんか。

内部の処理を見ると、top,leftとwidth,heightの値を設定するコードが違ったので、そのせいだと思われます。
iPhoneで動かすとキレイに動きます、不思議!

ダメ元でwidth,heightではなく、right,bottomを指定する形で作ってみました。
今度は、top,leftの値が変化していく>変化完了した直後にright,bottomの値が設定した値に!
指定するなということですね…(正しく動く方法、ほんと教えてください…)

Androidを無視すれば凄くいいアプリが手軽に作れますね。
私は全くObjective-Cを知らないので、TitanimuでiOSアプリを簡単に作れることに感動しています。
Androidの方はJavaで普通に書けるので、Titaniumありえない…Javaで書かせてくれ…というツライ状態です。

Androidの対応が進み、同じコードでiOS, Android両方ほぼ同じ動きをするようになれば、今後の開発はTitanium Mobileを利用することでハッピーになれることでしょう。

そんなことを夢見つつ、Androidで起こる問題の解決法をチマチマと探っていっています。

Titanium MobileでAndroidアプリ = 茨の道

Titanium Mobile。
JavaScriptでiOS・Androidのアプリが作れちゃう凄いヤツ。

JavaScript + xml(設定ファイル)で実行可能なアプリを作れます。
JavaScriptからネイティブコードを呼び出す形になっています。

iOSの方は詳しく見ていないのですが、Androidの方は設定から動的にActivityやらManifestやらを生成していました。
JavaScriptインタプリタで動作させるとのことで、ネイティブに比べると少し重いみたいです。

WindowsXPでTitanium Studio + Titanium Mobile SDK 1.7.2を導入しました。
導入から新規プロジェクト作成→ビルドまではうまくいったのですが…

画像が出ない!
Windowsを再起動して実行し直すと画像が初回のみ出る…

下記ページで応急処置的なものが書かれていました。
Titanium 1.7.0 ImageView not displaying remote images » Community Questions & Answers » Appcelerator Developer Center

SDカードを外した状態で動かすと画像が出るとのこと。
私の環境でも試したところ、無事画像が表示されました。
しかしSDカードを使うアプリを使う場合は、使えそうにないですね…

この画像が出ない症状を調査するだけで1日かかってしまいました…orz

原因と対処方法

・原因
fastDev機能(Androidエミュへのインストールが高速化される)をOnにするとWindows版の開発環境で画像が出なくなる。
(何故でなくなるかまでは調べきれていません…)

・対処方法
下記コードをtiapp.xmlに追加することでfastDev機能がOFFになり画像が出るようになります。
しかし、fastDevを使わない場合のエミュへのインストールはかなり遅いです…

<property name="ti.android.fastdev" type="bool">false</property>

Macでの開発だとこの画像が出ない症状は起こらないらしいです。
Windowsでの開発は難しいかもしれません^^;

以上です。