カスタム検索
ラベル iOS4 の投稿を表示しています。 すべての投稿を表示
ラベル iOS4 の投稿を表示しています。 すべての投稿を表示

2011年3月28日月曜日

FlexでiOSアプリを作ってみた。

AdobeAIR2.6も公開され、AIR for iOSも公式に実装される形になりました。
というわけでFlexでiOSアプリを作ってみます。
なぜFlexかというと、Flashはタイムラインの概念がどうにもわかりにくく扱いきれてないので・・・

必須なものはAIR2.6SDKとiOSのデベロッパー登録のみです。
コレを参考に。
FlashBuilderなんかがあるとビルド設定あたりは勝手にやってくれるので楽です。
FlashBuilderに最新版のSDKをいれ、新規アプリケーションを作成します。

はじめはWindowedApplicationが親になっているので、こいつをApplicationに変更。
BorderContainerにLabelいれただけでのHelloWorld作ります。

FlashBuilderであれば自動的に「プロジェクト名-app.xml」ファイルが出来ているので、これの中身を編集。
とりあえずiPhoneの部分を活かし、supportedProfilesをmobileDeviceに。
FlashBuilderが勝手にコンパイルしてくれるので、出来たswfとxmlを使ってadtでipaファイルにコンパイル。
ipaファイルができたらiTunesのAppに放りこんで実機と同期。

サクっとiOSアプリが完成しました。
特にFlexアプリケーションでも問題なく動くようです。
これを登録するときはApplicationLoaderを使うのかな?

アプリの方は若干起動が重い感じがしますが・・・。Flexベースなせいでしょうね、きっと。
Flashちゃんとやらないとなぁ・・・ああめんどくさい><
cocos2d for Flashとかあればいいのに!

でもこれでWin,Mac,Android,iOSとワンソースでいけるのはなかなか魅力的ですね!
あとはAirのランタイムが初回起動時にネット接続必須なのがなんとかなってくれるといいんだけどなぁ

2010年6月24日木曜日

iOS3のプロジェクトをiOS4に対応してみる

iOS4が正式に公開されたので、プロジェクトをアップデートしてみるテスト

iPhoneDevよりxcode 3.2.3 finalをインストール
古いxcodeやiPhone simulatorが立ち上がってたら落としておくこと。インストールに失敗する事があるので落としておく。
iTunesも途中で落とせと言われるので先に落としておくのが吉。

とりあえずそのまま以前のプロジェクトを実行してみる>エラー>あるある

UIView.h等で以下のようなエラーが多発
syntax error before '^' token

なぞい、コンパイラをGCC4.2からLLVM GCC4.2に変更すると回避出来るけど・・・
再度ビルド>エラー>ですよねー

今度はSBJSONでエラーが出てる
とりあえず最新版を落としてドキュメントを読んでみると、インストール方法が変わったらしい

追加SDKとリンカグラグをはずして、最新のオススメインストール方法(クラスコピーするだけ)に戻したらさっくり動いた
コンパイラの設定をGCC4.2に戻しても問題なし、と。なんだよ、ちょっと焦っちゃったヨ。

なんでJSON-Frameworkとか使ってないプロジェクトはそのままでいけると思う。
cocos2d(v0.99.3)に関しては今の所問題無し。

お次は実機に・・・と思ったらプロビジョニングされた実機がつながってないよ、と
どうやら実機をiOS4にアップデートしたら別物として認識されているっぽい
xcodeのオーガナイザからIdentifierをコピーして・・・と思ったら「デバイスを開発で使う」みたいなボタンが出ていたので押してみる。
iTunesConnectのIDをきかれ、xcodeからデバイスの登録が完了!
xcode上でiTunesConnectと連携出来るのね、これはイイ改良

HPから確認してみるとTeam Provisioning Profile: *というのが追加されていた
とりあえずこの状態で実機の動作確認もOK

シミュレータで注意しないといけないのが、HOMEボタンで終了ではなくなったので、HOMEおしてもタスクは実行中ということ(3G実機では終了されるけどね :p)
ここで新しいイベント(applicationDidEnterBackground)が飛ぶので、必要ならば処理を追加する。
コチラに日本語で詳しい内容がアップされています。
どうやらapplicationWillTerminateが呼ばれずに終わる事もあるそうで・・・?(本体ないし未確認)
終了処理はちょっと気を付けた方が良さそうです。

当面はiPhoneシミュレータを見ながらiPhone4が手元に届くのを待っています・・・