はてなで、

「Javaでコーディングしたアプリを、iPhoneやiPadで動かすことはできますか?
できるとすれば、その方法を教えてください。」
という質問をしたところ、

無理。
・AppStoreから入手したアプリ以外はiPhoneにインストールできない。
・iPhone用のアプリはObjectiveCのみで、Java用の開発環境はない。
・Javaからのソースコードコンバーターの使用は禁止されている。

可能。
・XcodeでJavaを選択すればよい。

という、不可能/可能 両方のご回答があったのですが、結局どっちなんでしょうか。

なお、私としては、
・AppStoreに並べたいです。
・iPhone/iPad 両方で動かせるものにしたいです。

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2010/05/14 02:53:27
  • 終了:2010/05/21 02:55:02

回答(4件)

id:Committeeman No.1

Committeeman回答回数153ベストアンサー獲得回数192010/05/14 03:04:18

http://journal.mycom.co.jp/articles/2010/04/09/ip4sdk/index.html

iPhoneアプリはiPhone OSやWebKitで実行可能なObjective-C/C/C++あるいはJavaScriptで必ず記述されなければならない

id:Bombastus No.2

ホーエンハイム回答回数409ベストアンサー獲得回数522010/05/14 07:32:43

ポイント30pt

不可能になるかもしれません。


4月10日、アップルはiPhone SDK 4.0β版の公開に合わせ利用契約を変更しました。

新しい利用契約によると、iPhone/iPadの開発言語は Objective-C, C, C++およびJavaScriptで書かれていなければならず、従来利用できたJavaは外された模様。

ただ、この変更は開発者の間で物議を醸しており、再度変更になるかもしれません。

id:iPad-n-iPhone-Programming

ありがとうございます。

2010/05/17 15:00:32
id:australiagc No.3

australiagc回答回数467ベストアンサー獲得回数902010/05/14 09:32:11

ポイント30pt

前回の質問で回答したものです。

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を勉強することをおすすめします。

id:iPad-n-iPhone-Programming

大変参考になりました。ありがとうございます。

2010/05/17 15:02:39
id:chyopper No.4

chyopper回答回数416ベストアンサー獲得回数692010/05/14 12:46:08

ポイント30pt

FlexyCore iSpectrumを使えば動作可能です。

http://www.flexycore.com/

http://ryokan.cocolog-nifty.com/oshohsan/2010/03/javaiphone-d353...

これはEclipse(Java Development Tools)のプラグインソフトで、Javaコードを

コンパイルすると、自動で Objective-Cコードに変換されiPhoneアプリができる

というツールです。

 

しかし、デベロッパライセンス規約のクロスコンパイラ禁止がネックとなり

AppStoreには登録出来ないと思います。

id:iPad-n-iPhone-Programming

おお、ありがとうございます。(コンパイルしたことが、コンパイル後のソースに残ってしまうのでしょうか?)

2010/05/17 15:03:23

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません