モバイルアプリケーション開発に最適なツール

新しいテクノロジーの採用が成功するかどうかは、多くの場合、その開発ツールに依存します。優れたツールは、新しい開発者がより簡単に始められ、経験豊富な開発者の生産性を高めるのに役立ちます。たとえば、Microsoftのプログラミング環境の成功は、VisualStudioツールの成功と密接に関連しています。

J2ME(Java 2 Platform、Micro Edition)テクノロジは、まだ比較的新しいものです。強力な開発ツール、特にIDEは、ワイヤレスアプリケーション開発者の間でのJ2MEの採用に大いに役立ちます。この記事では、4つのJ2MEIDE製品を確認します。

  • MobileSet3を搭載したBorlandJBuilder 7 Enterprise
  • SunMicrosystemsのSunONE(オープンネットワーク環境)Studio 4 Mobile Edition
  • Metrowerks CodeWarrior Wireless Studio 7
  • S5 SystemsのjVise(IBM Eclipseテクノロジーに基づく)

J2ME開発ツールの展望

ワイヤレスデバイスが異なれば、メモリサイズ、画面サイズ、入力方法、および計算速度の点で制限が異なります。また、ベンダーのJ2ME実装には、基盤となる特別なハードウェア/ OS機能を活用するベンダー固有のアドオンAPIが含まれている場合があります。

多様化したデバイス市場は、当然、多様化した開発ツールをもたらします。各デバイスベンダーには、独自のSDK、デバイスエミュレーター、およびパフォーマンス分析ツールがあります。一部のSDKには、独自のビルドプロジェクト管理ツールとソースコード編集ツールが付属しています。一例として、SunのJ2ME Wireless ToolKit(J2MEWTK)があります。 J2MEWTKには、J2ME / MIDP(Mobile Information Device Profile)のリファレンス実装が含まれており、Unix / LinuxおよびWindowsプラットフォームで実行される複数のデバイスエミュレーターがあります。 J2MEWTKには、パフォーマンスプロファイルツールと実際のメモリ使用量モニターもあります。これらのツールはすべて、kToolBarと呼ばれる中央のコントロールパネルから管理できます。 kToolBarは、開発ディレクトリからすぐにデプロイできるJAR / Jadプログラムをビルドしてパッケージ化することもできます。ただし、これらすべてのツールを習得し、すべてのエミュレーターでアプリケーションをテストするのは面倒な場合があります。

J2ME IDEは、デバイスベンダーのSDKを他のツールと統合することにより、開発を容易にします。開発者は、サポートされているすべてのSDKに統合されたIDEインターフェイスを使用できます。IDEは、開発者の生産性と成果物のアプリケーションの品質も向上させます。

誰がIDEを使うべきですか?

初心者の開発者にはIDEをお勧めしません。このような開発者は、Java言語、J2ME APIとパッケージ、IDE自体など、いくつかの異なることを一度に学ぶ必要があります。IDEの便利な機能は、内部で実際に起こっていることを簡単に覆い隠す可能性があります。最終的に、特定のIDEに関連付けられた一連のスキルを開発することになります。ただし、自分が何をしているかをすでに知っている場合は、IDEが役立ちます。彼らは経験豊富な開発者のために多くの退屈なプロセスを自動化することができます。

J2MEIDEバイヤーズガイド

この記事のJ2MEIDEを、次の側面に従って評価しました。

  • 一般的な生産性機能: J2MEに固有の機能ではなく、すべてのJava開発プロジェクトに有益な機能を評価しました。これらの機能には、エディター、プロジェクトマネージャー、デバッガー、アーキテクチャデザイナー、ドキュメントツールに加えて、高度なプログラミング手法(リファクタリング、単体テストなど)用のツールが含まれます。
  • サードパーティのSDK統合:複数のSDKのサポートは、すべてのJ2MEIDEのコア機能です。しかし、IDEベンダーは、個々のSDKのサポートを追跡および統合するのに苦労しています。 Unified Emulator Interface(UEI)仕様は、SDKとIDE間のプログラミングインターフェイスを標準化します。 UEI互換のSDKとIDEは相互に動作することが保証されています。私の評価では、IDEがすぐにサポートするSDK、IDEがUEIをサポートするかどうか、プロジェクト内でSDKを切り替えるのがどれほど難しいかについて説明します。
  • コンパイル後のツール: J2MEアプリケーションは、高レベルのセキュリティとパフォーマンスを必要とするモバイルアプリケーションです。コードの難読化は、人々がクラスファイルをリバースエンジニアリングするのを防ぎ、コードサイズを減らすことができます。特別な最適化手法は、IDEベンダーとそのパートナーから入手できます。 J2MEアプリケーションは、特定のデバイスタイプで使用可能なリソースに基づいて、後処理し、展開デバイス用に最適化することもできます。これらの後処理、難読化、および最適化ツールは、このコンパイル後のカテゴリに分類されます。
  • 無線(OTA)展開のサポート: J2MEアプリケーションは、多くの場合、パブリックワイヤレスネットワークを介して展開されます。 J2ME OTA仕様は、モバイルJavaアプリケーションの検出、ダウンロード、認証、承認、検証、および実行のプロセスを標準化します。 OTA仕様では、サーバー側に適切にフォーマットされたメタファイルが必要であり、モバイルデバイス側にJava Application Manager(JAM)が必要です。サーバーには、OTAメタタイプをサポートするための特別な構成も必要です。 OTAプロセスは、MIDP2.0の今後のリリースで非常に複雑になる可能性があります。 IDEは、これらのメタファイルを自動的に生成するのに役立つはずです。優れたIDEは、OTA準拠のJAMクライアントも統合して、IDE内での展開をテストする必要があります。
  • エンドツーエンドのモバイルアプリケーション開発: J2MEデバイスは、それ自体で大量の情報を処理または保存するほど強力ではありません。J2MEアプリケーションは、多くの場合、一部のバックエンドエンタープライズアプリケーションサーバーのシッククライアントです。したがって、一流のIDEにより、開発者はエンドツーエンドのプロジェクト全体を構築できるはずです。これにより、学習コストとプロジェクト調整の労力が最小限に抑えられます。
  • ドキュメントとチュートリアル: Javaモバイルアプリケーションの開発は、ソフトウェアエンジニアリングの多くの側面を含む洗練されたプロセスです。IDEは、多くのタスクを自動化するためのツールを提供します。ただし、開発プロセスは本質的に複雑であるため、初心者のプログラマーは、これらの機能を正しく使用するのが難しいと感じることがよくあります。チュートリアルと詳細なケーススタディは、IDEを効率的に採用するために不可欠です。
  • J2ME GUI(グラフィカルユーザーインターフェイス)ビルダー:一部のIDEには、開発者がモバイルユーザーインターフェイスを視覚的に構築できるRAD(迅速なアプリケーション開発)ツールがあります。これらのツールは、デスクトップの世界の開発者、つまりJ2SE(Java 2 Platform、Standard Edition)RADツールに精通している開発者にアピールします。ただし、J2MEビジュアルGUIビルダーの使用には注意が必要です。ワイヤレスデバイスは画面サイズが異なるため、同じUIデザインがさまざまなデバイスで異なって表示される場合があります。たとえば、PalmPDAは4つのコマンドボタンを連続して表示できます。ただし、携帯電話では、メニューボタンをクリックすると、4つのコマンドのリストから選択するように求められる場合があります。したがって、GUIビルダーに表示されるものは、特定のデバイスで最終的に得られるものではない場合があります。

MobileSet3を搭載したJBuilder7 Enterprise

Borland JBuilderは、Personal、Standard(SE)、およびEnterpriseの3つのエディションを備えた有名なJavaIDEです。すべてのJBuilderエディションは、Windows、Linux、Solaris、Mac OS Xなどの複数のプラットフォームで実行できます。JBuilderでのJ2ME開発をサポートするには、MobileSetというアドオンモジュールをインストールする必要があります。現在、MobileSetはWindowsでのみ実行されますが、より多くのプラットフォームのサポートが計画されています。

JBuilder Personalは、BorlandのWebサイトから無料で入手できます。 JBuilder SEの価格は99(2002年9月)で、Enterpriseエディションの価格は999です。 StandardエディションとEnterpriseエディションの両方の30日間無料トライアルライセンスをダウンロードできます。パーソナルエディションは無料ですが、ほとんど価値がありません。それはいくつかの基本的な生産性機能を欠いています。たとえば、パッケージ階層を介してソースコードを管理することすらできないため、多くのクラスを含む大規模なプロジェクトの開発が困難になります。

対照的に、JBuilder 7 Enterpriseは、Javaアプリケーション(特にJ2EE(Java 2 Platform、Enterprise Edition)アプリケーション)の設計、開発、テスト、および展開をサポートする豊富なツールセットを提供します。これは、Borland独自のJ2EEアプリケーションサーバー、Borland InterBase SQLデータベース、およびJava最適化ツールである同社のOptimizeitSuiteの試用版にバンドルされています。シュリンクラップされたソフトウェアには、3冊のチュートリアルドキュメントブックが付属しています。これらの本は、JBuilderの使用例を提供するだけでなく、一般的なJavaアプリケーション開発を学ぶための優れたリソースとしても役立ちます。

JBuilder 7エディションの上にJ2MEアプリケーションを開発するには、BorlandのWebサイトから無料でダウンロードできるMobileSetをインストールする必要があります。インストーラを実行した後、MobileSetは、既存のJBuilderインストールに新しいウィザード、コンパイル/ランタイム環境、およびメニュー項目を追加します。次のレビューは、JBuilder 7Enterpriseに焦点を当てています。

  • 一般的な生産性機能: JBuilder 7 Enterpriseは、一流のJava生産性機能を提供します。強力なエディター、コンパイラー、デバッガーを備えています。より高度な機能には、複数のJVMとランタイムのサポート、UML(Unified Modeling Language)視覚化ツール、アプリケーションロジックを設計するためのツール(ビジュアルEJB(Enterprise JavaBean)デザイナーなど)、統合された単体テストサポート、リファクタリングツール、およびjavadocツールが含まれます。エンタープライズアプリケーションの場合、JBuilderはWebおよびエンタープライズアーカイブ(WAR / EAR)の自動生成と、すべての主要なアプリケーションサーバーへの配置をサポートします。 JBuilderを使用すると、ソースコード管理用のCVS(Concurrent Versioning System)やカスタムビルド用のAntなどの強力なサードパーティツールをプロジェクトに簡単に統合することもできます。
  • サードパーティのSDK統合: JBuilderがサポートする唯一のJ2MEプラットフォームはMIDPです。JBuilder MobileSetは、J2MEWTK、Nokia、Siemens、およびSprint PCSSDKをサポートしています。ただし、MobileSetのダウンロード自体には、開始するためのJ2MEWTKのみが含まれています。他のSDKを個別にダウンロードする必要があります。JBuilderはUEIをサポートしているので、将来のほとんどのSDKをサポートすることを期待しています。このツールを使用すると、プロジェクト内の複数のJVMとランタイム環境を切り替えることができ、複数のプラットフォームの開発が簡素化されます。
  • コンパイル後のツール: JBuilder MobileSetには、RetroGuard1.1によるクラスファイルの難読化のサポートが組み込まれています。バンドルされているOptimizeitSuiteは、アプリケーションのサイズとパフォーマンスをさらに最適化します。
  • OTAデプロイメントのサポート: JBuilder Enterpriseを使用すると、MIDPプロジェクトのjarマニフェストファイルとjadファイルを簡単に生成できました。プロジェクトは、JBuilderの組み込みFTPクライアントを介して適切に設定されたリモートサーバーに配置できます。ただし、JBuilderはサーバーを設定しません。JBuilderに統合されたOTA互換のクライアント側JAMを使用して、デプロイされたアプリケーションをテストできます。
  • エンドツーエンドのモバイルアプリケーション開発: JBuilder 7 Enterpriseには、J2EEバックエンドアプリケーションサーバーを開発するための優れた機能があります。エンドツーエンドのアプリケーションは、完全にJBuilder内で開発できます。
  • ドキュメントとチュートリアル: JBuilder 7 Enterpriseに付属する3冊の本はすべて、BorlandWebサイトからHTMLバージョンとPDFバージョンの両方で無料で入手できます。Borlandには、ダウンロード可能なMobileSetチュートリアルブックやその他の多くの優れたドキュメントもあります。JBuilderのドキュメントサポートは優れています。
  • J2ME GUIビルダー: MobileSetにはMIDPGUIビルダーが付属しています。JBuilderでGUIコードを作成するのは非常に簡単です。

Sun ONE Studio4モバイル版

以前はForteforJavaとして知られていたSunONE Studioは、NetBeansテクノロジを使用して外部モジュールをIDEに統合します。Sun ONE Studioには、Community、Mobile、およびEnterprise forJavaの3つのエディションが付属しています。コミュニティエディションとモバイルエディションは無料です。Enterprise for Javaのコストは995で、高度なJ2EE開発およびデプロイメント機能を備えています。Enterprise for Javaの60日間無料トライアルライセンスは、SunのWebサイトから入手できます。

Sun ONE Studioは、オンラインおよびCDで配布されます。CDには、サポートされているすべてのプラットフォーム上のSun ONE Studio 4のすべてのエディションと、J2SEおよびJ2EEが含まれています。インストールは簡単です。

Mobile EditionにはJ2MEサポートが事前構成されていますが、IDE機能は限られています。J2MEワイヤレスモジュールをインストールすることにより、J2ME開発機能をCommunity and Enterprise forJavaエディションに簡単に追加できます。このモジュールはNetBeans仕様に準拠しており、Sun ONEStudioエディションと一緒にインストールできます。J2MEワイヤレスモジュールは、J2ME固有のテンプレート、ウィザード、メニュー項目、およびコンパイラとエミュレータの統合を提供し、J2MEWTKにバンドルされています。

Sun ONE Studioの強みの1つは、モジュラー設計です。サードパーティは、コンポーネントを簡単に提供し、IDEと統合できます。このようなモジュールの例には、UMLモデリング、リファクタリング、単体テストが含まれます。

Sun ONEStudioの無料版は私に感銘を与えました。私がお勧めする無料のJ2MEIDEは、Sun ONE MobileEditionまたはCommunityEditionとワイヤレスモジュールだけです。これらは、大規模で複雑なプロジェクトに非常に重要なIDE機能を提供します。Community Editionは、基本的なサーバー側アプリケーション開発機能も提供します。このエディションでは、サーブレットおよびデータベースアプリケーションを開発できます。Sun ONE Studioは、この記事でWindows以外のプラットフォームをJ2MEでサポートしている唯一のIDEです。以下のコメントは、Sun ONE Studio 4 Enterprise forJavaとワイヤレスモジュールに関する私の経験に基づいています。ただし、ほとんどは無料のCommunityEditionにも適用されます。