Institut für Informatik | Sitemap | LMU-Portal
English
  • Startseite
  • Studieninteressierte
  • Studierende
  • Lehrveranstaltungen
    • Archiv
    • WS 2006/2007
      • AR
      • DM
      • FOTO
      • HS
      • IV3D
      • MMI1
        • Essays
      • MMN
      • OS
      • PEM
      • PMG
  • Forschung
  • Personen
  • Kontakt
  • Besucher
  • Jobs
  • FAQ
  • Intern

Overview of Mobile Phone Programming IDEs

Andreas Möller

Einleitung

Die Zeiten, zu denen man mit einem Handy nur telefonieren und Kurznachrichten versenden konnte, sind längst vorbei. Gehörten bereits vor einigen Jahren Dreingaben wie Taschenrechner, Kalender und Notizfunktion zur Standardausstattung, geht der Funktionsumfang aktueller Geräte weit darüber hinaus. Dank Megapixel-Kamera wird das Aufnehmen von Fotos und Videos möglich, die Geräte dienen als Mediaplayer für MP3 und andere Formate, und leistungsfähige Prozessoren in Kombination mit großen Displays ermöglichen anspruchsvolle Anwendungen wie Photobearbeitung, mobile Blogs und vieles mehr. Darüber hinaus sind die allermeisten der heute auf dem Markt erhältlichen Mobiltelefone mit einem Betriebssystem ausgestattet, das die Installation zusätzlicher Programme erlaubt und somit das Handy regelrecht zu einem Computer in der Westentasche werden lässt. Die Softwareentwicklung für mobile Geräte ist heute ebenso elegant und komfortabel wie für Desktop-PCs. Es soll zunächst ein kurzer Überblick über die verbreiteten Plattformen bei Mobiltelefonen gegeben werden, bevor einige IDEs (Entwicklungsumgebungen) näher vorgestellt werden, die geeignet sind, um Anwendungen für Mobiltelefone zu programmieren.

Plattformen für Mobiltelefone

Die drei wohl interessantesten und relevantesten Plattformen zur Softwareentwicklung für mobile Geräte sind Symbian OS, Windows Mobile und Java ME.

Symbian OS (für Symbian Operating System) ist eine Entwicklung der englischen Firma Symbian, einem Konsortium namhafter Handy-Hersteller wie Nokia, Sony Ericsson und Siemens. Symbian stellt eine Weiterentwicklung des EPOC-Betriebssystems dar und unterstützt Multitasking, mehrere Threads und eine sichere Speicherverwaltung. Es ist die Basis für die S60 (ehemals Series 60)-Oberfläche, die in nahezu allen Nokia-Handys und Geräten einiger weiterer Hersteller zum Einsatz kommt. S60.com beschreibt S60 als die "führende Smartphone-Plattform" [1,2].

Während Symbian OS den meisten Handynutzern als das typische Nokia-Look-and-Feel bekannt sein wird, ähnelt Microsofts Windows Mobile der Oberfläche von Windows-PCs, was besonders Windows-Anwendern die Bedienung erleichert. Gemeinsamkeiten sind das Startmenü, abgespeckte Office-Programme im Lieferumfang (Pocket Word, Pocket Excel, ...) und sogar identische Icons. Das Haupteinsatzgebiet dieses Betriebssystem sind eigentlich PDAs, es kommt aber in einer speziellen Variante auch auf Smartphones zum Einsatz [3].

Eine Sonderstellung nimmt schließlich Java ME (Java Platform, Micro Edition) ein. Hierbei handelt es sich nicht um eine proprietäre Plattform wie Symbian oder Windows Mobile, sondern um eine Laufzeitumgebung auf dem Mobiltelefon. Ähnlich dem Java Runtime Environment auf Desktop-Rechnern führt diese die für das mobile Gerät geschriebene Anwendung aus. Ist ein Mobiltelefon "java-fähig", laufen unabhängig vom Betriebssystem Java-Programme auf dem Gerät. Der große Vorteil liegt darin, dass die meisten Handys neuerer Generation Java ME unterstützen und somit eine große Zahl an Anwendern ein und dieselbe Software ohne Portierung nutzen können. Java ME hat zwar einen eingeschränkten Funktionsumfang im Vergleich zu Java SE (Standard Edition), unterstützt aber dennoch eine beachtliche Anzahl an Funktionen, wie Datenbankspeicherung (Record Stores), Bild-, Audio- und Videoverarbeitung, sowie Kommunikationsfähigkeiten beispielsweise über Internet oder Bluetooth. Desweiteren existieren APIs für den Zugriff auf Technologien wie GPS-Sensoren, Erkennung abfotografierter Visual Codes und vieles mehr [4]. Allerdings unterscheiden sich die Java-Implementierungen von Gerät zu Gerät, so dass nicht alle Funktionen auf jedem "java-fähigen" Handy unterstützt werden. Es kann beispielsweise vorkommen, dass eine eingebaute Kamera von einer Java-Applikation nicht oder nur mit niedriger Auflösung angesprochen werden kann.

IDEs

Prinzipiell genügt für die Programmierung ein beliebiger Texteditor und ein Compiler. Der einfachste Weg zur Erstellung eines auf einem Mobiltelefon lauffähigen Programms ist jedoch die Verwendung einer IDE (Integrated Development Environment, zu deutsch integrierte Entwicklungsumgebung). Es ist damit nicht nötig, mehrere Tools wie Editor, Debugger oder Compiler nebeneinander zu nutzen, sondern es befinden sich alle Funktionen, die während des Entwicklungsprozesses benötigt werden, in einer gemeinsamen Umgebung. Oft unterstützen zusätzliche Funktionen wie eine automatische Syntaxvervollständigung oder ein grafischer Editor für die Benutzeroberfläche die Arbeit. Gerade bei größeren Projekten ist die Verwendung einer solchen integrierten Entwicklungsumgebung unabdingbar. Im Folgenden soll eine Übersicht über IDEs zur Programmierung für die drei am meisten verbreiteten Plattformen mobiler Geräte, nämlich Symbian OS, Windows Mobile und Java ME, gegeben werden.

Java ME

Eclipse

Eine prominente Entwicklungsumgebung vor allem für die Arbeit mit Java Standard Edition, aber auch Java ME ist Eclipse. Standardmäßig enthält Eclipse zahlreiche Funktionen für die Java-Entwicklung wie einen inkrementellen Compiler, Syntaxvervollständigung und intelligente Hinweise zur Fehlerkorrektur im Code. Eclipse ist ein Open-Source-Projekt und zeichnet sich vor allem durch seine Erweiterbarkeit aus. Während die Schnittstelle für Plugins bei anderen IDEs im Allgemeinen beschränkt ist und sich die Erweiterungen auch häufig schlecht in das Gesamterscheinungsbild einfügen, ist Eclipse vollkommen modular aufgebaut. Prinzipiell handelt es sich weniger um eine in sich geschlossene Anwendung als vielmehr um eine Plattform, die nahezu vollständig aus Plugins zusammengesetzt ist. Über sogenannte Extension Points können neue Erweiterungen wiederum auf bestehende Plugins aufbauen.

Diese Architektur ermöglicht es nicht nur, eigene Views zu definieren, um die Arbeitsumgebung vollständig den eigenen Wünschen und Anforderungen anzupassen. Es ist auch möglich, neue Tools einzubinden und sogar die Unterstützung für komplett neue Programmiersprachen hinzuzufügen [5].

Das Plugin EclipseME erweitert Eclipse um die Funktionalitäten für die Java ME-Programmierung. Zusätzlich wird ein Wireless Toolkit benötigt, z. B. das Sun Wireless Toolkit. Dieses enthält eine Umgebung zur Emulation Java ME-fähiger Mobiltelefone. Es stehen mehrere virtuelle Geräte zur Verfügung, so dass die eigene Anwendung beispielsweise unter den Bedingungen eines Standard-Handys mit Schwarz-Weiß-Display oder eines Smartphones mit Querformat-Bildschirm und QWERTZ-Tastatur getestet werden kann. Der Emulator unterstützt auch Netzwerkzugriffe und simuliert die Verwendung auf Handyfunktionen wie die Kamera. Dieses Toolkit wird in Eclipse eingebunden, so dass der selbstgeschriebene Code direkt im Emulator ausgeführt werden kann. Alternativ kann ein Paket generiert werden, um das Programm direkt auf einem Handy auszuführen [4,6].

NetBeans

Eine ebenfalls kostenlose Entwicklungsumgebung für Java ME ist NetBeans. Auch diese IDE ist ursprünglich für die Java SE-Programmierung ausgelegt, der Funktionsumfang ist ähnlich mächtig wie bei Eclipse. Um Java ME mit NetBeans nutzen zu können, wird das NetBeans Mobility Pack benötigt. Es erweitert den Umfang der IDE um die Erstellung von Java ME-Programmen und Ausführung in einem Emulator inklusive Internetzugriff (Over-the-Air) und Multimediafunktionen. Im Vergleich zu Eclipse ist hier bereits ein Emulator enthalten und muss nicht separat installiert werden. Es ist aber trotzdem auch möglich, Emulatoren von Drittanbietern einzubinden, die beispielsweise von SonyEricsson oder Nokia angeboten werden, um spezifische Funktionen der Mobiltelefone dieser Anbieter zu simulieren. NetBeans unterstützt auch das direkte Ausführen und Debuggen auf einem angeschlossenen Mobiltelefon. Ein besonderes Highlight von NetBeans ist der grafische Editor zum Erstellen der User Interfaces, mit dessen Hilfe die Oberfläche der Anwendung per Drag and Drop zusammengestellt werden kann [7].

JGrasp

Eine weitere, unter der Open Source-Lizenz stehende Java-Entwicklungsumgebung ist JGrasp, die an der Auburn University entwickelt wurde. Die IDE ist komplett in Java geschrieben und bietet, obwohl extrem schlank und wenig ressourcenintensiv, interessante Features wie Erzeugung von UML-Diagrammen aus dem Quellcode und eine CSD (Control Structure Diagrams) genannte Funktion, die während dem Editieren Strukturdiagramme erzeugt, um den Quelltext besser lesbar zu machen. Standardmäßig werden außer Java weitere Programmiersprachen wie C oder C++ unterstützt. Durch die Einbindung des J2ME Wireless Toolkit von Sun lässt sich auch in diese Entwicklungsumgebung erweitern, so dass Java ME-Programme entwickelt werden können [8,9].

Symbian OS

Symbian OS-Programme werden üblicherweise in C++ implementiert. Dies ermöglicht den direkten Zugriff auf Gerätefunktionen wie Kamera, Sensoren oder das Dateisystem. Somit können auch systemnahe Anwendungen programmiert werden.

Um den Maschinencode zu erzeugen, der auf einem spezifischen Mobiltelefon lauffähig ist, wird ein SDK des jeweiligen Herstellers benötigt, beispielsweise das Nokia SDK. Für die Entwicklung können dann herkömmliche C++-Entwicklungsumgebungen verwendet werden, die von dem SDK unterstützt werden, beispielsweise Metrowerks CodeWarrior oder Microsoft Visual C++. Visual C++ enthält, ähnlich wie auch die anderen Bestandteile des Microsoft Visual Studio, umfangreiche Funktionen zum Syntax-Highlighting, automatische Codevervollständigung, hierarchische Klassendarstellung, Debugging und mehr. Die Entwicklung für Symbian OS ist damit genauso komfortabel wie für eine x86-Plattform, der einzige Unterschied ist die Kompilierung für den entsprechenden Chipsatz (bei Symbian-Geräten meist ein StrongARM-Proressor), hierfür kommt ein Cross-Compiler zum Einsatz. Es ist auch möglich, das Projekt so zu kompilieren, dass es in einem Symbian-Emulator auf dem PC ausgeführt werden kann. Mit dem Symbian-Tool makmake können Projektdateien für Visual C++ erstellt werden, um die Projekteinstellungen in die Entwicklungsumgebung zu laden. Für CodeWarrior ist dies nicht nötig, da diese Entwicklungsumgebung die Projektdateien selbst erzeugen kann. Makmake unterstützt auch die Generierung von Makefiles aus der Projektdatei, um den Buildprozess zu steuern [10].

Carbide

Ein weiteres Werkzeug für die Symbian-Programmierung mit C++ ist Carbide, das von Nokia entwickelt wird. Es basiert auf dem Eclipse-Framework, aber enthält zusätzliche Plugins zur Unterstützung der Symbian OS-Entwicklung. Carbide exisitiert in verschiedenen Versionen; neben der C++-Variante Carbide.c++ existiert auch noch Carbide.j für die Entwicklung von Java ME-Programmen sowie Carbide.vs, ein Plugin für Microsoft Visual Studio. Unter der Zuhilfenahme dieses Plugins kann auch mit Microsoft Visual C++ für Series 60 oder Series 80-Mobiltelefone programmiert werden.

Von der Variante Carbide.c++ existieren wiederum vier Versionen mit unterschiedlichem Funktionsumfang: Carbide.c++ Express, Carbide.c++ Developer Edition, Carbide.c++ Professional Edition und Carbide.c++ OEM Edition. Die Express-Edition richtet sich an Einsteiger in der Programmierung für Symbian OS und ist die einzige kostenlose Variante. Dennoch beinhaltet sie unter anderem Vorlagen und Assistenten für neue Projekte, Debugging auf dem Emulator, Unterstützung für mehrere Zielplattformen (z. B. unterschiedliche ARM-Chipsätze). Die Developer Edition bietet u. a. zusätzlich einen grafischen Designer für die Benutzeroberfläche und Debugging direkt auf dem Zielgerät (on-device debugging). Der Funktionsumfang wird durch die Professional-Version nochmals erweitert, allerdings muss für die Developer- und Professional-Varianten 299 Euro respektive 1.299 Euro bezahlt werden. Der Preis für die noch nicht erschienene (umfangreichste) OEM-Variante ist auf der Produktseite von Nokia noch nicht angegeben. Der bei Carbide zum Einsatz kommende C++-Compiler für die Ausführung im Emulator ist derselbe wie bei CodeWarrior. Zum Kompilieren für das Symbian-Gerät wird der freie gcc-Compiler verwendet [12].

VistaMax

Auch VistaMax von Wirelexsoft basiert auf Eclipse. Neben Varianten für Java ME wird die IDE auch für die C++-Entwicklung für UIQ und S60 angeboten. Besonderheiten sind ein grafischer Editor, Internationalisierungsfunktionen und eine grafische Übersicht über alle Screens der Anwendung. Angefangen von 50 USD für die Einsteigervariante "Visual Express" liegen die vollausgestatteten Versionen im dreistelligen Preissegment [13].

Windows Mobile

Einige Smartphones verwenden Windows Mobile als Betriebssystem, wenn auch die Verbreitung im Vergleich zu Symbian OS gering ist. Die im Jahre 2005 erschienene Version Windows Mobile 5.0 vereint die bisher gebräuchlichen Betriebssystem-Bezeichnungen Windows for Pocket PC für PDAs und Windows for Smartphones. Dennoch sind Anwendungen für die PDA- und die Smartphone-Version untereinander nicht kompatibel.

Generell gibt es zwei Möglichkeiten, Anwendungen für Windows Mobile zu entwickeln. Programme können entweder nativ laufen und haben dann direkten Zugriff auf die Gerätehardware. Im Allgemeinen kommen dafür die Programmiersprachen C oder C++ zum Einsatz. Die andere Variante ist, sogenannten Managed Code zu verwenden. Dieser Code ist keine Maschinensprache, sondern ein plattformunabhängiger "Zwischencode", der von der .NET-Laufzeitumgebung ausgeführt wird. Hierfür verwendete Programmiersprachen sind beispielsweise Visual C#.NET oder Visual Basic.NET. Die primäre Entwicklungsumgebung für Windows Mobile ist Microsoft Visual Studio, aktuell in der Version 2005. Waren vormals mehrere IDEs notwendig, um beide Arten von Anwendungen zu erstellen (z. B. Visual C++ Embedded und Visual Studio.NET), können mit Visual Studio 2005 sowohl Native- als auch Managed-Code-Anwendungen erstellt werden. Es werden dabei grundlegende Features wie Syntaxhervorhebung und -completion, Assistenten, hierarchische Klassenansichten und Debugging angeboten. Zusätzlich ist ein Emulator für mobile Geräte enthalten, und es wird die grafische Gestaltung der Benutzeroberfläche der Anwendung per Drag and Drop unterstützt. Das kostenlos bei Microsoft herunterladbare Windows Mobile SDK erweitert Visual Studio um Images verschiedener Smartphones für den Emulator, Dokumentation sowie Beispielcode und -anwendungen. Allerdings unterstützt die kostenlose Express Edition der Visual Studio-Reihe keine mobile Programmierung, so dass auf die kommerziellen Versionen zurückgegriffen werden muss, die je nach Ausstattungsvariante mehrere hundert Euro kosten [14,15].

Zusammenfassung

Ob man nun für Symbian OS, Windows Mobile oder plattformübergreifend für Java ME entwickeln will, für jede Disziplin gibt es Unterstützung durch mindestens eine passende Entwicklungsumgebung. Der Entwickler hat genau wie bei der Programmierung von Desktopanwendungen einen komfortablen Editor zur Verfügung, der durch diverse Funktionen bei der Codeeingabe hilft. Debugger erleichtern die Fehlersuche, und mit Emulatoren kann das Programm auf der Zielplattform simuliert werden, ohne für jeden Testlauf die Anwendung auf das Handy laden und installieren zu müssen, was je nach Gerät und Plattform einen nicht unerheblichen Zeitaufwand bedeutet.

Sowohl für Symbian OS als auch Java ME sind mit Carbide.c++ Express respektive Eclipse und NetBeans kostenlose Entwicklungsumgebungen verfügbar. Besonders für die Java ME-Entwicklung steht damit der Funktionsumfang professioneller IDEs frei zur Verfügung. Lediglich für die Programmierung für Windows Mobile kommt man nicht umhin, das Visual-Studio-Paket zu erwerben. Der große Vorteil bei den vorgestellten IDEs ist darüber hinaus, dass sie allesamt keine Spezialumgebungen für mobile Programmierung sind, sondern auch die Desktopentwicklung unterstützen. Dies macht die Umstellung besonders leicht, und der Entwickler kann unter derselben Oberfläche sowohl für den Desktop-PC als auch das Handy programmieren.

Quellenangaben

[1] Symbian Software Limited. Symbian OS - the mobile operating system. 04.02.2007. http://www.symbian.com

[2] Nokia Corporation. S60 Home. 03.02.2007. http://s60.com

[3] Microsoft Corporation. Mobile Lösungen, Applikationen und Geräte mit Microsoft Windows Mobile. 06.02.2007. http://www.microsoft.com/germany/windowsmobile/

[4] Sun Microsystems Inc. The Java ME Platform - the Most Ubiquitous Application Platform for Mobile Devices. 04.02.2007. http://java.sun.com/javame/index.jsp

[5] Markus Weyerhäuser. Die Programmierumgebung Eclipse. In: Javaspektrum CeBIT 2003, 12-17.

[6] EclipseME.org. EclipseME Home Page. 31.01.2007. http://eclipseme.org/

[7] Sun Microsystems Inc. Introduction to the NetBeans Mobility Pack. 31.01.2007. http://www.netbeans.org/products/mobility/

[8] Auburn University. jGrasp Homepage. 02.02.2007. http://www.jgrasp.org/

[9] Jhilmil Jain, James H. Cross II, David A. Umphress, Larry Barowski. Extending the jGRASP IDE for Wireless Application Development with J2ME. Proceedings of 2003 ACM Southeast Conference, Savannah, GA, March 7-8, 2003.

[10] Eric Thomas, Jürgen Zeitz. Anwendungsentwicklung für Symbian OS. Seminarausarbeitung, FH Wiesbaden, Februar 2006.

[11] Symbian Software Limited. Symbian Developer Network - Tools & SDKs - Deleloper tools - IDE. 03.02.2007. http://developer.symbian.com/main/tools/devtools/ide/index.jsp

[12] Nokia Corporation. Carbide Development Tools. 03.02.2007. http://www.forum.nokia.com/main/resources/tools_and_sdks/carbide/

[13] Wirelexsoft Inc. Symbian IDE, Series 60, UIQ, J2ME. 03.02.2007. http://www.wirelexsoft.com/Products_S60_2.1.html

[14] Kay Glahn. MS Mobile++. 04.02.2007. http://www.heise.de/mobil/artikel/65001

[15] Microsoft Corporation. Microsoft Visual Studio 2005 - Entwicklungswerkzeuge für das .NET-Framework. 05.02.2007. http://www.microsoft.com/germany/msdn/vstudio/products/default.mspx

Nach oben
Impressum – Datenschutz – Kontakt  |  Letzte Änderung am 21.05.2007 von Richard Atterer (rev 2286)