過去のトップページ日記2009.05.29
LaVie L(LL5504D)の冷却ユニットです。どうも熱暴走するクセがあるらしく、これもヒートパイプ内の冷却液が抜けたものだそうです。 iPhoneがヒットしたので、Apple App Storeが零細・個人プログラマー向けの市場として注目されているようだ(参考ページ)。9か月で10億ダウンロードを達成したとか、GoogleのAndoroid端末もAndoroid Marketを(参考ページ)、WM端末でもSkymarketを(参考ページ)、NokiaもOvi Storeを(参考ページ)、BlackBerry App Worldを(参考ページ)、SUNもJava Storeを始める(参考ページ)とか、一気にアプリケーション販売オンラインストアが賑わってきた。 しかし元祖アプリケーション販売システムといえば、日本のケータイ・キャリア達であろう。App Storeは2008年7月スタートだが、NTT DoCoMoのiアプリは2001年1月からはじまっていて、実に7年半も先行している。KDDIのEZアプリ(Java)は2001年7月から、vodafone(現SBM)のV!アプリ(現S!アプリ)は2001年6月から開始なので、概ね日本が先行してきたと言える(WILLCOMは2005年9月からだが、それでもiPhoneの販売前からやっている)。月額で課金ができるのも、現状では日本のケータイだけだ。日本ではケータイ・アプリ販売は一般に定着していて、前世紀ではケータイに入っていたゲームは1種類で、しかも追加変更が不能だったとか若い子はきっと分からないぐらいだ。 しかし日本のケータイ・アプリは、零細・個人プログラマーが勝手アプリを作ることができるのに、一部を除いた携帯電話会社は、零細・個人プログラマーが対価を得る仕組みを作ってこなかった(vodafoneは、2004年4月からアプリ★レジで零細・個人開発者にアプリ販売の決済手段を提供している)。iPhoneが牢獄破りをしないと勝手アプリを作れない一方で、App Storeで課金サービスを提供しているのと対照的だ。日本の商習慣はオープンではなくて、機械的に手続きを処理しないので、商売をしたい零細・個人プログラマーには今まで冷たかったといえる。また、勝手アプリはサンドボックス内で機能が制限されてしまうので、端末の性能を生かすには、無料アプリでも審査をしたほうが、アプリケーションの機能的にも可能性が広がると言えるだろう。 よくよく考えてみると、発想的には20年前からあるVectorの商売と変わらない気もするが、やはり知名度のあるAppleが始めるところが意義が大きい。時代が変化するには、新規性だけではなくて、タイミングやプレイヤーも重要だと言うことであろう。とはいえAppleの独壇場というのも面白くはない。国内の通信事業者も、既にJ2ME+αのアプリケーション・プラットフォームを持っているのだから、零細・個人プログラマー向けのアプリケーション販売オンラインストアを提供して競合して欲しいものです。
画像元ページ:Yahoo!オークション
Trackback Ping-URL: http://uncorrelated.no-ip.com/cgi-bin/trackback/20090529
あらしの為のTipsWILLCOM端末でJ2MEアプリを作るときの注意事項。 J2MEといってもJava仮想マシンごとに、挙動がちょっと違う。手元のマシンで動いていても、公開してアレ?って事もありそう。そこで自作ミニゲームを、WX310SA、WX320K、WX330K、Advanced/W-ZERO3[es]、フルチェンケータイ re(KDDI au端末)でテストして気づいたことを、ウダウダと書く。 なお、インターネット上に山ほど資料があるわけだが、J2ME自体は2006.01.01、J2MEの開発は2006.03.01、EclipseMEについては2006.04.23のTipsを参考のこと。 1. キーコードJ2MEのJava仮想マシンであるJV-Lite2とJBlendで、Canvasクラスの十字キーの上下左右のキーコードが異なる(GameCanvasを使えば恐らく一緒)。JV-Lite2は、Canvas#UP #DOWN #LEFT #RIGHTが、JBlendは、-1 -2 -3 -4のキーコードが割り当てられている。しかし、これらのキーコードはJ2MEの仕様的なモノではないので、使わない方が良い。 正しく十字キーの入力を得るなら、Canvas#keyPressed(int KeyCode)内で、数字キーをKeyCodeからswitch分岐したあと、default処理内でCanvas#getGameAction(KeyCode)してCanvas.LEFTなどを特定する必要がある。分岐を2段にしないといけないのが、やや煩雑。 2. MIDlet-Jar-URLJBlendは、jadファイルのMIDlet-Jar-URLプロパティーがhttp://〜から始まる絶対パスでないと、「インストールは失敗しました。(errno=907)」が表示され、インストールできない。 3. 画面遷移とクラス設計フォームやCanvasクラスを切り替えて使うのもアリだが、Canvasクラス内でデザイン・パターンのStateパターンを使うとすっきりする。たぶん。 4. JSR-75 FileConnection APIデータフォルダーとSDカードのパスが、file:///data/とfile:///SD/になっている。 5. JSR-75 PDA Optional Packages for the J2ME™ PlatformWILLCOM 9、LU、BAUM、WX340Kは、PIM用のAPIをサポートしている。つまり住所録やカレンダーの情報を参照できる。なお存在しないAPIを叩くと、例外(NoClassDefFoundError)が出るので、古い機種用の処理は必須。 6. 国際化MIDlet#getAppProperty(String key)で、ja_JPみたいな情報が取れるだけでサポートはない。JSR-238 Mobile Internationalization APIを使えばもっと楽になる(参考ページ)が、現行機種でのサポートは少ない。 7. サウンド再生PCM(WAV形式)が再生できない機種がある。ゲームで衝突音などをどう再現すればいいかが謎。また、MIDIを使っていても、多重和音などを駆使したものは容量が大きいので、容量が小さい方が望ましいJ2MEではBGMの選定も大事になる。 8. 位置情報/カメラAPI新しいバージョンのJV-Liteは、位置情報APIとカメラAPIを実装している。パッケージ名にjvliteが入っているので、WILLCOM独自機能というか、JV-Liteの機能だと思われるが利用しがいはあるかも。もっともW-ZERO3シリーズは使えなかったりするので、なんとも中途半端な感じがします。JV-LiteとJBlendで両方を同じようにサポートできる統一クラスを、WILLCOMで作るべきなんじゃないだろうか。 9. 通信W-ZERO3シリーズは、通信先で特に制限はない。WX340K以降はダウンロード元のみ通信、それ以外は公式アプリ以外は通信不可。 10. 隠し属性ファイルのアーカイブバージョン管理システムなどで使っている隠し属性のディレクトリーごと、jarにアーカイブされてしまうので注意が必要。Eclipseの場合は、Javaのビルド・パスのソース・タブで、.git/*を除外指定すれば良いが、忘れていると妙に大きなアーカイブができあがる。 11. オープンアプリの情報auのオープンアプリが比較的純粋なJ2MEになるので、WILLCOM端末用の開発でも参考になるし、情報が多い。アプリゲットのオープンアプリ・ゲームコンテストのアプリ開発講座や、KDDI au 技術情報など。 オープンアプリはJBlend製BREWアプリのJVMらしいが、2009年夏モデルも概ね搭載になっているようだし(対応機種一覧)、au/WILLCOMの両端末開発という形で補完できるのかも知れない。 なお、WILLCOM端末はブラウザーにJADファイルへの関連付けがあるが、au端末には無くてdevice:jam?〜.jadのようにリンクを書かないとインストールしてくれません。au端末で動かすのに、最初ちょっとはまった。auの解説ページにしっかり記載があったのに(>_<)。 まとめプロのJavaゲーム開発者だと、この辺はノウハウは常識だと思われるが、最初にいじるとはまるかも。デスクトップ用のJ2SEに比べると小規模なので状況の把握は楽だが、端末進化にあわせて容量的にも、機能的にも端末ごとの差異が大きいので注意が必要。汎用的で実用的なアプリケーションを書くには、色々と機転が必要になりそうです。 参考ページ注意
|
過去ログ |