Codename OneとはJavaOne2012で取り上げられたCodename One社のオープンソースプロジェクトで、Javaで書いたコードがAndroidやiOSデバイスでスムースに動くネイティブコードに変換するコンパイラと各デバイス向けのUIキットが一体となったソリューションとなっている。
NetBeans、Eclipse向けのプラグインも提供されており、Androidアプリ開発のように気軽にIDE環境で開発できる。
アプリ開発の仕方
まずプラグインを入れます(笑)
eclipse用プラグイン:
Eclipseプラグインをインストールすると新規プロジェクトでCodenameOneProjectがリストに追加されます。
作成時にUI周りの設定等があるが、この辺りはAndroidアプリ開発のプラグインと同じような感じでしょうか。
デフォルトでプロジェクトを作成すると3つのJavaソースといくつかのリソースファイルが生成されます。
* アプリ名称.java(デフォルトはMyApplication)
メインのクラスで初期化処理やStateMachineのインスタンス生成やアプリ終了時の処理などを行う。
* StateMachineBase.java
GUI Builderで自動生成された画面のクラス。
コメントにはDO NOT MODIFY\!と書かれているのでいじらないようにしよう(笑)
* StateMachine.java
StateMachineBaseを継承したクラスで、GUI周りのコードをここに書く。 例えば、ボタン押下時のイベント処理のメソッドなど。
AndroidアプリでのScreenクラスのようなメインの実装クラスだろうか。。
* theme.res
GUI Builderで自動生成されたGUIコンポーネントの定義ファイル。
このファイルを開くとGUI Builderが起動する。
GUI BuilderはAndroidアプリ開発時のactivityのグラフィカルエディタのようなもので
部品を追加したりするとコードが自動生成されたりする便利なやつ。
なお、実行構成にシュミレーターでの実行設定が作成されるので、
簡単にシュミレーターでのテストができる。
サンプル実装
* 試しにデフォルトのプロジェクトにGUI Builderでボタンを追加して、EventsタブでActionEventを登録する。
* 追加したボタンに対応するメソッドが自動生成されるので処理を書く。
* iPhoneアプリはIOSデベロッパーの登録が必要なので今回はエミュレータで実験(笑)
* EclipseのCodenameOneのメニューからAndroidアプリでのビルド依頼をCodenameOneのサイトに投げる。
* ビルド完了後にCodenameOneのサイト上で生成したアプリをダウンロードするURLのQRコードが表示される。
* 実機でキャプチャするのが面倒なのでAndroidエミュレータで実行。
iPhoneアプリと同じくボタンを押すとダイアログが出ましたw。
とまぁ、こんな簡単な実験結果ではあるが、iPhoneアプリを開発するのにObjective-Cを覚えるのはなぁという方やTitaniumMobileやPhoneGapうーんというJava一筋な方にはうってつけではないだろうか。
もちろん筆者はJava一筋派なので、興味津々ですw
コメント