Die eigene App

Wer Apps für Mobilgeräte entwickeln und vertreiben möchte, hat es heute einfacher denn je. Alle großen Hersteller bieten Entwicklungsumgebungen, Simulatoren und eigene Verkaufsplattformen – eine Bestandsaufnahme.

In Pocket speichern vorlesen Druckansicht 7 Kommentare lesen
Lesezeit: 7 Min.
Von
  • Andreas Beier
  • Dr. Andreas Linke
  • Hajo Schulz
Inhaltsverzeichnis

Die Märkte für Smartphones und Apps boomen. Vor allem Android und iPhone profitieren von der Mobilmanie – während die Anteile der anderen Plattformen sinken. Die etablierten Betriebssysteme Blackberry RIM und Symbian OS sind aber noch so stark verbreitet, dass ein Entwickler, der mit seiner App den ganzen Markt abräumen will, alle Plattformen bedienen muss. Plattformübergreifende Lösungen mit Web-Techniken funktionieren zwar schon ganz gut, wer aber eine perfekt auf jede einzelne Plattform zugeschnittene und besonders flüssig laufende App anstrebt, kommt nicht umhin, sie mehrmals zu programmieren.

Das Folgende beschreibt für Android, iPhone, WebOS, Symbian, Blackberry und Windows Mobile, welche Sprachen der Programmierer beherrschen muss, welche Entwicklungsumgebungen und Frameworks ihm bei der Arbeit helfen, wie gut die Dokumentation ist und über welche Kanäle und zu welchen Konditionen er seine App an den Anwender bringen kann.

Java ist die Sprache der Wahl für die Android-Entwicklung. Wer Java bereits im Studium oder im Beruf verwendet hat, kommt flott zu lauffähigen Ergebnissen. Android-Entwickler können den vollen Sprachumfang von Java 5 mit Generics, Collections sowie umfangreiche Libraries etwa zur Verwendung von GPS-Daten, Audio oder Video nutzen. Zusätzlich gibt es spezielle APIs zur Interaktion mit Google-Diensten wie Maps, Calendar oder Mail. Für sehr Performance-kritische Code-Abschnitte besteht die Möglichkeit, mit dem Native Development Kit (NDK) C/C++-Quelltexte einzubinden.

Google hat Android eine moderne und zukunftssichere Architektur zugrunde gelegt. Anwendungen bestehen im Wesentlichen aus sogenannten Activities, die grob den unterschiedlichen Ansichten (Views) einer App entsprechen. Activities können andere Activities der eigenen App, aber auch Activities anderer auf dem System vorhandener Apps starten und mit ihnen Daten austauschen. So ist es zum Beispiel sehr leicht möglich, Systemfunktionen zu erweitern oder Dienste für andere Anwendungen anzubieten, etwa eine verbesserte Tastatur.

(…)

Bei der Entwicklung von Apps für Apples Mobilbetriebssystem iOS (bis vor kurzem noch iPhone OS genannt) kommt man an der Sprache Objective-C nicht vorbei. Dabei handelt es sich um Standard-C mit einigen objektorientierten Spracherweiterungen, an die man sich trotz ihrer stellenweise seltsamen Syntax schnell gewöhnt. In seinen Lizenzbedingungen erlaubt Apple neben Objective-C nur noch den Einsatz von C++ und als interpretierte Sprache JavaScript. Java ist nicht vorgesehen. Die Sprachen lassen sich innerhalb eines Projekts recht flexibel mischen. Es ist kein Problem, eine C++-Klasse von Objective-C aus zu nutzen oder umgekehrt.

Die Klassenbibliotheken sind umfangreich und gut dokumentiert. Apple stellt zahlreiche Beispielprojekte bereit, die wertvolle Hilfestellung beim Einstieg in die iOS-Programmierung leisten.

(…)

Die Entwicklerwerkzeuge für Symbian OS sind derzeit von einigen Umwälzungen geprägt: Nachdem Nokia die Entwicklung dieses Betriebssystems zunächst vollständig in eigene Hände nahm, ist man nun dabei, es unter einer Open-Source-Lizenz neu zu veröffentlichen. Für die aktuell in lieferbaren Geräten verfügbare Betriebssystemversion ist diese Entwicklung bereits abgeschlossen: Was früher „Symbian S60 5th Edition SDK“ hieß, trägt nun den Titel „Symbian^1 SDK“. Für die kommende Version Symbian^2 ist kein SDK für normale Entwickler verfügbar, sondern lediglich ein PDK (Product Development Kit), das sich an Gerätehersteller richtet – laut Symbian-Webseite produziert NTT Docomo einige Geräte mit dieser Version, die unter den Markennamen Sharp und Fujitsu in Japan verkauft werden. Für Europäer interessanter dürfte die Version Symbian^3 werden: Nokias für das dritte Quartal angekündigtes neues Flaggschiff N8 soll damit laufen. SDK und PDK befinden sich derzeit im Beta-Stadium.

Nokia hat bereits angekündigt, dass das N8 das letzte Smartphone der edlen N-Serie sein wird, das unter Symbian läuft: In Zukunft soll diese Geräteklasse von MeeGo angetrieben werden, einem offenen Linux-System, das seine Wurzeln einerseits in Nokias Maemo und andererseits in dem von Intel initiierten Moblin hat. Ganz will Nokia Symbian allerdings nicht aufgeben: Das System soll weiterhin auf Geräten der X- und E-Serien zum Einsatz kommen.

(…)

Die Bezeichnung WebOS ist Programm: Palm setzt mit seinem aktuellen Betriebssystem WebOS ganz auf Webstandards. WebOS-Apps sind ein Gemisch aus JavaScript, HTML5 und CSS. Der Hersteller verspricht mit diesem Ansatz schnellere Entwicklung und kürzere Einarbeitungszeiten insbesondere für die große Community der Webentwickler. Ressourcenhungrige Anwendungen oder C-basierte Alt-Quelltexte lassen sich mit dem Plug-in-Development Kit (PDK) in den JavaScript-Rahmen einbinden.

Palm verwendet in WebOS den erprobten Model-View-Controller-Ansatz (MVC), der eine strenge Trennung von Daten (Model), Anwendungslogik (Controller) und Präsentationsschicht (View) verfolgt. Views sind normale HTML-Dateien, die allerdings stark mit Palm-proprietären Attributen und Styles durchsetzt sind. Sie enthalten keinerlei Programmcode. Die Controller sind JavaScript-Klassen mit definierten Einstiegspunkten und zahlreichen Callbacks. Zum dauerhaften Speichern der Modelle stehen HTML5-konforme APIs und SQLite-Datenbanken zur Verfügung.

(…)

Anwendungen für Windows Mobile werden häufig in Microsofts C# basierend auf dem .NET Compact Framework geschrieben, aber auch C/C++-Programme mit Zugriff auf die (abgespeckten) Windows-Programmierschnittstellen sind möglich. Selbst die guten alten MFC-Klassen werden bis heute auf allen Windows-Mobile-Versionen unterstützt. Windows-Programmierern fällt der Umstieg auf Microsofts Mobilplattform daher recht leicht, auch wenn etliche Desktop-APIs auf der Mobilplattform im Funktionsumfang beschnitten sind.

Probleme bereitet immer wieder, dass es Windows Mobile in zwei Varianten gibt, die sich in der Programmierung deutlich unterscheiden: Professional und Standard. Erstere läuft auf Smartphones mit Touchscreen, Letztere auf einfacheren Mobilgeräten, die mit Tasten und beispielsweise einem Vierwege-Navigator bedient werden. Die unterschiedlichen Bedienkonzepte und der daraus resultierende eingeschränkte Satz von Steuerelementen in der Standard-Variante verlangen verschiedene Versionen der App. Endanwendern ist die Unterscheidung oft nicht bewusst, auch die Hersteller und Review-Sites halten sich häufig bedeckt und sprechen allgemein von Windows Mobile.

(…)

Auch wenn Blackberrys weit oben auf den Smartphone-Bestsellerlisten stehen, gibt es nur vergleichsweise wenige Apps für diese Plattform. Das liegt sicher daran, dass Blackberrys häufig dienstlich genutzt werden und viele Firmen die Installation von Dritt-Anwendungen einschränken oder gleich ganz verbieten. Wer einen Blackberry privat verwendet oder wessen Arbeitgeber die Verwendung von Fremd-Apps erlaubt, der kommt mit den kostenlos von RIM bereitgestellten Entwicklungswerkzeugen und der Programmiersprache Java schnell zum Zug.

RIM setzt auf das im Vergleich zu den aktuellen Java-Versionen abgespeckte Java ME (Micro Edition). Der Sprachumfang entspricht etwa Java SE 1.3, allerdings stehen verschiedene zusätzliche Bibliotheken zur Verfügung. Moderne Java-Konzepte wie Generics werden nicht unterstützt, das erschwert die Umsetzung von bereits existierendem Java-Code.

(…)

Den vollständigen Artikel finden Sie in c't 16/2010.

Mehr Infos

Die eigene App

Artikel zum Thema "Die eigene App" finden Sie in c't 16/2010:

  • Entwicklungswerkzeuge für Android, iPhone & Co. - Seite 90
  • Plattformübergreifend programmieren mit JavaScript - Seite 96

(ola)