移行先サイト
どうやって共通してコーディングできるようにするか考えないと、 二度手間が三度手間になりかねないのでどうやって両方の開発を一括で行っていくか自分の方針をまとめていきます。
一般的なネイティブの挙動は残しつつ、コーディングはきれいになる方法を考えていきます。
正直なところ1プロジェクトで複数のプラットフォーム対応を行うことに適しているのか判断がつきません。 APIやSutdioがこれらの対応に気を使ってつくられているのはありがたいのですが、手間がかかりすぎるような気がします。 ロジック部分だけどまとめ、テストまで終わらせておき、それぞれの環境向けにプロジェクトを作った方がいいかもしれません。 又は、両方のネイティブ開発になれているのであればTitaniumを使わずそれぞれ作るということも十分に選択肢としてあります。
自分が何を作るかによってどこまで共通化をするかが決まってくるので参考にはし過ぎないようにする。
環境の判別を行う方法です。
Ti.Platform.osname
値 | プラットフォーム |
---|---|
iphone | ios(iphone or ipod touch) |
ipad | ipad |
android | Android |
mobileweb | Web Browser |
Ti.Platform.nameやTi.Platform.modelでより詳細なバージョン(iPhone 4)などまでとることができますが、 あまり使うことはなさそうです。
分岐サンプル
if(Ti.Platform.osname=="android"){ //Android }else if((Ti.Platform.osname=="iphone")||(Ti.Platform.osname=="ipad")){ //iOS }
MenuボタンでMenuは表示しない。換わりにツールバーの形でボタンを表示する。
iOSでメニューボタンの代わりとなる挙動を実装するのは困難なので。
長押しでメニュー表示ということもありますが、それを説明しなければならなくので。
iOSではNavigationGroupを使って戻る機能を実装する。
Android | 戻るボタン |
iOS | NavigationGroup |
Cross-Platform Navigation Controllerを使って差異を吸収します。
使い方や挙動の概要は 2: A Cross-Platform Navigation Controller
の動画で説明されています。
TabGroupを使う方が簡単でしたね。