なんじゃくにっき

プログラミングの話題中心。

Android / iOS共用プロジェクトを作る

AndroidiOSで同じ内容のアプリを作るのに別々にコードを書くとめんどくさいので、
write onceで済ませたい、といったときに取る方法。


1. WebViewを使って共通のHTML/JavaScriptをそれぞれから読み込む。
 特にフレームワークを使わないやり方。
 JavaScriptを多用すると画面が重くなります。
 静的なHTMLかちょっとした動きしかない画面にしか向かない。


2. Titanium Mobile
 http://www.appcelerator.com/platform/titanium-platform/
 開発言語はJavaScript
 ネイティブのバイナリを生成する・・みたいなんだけど、
 やっぱりアニメーションごりごりには向いてない。


3. Phone Gap
 http://phonegap-fan.com/
 HTML5JavaScriptを使ったWebViewベースのフレームワーク
 プラグインを作ればネイティブのAPIも叩ける。


4. enchant.js
 http://enchantjs.com/ja/
 JavaScriptで書かれたゲームライブラリ。
 上記PhoneGap等と組み合わせることができる。
 enchant.jsベースの開発環境としてenchant PROがある。
 http://enchantjs.com/ja/enchant-pro/
 これを用いることでenchant.jsからネイティブAPIを叩けるようになる。


5. Emo Framework
 http://www.emo-framework.com/
 現在開発停止中みたい・・
 作者ブログによると現在はTitanium用ゲームエンジンを作っている模様。
 http://d.hatena.ne.jp/infosia/



■とりあえずここまでの雑感。
基本的にWebViewでのJavaScriptを用いてのアニメーションが遅いせいで、
WebViewベースのフレームワークを使ってのゲーム開発は向いてない。
動きが激しいアプリを作るなら現行機種向けだとネイティブアプリじゃないと厳しい感。 
 

6. Unity
 http://unity3d.com/
 マルチプラットホーム3Dゲームエンジン
 iOS/Android以外にもWindowsWindows Phone用のアプリも書き出せる。
 開発言語はUnityScript(JavaScript)、Boo(Python)、C#
 恐らくBooが一番記述力が高いがドキュメントが少ない。
 Free版とPro版(有料)がある。
 最低限iOS/Android用に書き出すだけなら無料版でOK。
 但し現行バージョンの4に限るのと、前年度の売上が10万ドル以内という条件がある。
 Pro版とFree版の違いは以下参照。
 http://japan.unity3d.com/unity/licenses
 2Dゲームも作ろうと思えば作れる。
 Asset Store(Unityのプラグイン等を販売するシステム)で2D用ライブラリが手に入る。


7. Project Anarchy
http://www.projectanarchy.com/jp
モバイル向けマルチプラットホーム3Dゲームエンジン
 開発言語はC++/Lua
先月(2013/06)リリースされたばかり。まだドキュメント少なめ。
 Free版とPro版(有料)がある。
 Free版でもAndroid/iOSには書き出せる。


8. Cocos2d-x
 http://www.cocos2d-x.org/
 オープンソースの2Dゲーム開発ライブラリ。
 物理エンジン搭載。
 iOS用の2Dゲーム開発ライブラリのCocos2dの後継。
 開発言語はC++
 プロジェクトの初期設定がめんどい。
 iOS版はXCodeAndroid版はEclipseで開発することになる。
 

9. Marmalade SDK
 https://www.madewithmarmalade.com/sdk
 クロスプラットフォーム対応のソフトウエア開発キット


10. Itoa Project
 http://www.itoaproject.com/
 iOSのバイナリからAndroidのバイナリを生成する。
 「プロジェクトに貢献しないとPublishするためのライセンス発行しないよ。
  将来的には商用ライセンスも作る。」
 みたいなことが書いてあるけど実質今は開発停止中みたいなので
 これ使ってアプリ作るのは無理みたい。
 


11. Apportable SDK
http://www.apportable.com/
iOSのバイナリをAndroidのバイナリに変換する。
 Cocos2d(Cocos2d-xではない)で作られたゲームの変換実績があるらしい。
 Free, Indie, Pro, Enterpriseの4つのライセンスがある。
 Free版だとAndroid 4.0以降にしか書き出せない(Indie以上なら2.2以降)。
 

12. Flash
 iOS上ではFlashが動かないと思われがちだが、
 Adobe AIR上なら動きますよ!
 勿論開発言語はActionScript




ロスプラットホームの3Dゲームを作るならやはりUnityがシェア一番な感じ(?)

iOS用バイナリからAndroid用バイナリを生成するものは、
対応範囲がどれだけなのか気になるところ。