読者です 読者をやめる 読者になる 読者になる

titanium mobileメモ1

正しいか全く保証できませんが、メモがあるので残します・・。

twitterでやりたかったんですが文字数制限があって、解りづらくなりそうだったのでこちらで・・。

※何か間違いがあれば、即更新していきます。

・今月(2末)にsdk1.6が出て、それはandroid周りがかなり進歩しているらしい

・windowを、重ならせない状態で置くとしても、

2つ画面内に表示することは避けた方がよい。

iphoneでは問題無いが、androidでは起動の度に結果が違って、

出たり出なかったりと謎の挙動をしてしまう。

androidでWindowをrootにしている際、

サイズを指定していないと、別にバグでというわけではないが、statusBarが消える。

(fullScreen=falseでも結果は変わらず)

サイズを入れていないと、個人的には変な挙動に思えることが他の部分でもAndroidでは多かったので、

なるべく省略しないようにしている。

・画像(imageView、buttonも設定できるので該当しますね)のサイズ設定

'auto'→ヘルプにあるがiphoneでしか使えない

width、heightの設定をしない→iphoneでは出るがandroidでは出ない

よって、ちゃんと実数を入れないとだめと言うことになりました。

・となると各端末毎の解像度の差で置かれる位置違っちゃうのでは?と思いますが、

320×480サイズと考え、その位置で配置していけば、

androidの多様なサイズでは拡大縮小してくれるようです。

(※ただ横長とかそういうのは未確認)

・viewとwindowsの違い

windowsはrootになれるが、viewはwindowに追加していくことしか出来ない

2windowにwindowをaddすることは出来ない(表示されない)

3windowにurlプロパティがあるが、viewには無い。

4viewにwindowをaddすることは出来ない

urlプロパティはjsファイルに処理を任せられ、

構築をしやすくする重要なポイントだと思うので、

何でもviewでやらないで、windowをメインとし

上手く区分けて組んでいく方がいいという感じがします。

iOS4のバックグラウンド再生もサポートしている

http://developer.appcelerator.com/question/103081/navigation-group-in-tab

をまず初めのプロジェクトにするのは良さそう。

・基本、iphoneで言うところの"Navigation-based-Application"になる?

(windowのopenで、navigation baseのview移動になっているみたい)

・一度シミュレーターを起動したら、

変更したコードはviewを読み込むときに自動コンパイル?してくれるようで、

なんと、一回一回再起動しなくても変更が適用される。

(ただ、1枚のview、windowだけで動いているのであれば、

変更のタイミングが無いためこれを実感できない。

テーブルなどのナビゲーションがあり、戻る→もう一度入る

など読み込みをするときに、この処理を見ることが出来る。)

androidの場合、eclipse制作だと実機への転送が早く

(そしてAndroidエミュレーターがかなり重いので)、

かなりさくさく実機テストが出来ていたが、

titaniumは一度変換処理が入っているせいか、

それなりに時間がかかり手軽にテストはしにくい。

エミュレーターでの動作はeclipse同様重く、大きな差は感じなかった。)

iphoneシミュレーターの方は結構早い。

なので・・あまり無いとは思うが、

Androidの方をメインで開発するのはお勧めできない、ということになりますね。

iphoneはどこでエラーが起きているか表示してくれるが、

androidはそれが出るときと出ないときがある?

androidでtabGroupを使うと常に一番上に来てしまう。

つまり画面の上にロゴとか入れたいと思っても、

tabGroupの上にimageViewとかを入れることが出来ない。

(そもそもiphoneとtabViewはかなり表示違いしますしね・・)

http://developer.appcelerator.com/question/83661/android-tabgroup-placement

によるとこれはどうしようもないとのこと。

↑にリンクがあるが、自作の物を作成し配布している人がいるのでそれを使うことも出来るが、

(そのままtitaniumにインポートして動作させると動かなかったが、

新規にプロジェクトを作り、jsファイルとimageを全てコピーしたものであれば

動作した。しかし、iphoneでは問題無いものの、どうしてもandroid環境では頭で、

"IllegalArgumentException: Expected 2 arguments for log, got 1(app://app.js#77).

で落ちてしまい、動作させることが出来なかった。上記ページ内でも、結局解決していない模様・・)

なのでしょうがないのでwindowを切り替えるような仕組みで自前で作成・・しようとしたが、

iphoneの方は出来た物の、androidの方が、windowが画面内に同時に2つは置けない

(置くことは出来るが、出たり出なかったりしてしまう)ので、断念・・。

viewで何とか組んでいくことも考えたが、urlプロパティでファイルに分けていけない、

あとiphoneで特に、view遷移のアニメーションがviewへのaddだと無いので(windowのopenだとある)、

iphoneとの互換性を考えると・・。