- ベストアンサー
携帯アプリにおけるJava
開いていただいてありがとうございます。 先日ようやく「月額XXX円」のような立派な携帯アプリ(ゲームですよ)を落としてみて驚いたのですが、とてもJavaで動作しているとは思えないような処理が大変多くてびっくりしました。さすがにDirectXなんかを使っているとは思いませんが、携帯専用で特殊な拡張機能があるのかどうか調べてみたのですが、どうにもよく分かりません。 自分は「Swingさえ使えてればJavaに限っては天下太平」な人間だったのですが、実際に動いている華麗な画面を見て少し気が変わりました。Java/GUIに関する知識が乏しいので(というかSwing以外にJava/GUIって何よ?な状態ですが……)どうにも検討がつかないのですが、「携帯で見劣りのしない動作をさせる」ことを目的とするのならば、どのような技術を用いればいいのでしょうか? ヒントほどで構いませんので、よろしければご教示お願いいたします。サンプルソースなどを公開している場所がありましたら、お知らせいただけるとありがたいです。 ※参考までにプレイしたゲーム(DoCoMo) ・DQ1/DQ2(あのDQフォントはわざわざ作成してるんだろうか……) ・スペクトラルフォースシリーズ
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
携帯用Java開発にはDoJaという専用のライブラリを使用します。 [参考]DoJa-5.1プロファイル向けiアプリ開発ツール http://www.nttdocomo.co.jp/service/imode/make/content/iappli/tool/doja51/ DoJaの使い方は以下を参考に。 [参考]NTTドコモの公式開発ツールを使おう http://www.atmarkit.co.jp/fmobile/rensai/doja01/doja01.html 通常のJavaアプリでもSwingより高速動作(各OSネイティブ描画)するSWT(Standard Widget Toolkit)が使用されていますよね。 Javaでプログラミングされているのであれば、Eclipseは常用されていると思いますが、EclipseはSWTで構成されたJavaアプリです。(元々Eclipse用に作られたのがSWTですし。) [参考]SWT Tips and Samples - Java + SWT でスタンドアローンアプリケーション開発 http://cjasmin.fc2web.com/
その他の回答 (1)
ケータイJavaは、だいたいJava MEをベースにしてある。iアプリの場合はJava MEの土台となっているCLDC + DoJaというdocomo独自ライブラリになっている。この場合、GUIの実装は、AWTのしょぼいやつという感じで、ごく初歩的なものしかない。通常は、Canvas(あるいはそれと同等のもの)を使って、すべてグラフィックとして実装しているはず。要するに全部「絵」だな。 あとは、たとえばiアプリであれば、3Dライブラリをもっているので3次元のモデルを用意して動かすこともできる。これはiアプリの場合、マスコットカプセルという3Dライブラリを使ってる。 とりあえず、iアプリであればDoJaの基本ライブラリと3D関係を使えるようになれば、ほぼゲーム的なものは作れると思う。ソフトバンク系は、Java MEベースになるので多少違いがあるので、こっちはCLDC + MIDPの使い方をマスターする必要がある。 ちなみに、パソコンのJavaの世界も、GUIはSwing一辺倒からJavaFXなんかにシフトするかも知れないし、とても天下泰平とはいえないだろうな。
お礼
ありがとうございます。 どうも携帯アプリの根本というよりも、Javaに対する知識の薄さが露呈したという感じで恥ずかしいです。前時代的に「携帯なんて大したことできないでしょ」と高をくくっていたのでびっくり仰天と言いますか……。3Dライブラリまで用意されてたんですね。 ちなみに「天下太平」は密かに過去形で書かれてます。 学習量に対する使用頻度のコストパフォーマンスが著しく悪いので手を引くつもりだったんですよね、携帯アプリ落とすまでは。ゲームの力ってやっぱり直感的でいいですね。
お礼
ありがとうございます。 DoCoMoが独自のJavaを用意しているという話は聞いていたので「面倒なこっちゃな……」と感じた覚えはあります。試しに開発環境をセットアップしてみたのですが、最新の携帯に合わせるとすごいことになる……^^; SWTは何となく聞き流していたので合点がつきました。Javaは本職からほど遠い(EclipseはRuby開発環境ですよw)とはいえ、あほらしすぎる質問だったようで申し訳ありません。 参考URLまでわざわざありがとうございました。