Beste Tools für die Entwicklung mobiler Anwendungen

Die erfolgreiche Einführung einer neuen Technologie hängt häufig von ihren Entwicklungswerkzeugen ab. Gute Tools erleichtern neuen Entwicklern den Einstieg und machen erfahrene Entwickler produktiver. Beispielsweise hängt der Erfolg der Programmierumgebung von Microsoft eng mit dem Erfolg der Visual Studio-Tools zusammen.

Die J2ME-Technologie (Java 2 Platform, Micro Edition) ist noch relativ neu. Starke Entwicklungstools, insbesondere IDEs, werden die Akzeptanz von J2ME bei Entwicklern drahtloser Anwendungen erheblich unterstützen. In diesem Artikel überprüfe ich vier J2ME IDE-Produkte:

  • Borland JBuilder 7 Enterprise mit MobileSet 3
  • Sun ONE (Studio 4 Mobile Edition) von Sun Microsystems (Open Network Environment)
  • Metrowerks CodeWarrior Wireless Studio 7
  • JVise von S5 Systems (basierend auf der IBM Eclipse-Technologie)

Landschaft der J2ME-Entwicklungstools

Verschiedene drahtlose Geräte haben unterschiedliche Einschränkungen hinsichtlich Speichergröße, Bildschirmgröße, Eingabemethoden und Rechengeschwindigkeit. Außerdem können die J2ME-Implementierungen von Anbietern herstellerspezifische Add-On-APIs enthalten, die spezielle zugrunde liegende Hardware- / Betriebssystemfunktionen nutzen.

Der diversifizierte Gerätemarkt führt natürlich zu diversifizierten Entwicklungswerkzeugen. Jeder Gerätehersteller verfügt über ein eigenes SDK, Geräteemulatoren und Tools zur Leistungsanalyse. Einige SDKs verfügen sogar über eigene Tools für das Build-Projektmanagement und die Bearbeitung des Quellcodes. Ein Beispiel ist das J2ME Wireless ToolKit (J2MEWTK) von Sun. J2MEWTK enthält eine Referenzimplementierung von J2ME / MIDP (Mobile Information Device Profile) und verfügt über mehrere Geräteemulatoren, die auf Unix / Linux- und Windows-Plattformen ausgeführt werden. J2MEWTK verfügt außerdem über Tools für das Leistungsprofil und Monitore für die tatsächliche Speichernutzung. Alle diese Tools können über ein zentrales Control Panel namens kToolBar verwaltet werden. kToolBar kann auch einsatzbereite JAR / Jad-Programme aus Entwicklungsverzeichnissen erstellen und verpacken. Das Beherrschen all dieser Tools und das Testen von Anwendungen auf allen Emulatoren kann sich jedoch als mühsam erweisen.

Eine J2ME-IDE vereinfacht die Entwicklung, indem SDKs von Geräteherstellern in andere Tools integriert werden. Entwickler können dann eine einheitliche IDE-Schnittstelle für alle unterstützten SDKs haben. IDEs verbessern auch die Entwicklerproduktivität und die Qualität der bereitstellbaren Anwendungen.

Wer sollte eine IDE verwenden?

Ich empfehle IDEs nicht für Anfänger. Solche Entwickler müssen verschiedene Dinge gleichzeitig lernen: die Java-Sprache, J2ME-APIs und -Pakete, die IDE selbst. Die Komfortfunktionen einer IDE können leicht verdecken, was wirklich unter der Haube passiert. Möglicherweise entwickeln Sie eine Reihe von Fähigkeiten, die an eine bestimmte IDE gebunden sind. IDEs können jedoch hilfreich sein, wenn Sie bereits wissen, was Sie tun. Sie können viele langwierige Prozesse für einen erfahrenen Entwickler automatisieren.

J2ME IDE Einkaufsführer

Ich habe die J2ME-IDEs dieses Artikels anhand der folgenden Aspekte bewertet:

  • Allgemeine Produktivitätsfunktionen: Ich habe diese Funktionen bewertet, die für alle Java-Entwicklungsprojekte von Vorteil sind, nicht für J2ME-spezifische. Zu diesen Funktionen gehören Editor-, Projektmanager-, Debugger-, Architekturdesigner- und Dokumentationstools sowie Tools für erweiterte Programmiertechniken (Refactoring, Komponententests usw.).
  • SDK-Integration von Drittanbietern: Die Unterstützung mehrerer SDKs ist eine Kernfunktion für jede J2ME-IDE. IDE-Anbieter haben jedoch Schwierigkeiten, die Unterstützung für jedes einzelne SDK zu verfolgen und zu integrieren. Die UEI-Spezifikation (Unified Emulator Interface) standardisiert die Programmierschnittstelle zwischen SDKs und IDEs. UEI-kompatible SDKs und IDEs arbeiten garantiert miteinander. In meiner Bewertung diskutiere ich, welche SDKs die IDEs standardmäßig unterstützen, ob die IDEs UEI unterstützen und wie schwierig es ist, in einem Projekt zwischen SDKs zu wechseln.
  • Tools nach der Kompilierung: J2ME-Anwendungen sind mobile Anwendungen, die ein hohes Maß an Sicherheit und Leistung erfordern. Durch die Verschleierung des Codes kann verhindert werden, dass Benutzer Ihre Klassendateien rückentwickeln, und die Codegröße verringert werden. Spezielle Optimierungstechniken sind bei IDE-Anbietern und ihren Partnern erhältlich. J2ME-Anwendungen können auch für Bereitstellungsgeräte nachbearbeitet und optimiert werden, basierend auf den Ressourcen, die für bestimmte Gerätetypen verfügbar sind. Diese Nachbearbeitungs-, Verschleierungs- und Optimierungstools fallen in diese Nachkompilierungskategorie.
  • Unterstützung für die drahtlose Bereitstellung (OTA): J2ME-Anwendungen werden häufig über öffentliche drahtlose Netzwerke bereitgestellt. J2ME OTA-Spezifikationen standardisieren den Prozess zum Erkennen, Herunterladen, Authentifizieren, Autorisieren, Überprüfen und Ausführen einer mobilen Java-Anwendung. OTA-Spezifikationen erfordern ordnungsgemäß formatierte Metadateien auf der Serverseite und Java Application Manager (JAM) auf der Seite der Mobilgeräte. Der Server benötigt außerdem spezielle Konfigurationen, um OTA-Metatypen zu unterstützen. Der OTA-Prozess kann mit der bevorstehenden Veröffentlichung von MIDP 2.0 recht komplex werden. Eine IDE sollte dabei helfen, diese Metadateien automatisch zu generieren. Eine gute IDE sollte auch OTA-kompatible JAM-Clients integrieren, um die Bereitstellung innerhalb der IDE zu testen.
  • End-to-End-Entwicklung mobiler Anwendungen: J2ME-Geräte sind nicht leistungsfähig genug, um große Informationsmengen selbst zu verarbeiten oder zu speichern. J2ME-Anwendungen sind häufig Thick-Clients für einige Back-End-Unternehmensanwendungsserver. Eine erstklassige IDE sollte es Entwicklern daher ermöglichen, ganze End-to-End-Projekte zu erstellen. Dies minimiert die Lernkosten und den Aufwand für die Projektkoordination.
  • Dokumentation und Tutorials: Die Entwicklung mobiler Java-Anwendungen ist ein ausgefeilter Prozess, der viele Aspekte des Software-Engineerings umfasst. IDEs bieten Tools zur Automatisierung vieler Aufgaben. Aufgrund der Komplexität des Entwicklungsprozesses fällt es Programmieranfängern jedoch häufig schwer, diese Funktionen korrekt zu verwenden. Tutorials und detaillierte Fallstudien erweisen sich als wesentlich für die effiziente Einführung einer IDE.
  • Builder für J2ME-GUI (grafische Benutzeroberfläche): Einige IDEs verfügen über RAD-Tools (Rapid Application Development), mit denen Entwickler mobile Benutzeroberflächen visuell erstellen können. Diese Tools sprechen Entwickler aus der Desktop-Welt an, die mit J2SE-RAD-Tools (Java 2 Platform, Standard Edition) vertraut sind. Verwenden Sie die visuellen GUI-Builder von J2ME jedoch mit Vorsicht: Da sich die Bildschirmgrößen von drahtlosen Geräten unterscheiden, kann dasselbe UI-Design auf verschiedenen Geräten unterschiedlich aussehen. Ein Palm PDA kann beispielsweise vier Befehlsschaltflächen hintereinander anzeigen. Ein Mobiltelefon fordert Sie jedoch möglicherweise auf, aus einer Liste von vier Befehlen auszuwählen, wenn Sie auf eine Menüschaltfläche klicken. Was Sie also im GUI-Builder sehen, ist möglicherweise nicht das, was Sie letztendlich auf einem bestimmten Gerät erhalten.

JBuilder 7 Enterprise mit MobileSet 3

Borland JBuilder ist eine renommierte Java-IDE mit drei Editionen: Personal, Standard (SE) und Enterprise. Alle JBuilder-Editionen können auf mehreren Plattformen ausgeführt werden, einschließlich Windows, Linux, Solaris und Mac OS X. Um die J2ME-Entwicklung unter JBuilder zu unterstützen, müssen Sie ein Zusatzmodul namens MobileSet installieren. Derzeit läuft MobileSet nur unter Windows, es ist jedoch die Unterstützung weiterer Plattformen geplant.

JBuilder Personal ist kostenlos auf der Borland-Website erhältlich. JBuilder SE kostet 99 (September 2002) und die Enterprise Edition 999. Sie können 30-Tage-Testlizenzen für die Standard- und die Enterprise-Edition herunterladen. Obwohl kostenlos, bietet die Personal Edition wenig Wert. Es fehlen einige grundlegende Produktivitätsmerkmale. Beispielsweise können Sie Ihren Quellcode nicht einmal über Pakethierarchien verwalten, was die Entwicklung großer Projekte mit vielen Klassen schwierig macht.

Im Gegensatz dazu bietet JBuilder 7 Enterprise eine Vielzahl von Tools, die das Design, die Entwicklung, das Testen und die Bereitstellung von Java-Anwendungen (insbesondere J2EE-Anwendungen (Java 2 Platform, Enterprise Edition)) unterstützen. Es wird mit Borlands eigenem J2EE-Anwendungsserver, der Borland InterBase SQL-Datenbank und einer Testversion der Optimizeit Suite des Unternehmens, einem Java-Optimierungstool, gebündelt. Die eingeschweißte Software enthält drei Dokumentationsbücher für Lernprogramme. Diese Bücher bieten nicht nur Fallstudien zur Verwendung von JBuilder, sondern dienen auch als gute Ressourcen zum Erlernen der allgemeinen Entwicklung von Java-Anwendungen.

Um J2ME-Anwendungen auf einer JBuilder 7-Edition zu entwickeln, müssen Sie MobileSet installieren, einen kostenlosen Download von der Borland-Website. Nach dem Ausführen des Installationsprogramms fügt MobileSet Ihrer vorhandenen JBuilder-Installation neue Assistenten, Kompilierungs- / Laufzeitumgebungen und Menüelemente hinzu. Die folgende Übersicht konzentriert sich auf JBuilder 7 Enterprise.

  • Allgemeine Produktivitätsfunktionen: JBuilder 7 Enterprise bietet erstklassige Java-Produktivitätsfunktionen. Es verfügt über einen leistungsstarken Editor, Compiler und Debugger. Zu den erweiterten Funktionen gehören mehrere JVM- und Laufzeitunterstützung, UML-Visualisierungstools (Unified Modeling Language), Tools zum Entwerfen von Anwendungslogik (z. B. visuelle EJB-Designer (Enterprise JavaBean)), integrierte Unterstützung für Komponententests, Refactoring-Tools und Javadoc-Tools. Für Unternehmensanwendungen unterstützt JBuilder die automatische Generierung von Web- und Unternehmensarchiven (WAR / EAR) und die Bereitstellung auf allen führenden Anwendungsservern. Mit JBuilder können Sie auch leistungsstarke Tools von Drittanbietern wie CVS (Concurrent Versioning System) für die Quellcodeverwaltung und Ant für benutzerdefinierte Builds problemlos in Ihr Projekt integrieren.
  • SDK-Integration von Drittanbietern: Die einzige von JBuilder unterstützte J2ME-Plattform ist MIDP. JBuilder MobileSet unterstützt J2MEWTK-, Nokia-, Siemens- und Sprint-PCS-SDKs. Der MobileSet-Download selbst enthält jedoch nur J2MEWTK, um Ihnen den Einstieg zu erleichtern. Sie müssen andere SDKs separat herunterladen. Da JBuilder UEI unterstützt, gehe ich davon aus, dass es die meisten zukünftigen SDKs unterstützen wird. Mit dem Tool können Sie in einem Projekt zwischen mehreren JVMs und Laufzeitumgebungen wechseln, was die Entwicklung mehrerer Plattformen vereinfacht.
  • Tools nach der Kompilierung: JBuilder MobileSet bietet integrierte Unterstützung für die Verschleierung von Klassendateien durch RetroGuard 1.1. Die mitgelieferte Optimizeit Suite optimiert die Anwendungsgröße und -leistung weiter.
  • Unterstützung der OTA-Bereitstellung: Mit JBuilder Enterprise konnte ich problemlos JAR-Manifest-Dateien und JAD-Dateien für mein MIDP-Projekt generieren. Projekte können über den integrierten JTP-Client von JBuilder auf einem ordnungsgemäß konfigurierten Remoteserver bereitgestellt werden. JBuilder konfiguriert den Server jedoch nicht für Sie. Sie können bereitgestellte Anwendungen mit OTA-kompatiblen clientseitigen JAMs testen, die in JBuilder integriert sind.
  • End-to-End-Entwicklung mobiler Anwendungen: JBuilder 7 Enterprise bietet hervorragende Funktionen für die Entwicklung von J2EE-Backend-Anwendungsservern. Sie können End-to-End-Anwendungen vollständig in JBuilder entwickeln.
  • Dokumentation und Tutorials: Die drei mit JBuilder 7 Enterprise gelieferten Bücher sind auf der Borland-Website sowohl in HTML- als auch in PDF-Version frei verfügbar. Borland hat auch herunterladbare MobileSet-Lehrbücher und viele andere gute Dokumentationen. Die Dokumentationsunterstützung von JBuilder ist ausgezeichnet.
  • J2ME-GUI-Builder: Das MobileSet wird mit einem MIDP-GUI-Builder geliefert. Das Erstellen von GUI-Code mit JBuilder erweist sich als recht einfach.

Sun ONE Studio 4 Mobile Edition

Früher als Forte für Java bekannt, verwendet Sun ONE Studio die NetBeans-Technologie, um externe Module in die IDE zu integrieren. Sun ONE Studio enthält drei Editionen: Community, Mobile und Enterprise für Java. Die Community- und Mobile-Editionen sind kostenlos. Enterprise for Java kostet 995 und verfügt über ausgefeilte J2EE-Entwicklungs- und Bereitstellungsfunktionen. Sie können eine kostenlose 60-Tage-Testlizenz für Enterprise for Java von der Sun-Website erhalten.

Sun ONE Studio wird online und auf einer CD vertrieben. Die CD enthält alle Editionen von Sun ONE Studio 4 auf allen unterstützten Plattformen sowie J2SE und J2EE. Die Installation ist einfach.

Obwohl die Mobile Edition mit J2ME-Unterstützung vorkonfiguriert ist, verfügt sie nur über eingeschränkte IDE-Funktionen. Sie können der Community- und Enterprise for Java-Edition problemlos J2ME-Entwicklungsfunktionen hinzufügen, indem Sie ein J2ME-Funkmodul installieren. Dieses Modul entspricht der NetBeans-Spezifikation und kann mit jeder Sun ONE Studio Edition installiert werden. Das J2ME-Funkmodul bietet J2ME-spezifische Vorlagen, Assistenten, Menüelemente sowie die Integration von Compiler und Emulator und wird mit dem J2MEWTK geliefert.

Eine der Stärken von Sun ONE Studio ist der modulare Aufbau. Dritte können problemlos Komponenten bereitstellen und in die IDE integrieren. Beispiele für solche Module sind UML-Modellierung, Refactoring und Unit-Tests.

Die kostenlosen Ausgaben von Sun ONE Studio haben mich beeindruckt. Sun ONE Mobile Edition oder Community Edition sowie das Wireless-Modul sind die einzigen kostenlosen J2ME-IDEs, die ich empfehle. Sie bieten alle wichtigen IDE-Funktionen für große und komplexe Projekte. Die Community Edition bietet sogar grundlegende Funktionen für die serverseitige Anwendungsentwicklung. Mit dieser Edition können Sie Servlet- und Datenbankanwendungen entwickeln. Sun ONE Studio ist die einzige IDE in diesem Artikel, die J2ME-Unterstützung für Nicht-Windows-Plattformen bietet. Die folgenden Kommentare basieren auf meinen Erfahrungen mit Sun ONE Studio 4 Enterprise für Java und dem Wireless-Modul. Die meisten gelten jedoch auch für die kostenlose Community Edition.