「Javaでコーディングしたアプリを、iPhoneやiPadで動かすことはできますか?
できるとすれば、その方法を教えてください。」
という質問をしたところ、
無理。
・AppStoreから入手したアプリ以外はiPhoneにインストールできない。
・iPhone用のアプリはObjectiveCのみで、Java用の開発環境はない。
・Javaからのソースコードコンバーターの使用は禁止されている。
可能。
・XcodeでJavaを選択すればよい。
という、不可能/可能 両方のご回答があったのですが、結局どっちなんでしょうか。
なお、私としては、
・AppStoreに並べたいです。
・iPhone/iPad 両方で動かせるものにしたいです。
http://journal.mycom.co.jp/articles/2010/04/09/ip4sdk/index.html
iPhoneアプリはiPhone OSやWebKitで実行可能なObjective-C/C/C++あるいはJavaScriptで必ず記述されなければならない
不可能になるかもしれません。
4月10日、アップルはiPhone SDK 4.0β版の公開に合わせ利用契約を変更しました。
新しい利用契約によると、iPhone/iPadの開発言語は Objective-C, C, C++およびJavaScriptで書かれていなければならず、従来利用できたJavaは外された模様。
ただ、この変更は開発者の間で物議を醸しており、再度変更になるかもしれません。
前回の質問で回答したものです。
iPhoneSDKを使ったiPhoneプロジェクトの場合、「XcodeでJavaを選択」なんてことはできないと思いますが・・・。
確かにXCodeでJavaの開発を行うことは可能ですが、iPhoneSDKはこれに対応していません。
そもそもJavaのプログラムを起動させるにはJavaのRuntimeが必要なわけですが、iPhoneにはJava Runtimeがサポートされておりません。
XCodeとiPhoneSDKなら、公式サイトから無料でダウンロードできますので実際にご確認いただければ分かると思います。
http://developer.apple.com/technologies/xcode.html
また、iPhoneSDKのリファレンスもご覧いただければ分かりますが、これは全てObjectiveC(Cocoa)です。
仮にiPhoneがJavaをサポートするようになったとしても、SDKのためのコードリファレンスやサンプルコードがなければプログラミングは無理でしょう。
どうしてもJavaではなくてはならず、AppStoreで配布を行いたいということであれば、1つ苦肉の策があります。
http://blog.taragana.com/index.php/archive/how-to-install-compil...
iPhone doesn't natively support Java / J2ME.
(iPhoneはネイティブではJava / J2MEをサポートしていない。)
alcheMo for iPhone contains translator to convert J2ME application source code to equivalent C++ source code for iPhone.
(alcheMo for iPhoneはJ2MEアプリのソースコードを、同等のiPhone用のC++(ObjectiveCの間違え)のソースコードへ変換することができる。)
このalcheMoというソフトですが、Innaworks社の試験製品になります;
http://www.innaworks.com/alchemo-for-iphone-java-me-j2me-to-ipho...
ただ、現在は試験期間が終了してしまっていて、正規ルートでの入手は困難だと思います。
ベータ期間中に入手した人がトレントなどで公開しているものを探すしかないですね。
製品化される予定だったのですが・・・最近、そういった話は聞かなくなってしまいましたね。
iPhoneSDK自体が頻繁にアップデートされるので、対応が難しいのかもしれません。
いずれにせよ、alcheMoを使ったところでObjectiveCとIBを理解していないとちゃんとしたアプリを作るのは困難です。
もっとも大きな弊害を述べると、Cocoa for iPhoneにはお粗末なことにガベージコレクション機能がないのです。
メモリ管理が必要の無いJavaのソースをそのままiPhone用に変換したところで、まず確実にメモリ不足でアプリがクラッシュしてしまうでしょう。
普段から気をつけてプログラムを書いている経験者でも、テスト・デバグ期間の半分はメモリの効率化に費やすぐらいですから、
Javaから変換したソースコードともなれば相当な手間隙を割く事になると思います。
結論から言うと、ネイティブではないJavaでのAppStore配布用アプリの開発は困難です。
素直にObjectiveCを勉強することをおすすめします。
大変参考になりました。ありがとうございます。
FlexyCore iSpectrumを使えば動作可能です。
http://ryokan.cocolog-nifty.com/oshohsan/2010/03/javaiphone-d353...
これはEclipse(Java Development Tools)のプラグインソフトで、Javaコードを
コンパイルすると、自動で Objective-Cコードに変換されiPhoneアプリができる
というツールです。
しかし、デベロッパライセンス規約のクロスコンパイラ禁止がネックとなり
AppStoreには登録出来ないと思います。
おお、ありがとうございます。(コンパイルしたことが、コンパイル後のソースに残ってしまうのでしょうか?)
ありがとうございます。