Der Markt für mobile Anwendungen ist in ständiger Bewegung und scheint immer größer und lukrativer zu werden. Glaubt man den Prognosen von IDC, so sollen bis 2015 weltweit rund 182 Milliarden mobile Apps einen Smartphone-Anwender finden. Im Vergleich zum Jahr 2010 entspreche dies einer Steigerung von rund 1600 Prozent. Mit geschätzten rund 425.000 Anwendungen in Apples App Store und etwa 390.000 im Android Market Place von Google ist der Einstieg in dieses Marktsegment nicht mehr so einfach. Für jede Lebenslage und für jedes Geschäftsszenario scheint es bereits eine passende App zu geben.
Die harte Konkurrenz, die auf dem Markt herrscht, setzt Mobile-Developer zunehmend unter Druck. Denn heute reicht eine gute Idee für eine App alleine nicht mehr aus. Man muss sie auch effizient, das heißt kostengünstig und vor allem möglichst schnell umsetzen. Die gute Nachricht: Mittlerweile gibt es zahlreiche professionelle und bewährte Lösungen, die viele Aufgaben während des Entwicklungsprozess vereinfachen. Häufig handelt es sich um Open-Source-Lösungen, die kostenlos verfügbar sind. Auf den folgenden Seiten präsentieren wir Ihnen eine Auswahl an quelloffenen Frameworks und Tools.
Sencha Touch: Apps auf Basis von HTML5
Vor allem im B2B-Bereich gewinnen mobile Web-Apps zunehmend an Bedeutung. So sind laut einer aktuellen Studie des Branchenverbands Bitkom 61 der interviewten Unternehmen aus der deutschen ITK-Branche der Meinung, dass Browser-basierende Apps in den nächsten fünf Jahren den Business-Sektor stärker dominieren werden. Als Grund für diese Entwicklung werden vor allem Plattformunabhängigkeit, höhere Verfügbarkeit von Spezialisten, Kostenaspekte sowie die Tatsache gennant, dass viele Geschäftsanwendungen für den Browser konzipiert sind.
Wer also mit Hilfe von Web-Standards wie HTML, CSS und JavaScript mobile Apps realisieren möchte, dem stehen einige leistungsstarke Frameworks zur Auswahl, die als Basis für eigene Projekte dienen, darunter “Sencha Touch”. Es basiert vollständig auf der neuen HTML5-Spezifikation und wartet mit einer einfachen Verwaltung für Touch-Ereignisse, sowie einer umfassenden UI-Bibliothek auf, die ausgiebig Gebrauch von CSS3 macht. Offiziell unterstützt werden in der aktuellen Version die Plattformen iOS, Android und Blackberry 6. Das kostenlose Framework soll aber auf jedem mobilen Browser laufen, der die neuen HTML5-Features unterstützt.
Titanium Mobile: Web Apps für iOS und Android nativ übersetzen
Einen ähnlichen Ansatz verfolgt die Lösung “Titanium Mobile” von der US-Firma Appcelerator. So wird dabei ebenfalls mit HTML5, JavaScript und CSS3 programmiert, wobei der Einsatz weiterer Web-Sprachen wie PHP, Ruby oder Python optional auch möglich ist. Der Unterschied zu Sencha besteht darin, dass Anwendungen nativ übersetzt werden. Das Framework kapselt in einer einheitlichen JavaScript-basierenden Abstraktionsschicht die nativen APIs der unterschiedlichen mobilen Betriebssysteme ab. Zur Laufzeit wird der Quellcode auf der jeweiligen Plattform interpretiert und Funktionsaufrufe werden an passende Module delegiert, die sie nativ umsetzen. Unterstützt werden dabei nur iOS und Android.
Die Lösung stellt über 100 native UI-Elemente zur Verfügung und erlaubt laut Anbieter selbst native 2D- und 3D-Animationen. Zum Standard-Funktionsumfang gehören zudem unter anderem SQLite-Datenbanken und Zugang zum internen File-System, Module für die Audio- und Videoübergabe, sowie vorgefertigte Soap- und REST-Komponenten, die für eine leichte Anbindung an Web-Services sorgen.
Appcelerator bietet eine kostenlose Community-Edition, die auch zu kommerziellen Zwecken verwendet werden darf. Wie bei Sencha Touch auch der Fall ist, können Firmenkunden, die sich etwa technischen Support oder Zugang zu Beta-Versionen wünschen, auf die Professional-Edition zurückgreifen.
PhoneGap: Universelle Apps für fast alle Plattformen
Eine Alternative zu Titanium Mobile ist “Phonegap”. Damit können Web-Programmierer ihre Anwendungen ebenfalls mit den gewohnten Techniken schreiben und dann ohne großen Aufwand auf die wichtigsten mobilen Plattformen nativ deployen. Eine weitere Gemeinsamkeit besteht darin, dass auch Phonegap eine konsistente und einheitliche JavaScript-API bietet, die viele Programmierschnittstellen der nativen SDKs (Software Development Kit) für die unterschiedlichen Plattformen abkapselt. Dadurch werden Developer in die Lage versetzt, auf Hardware-Komponenten zugreifen zu können.
Gegenüber Titanium punktet Phonegap vor allem durch seine große Plattformunabhängigkeit. Für iOS, Android, Windows Mobile und Blackberry stellt das Framework so genannte “PhoneGap-Wrapper” bereit, die aus der eigenen Web-Anwendung jeweils eine native Version für die unterschiedlichen Zielplattformen generieren. Für WebOS-Handys von Palm wird dagegen lediglich ein Installationspaket erzeugt, da das Betriebssystem bereits vollständig auf Web-Techniken aufbaut. Unter Symbian läuft es ähnlich. Hier wird ein Widget für die systemeigene Web-Runtime-Umgebung erzeugt.
Rhodes: Enterprise-Framework auf Basis von Ruby
Ein ähnliches Framework, das die Erstellung nativer mobilen Anwendungen ermöglicht, ist “Rhodes” vom US-amerikanischen Startup Rohmobile. Im Gegensatz zu Phonegap werden dabei Apps nicht nur mit Html-Techniken realisiert, sondern auf Basis der Programmiersprache Ruby. Beim Deployment übersetzt die Lösung den Ruby-Code in die jeweilige Zielplattform. Unterstützt werden derzeit iPhone, Android, Blackberry und sowohl Windows Mobile als auch Windows Phone 7. Die Entwicklung mit Rhodes lehnt sich stark an die Herangehensweisen des populären Web-Framework Ruby on Rails an. So lassen sich zum Beispiel Seiten mit einem einfachen Terminal-Befehl erzeugen. Dabei werden neben einer klassischen MVC-Architektur mit Model- und Controller-Klassen einige Html-Templates automatisch erzeugt, die der Entwickler nach Belieben anpassen kann. Die Benutzeroberflächen werden in Html mit speziellen Ruby-Tags umgesetzt.
Neben Rohdes bietet Rohmobile zusätzliche Services und Tools für Enterprise-Kunden, die das Framework ergänzen. So steht mit “Rhohub” eine Art Online-IDE zur Verfügung, mit der die Entwicklung von Rhodes-Apps im Browser stattfindet. Der Vorteil: Man braucht die ganzen SDKs der unterschiedlichen Plattformen nicht lokal zu installieren. Entwickler, die mobile Business-Apps realisieren möchten, können auch von “RhoSync” profitieren. Dabei handelt es sich um ein Synchronisations-Framework, das die Integration mobiler Apps mit Enterprise-Backend-Systemen deutlich vereinfachen soll. Die Enterprise-Dienste sind wie üblich kostenpflichtig. Preise erfährt man auf Anfrage.
Flurry Analytics: Eine Art Google Analytics für App-Entwickler
Wer Details über die Nutzung seiner App erfahren möchte, der kann Monitoring- und Tracking-Systeme wie “Flurry Analytics” verwenden. Dabei handelt es sich um eine Art “Google Analytics” für App-Entwickler, die mit den Plattformen iOS, Android und Java ME kompatibel ist. Nachdem Entwickler die Flurry-Funktionen in ihre App eingebaut haben, können sie auf umfassende Statistiken zurückgreifen. Unter anderem lassen sich auf diesem Wege wichtige Informationen wie etwa geografische Verteilung, Nutzungsdauer, Performance sowie Aufgetretene Fehler in Echtzeit gewinnen.
Ein großer Vorteil besteht darin, dass man jedes beliebige Benutzerereignis protokollieren und visualisieren kann. Denn Entwickler können die Flurry-Funktionalität nach Belieben in ihren Code integrieren, so zum Beispiel beim User-Login, bei einer Fehlerbehandlung, oder beim Aufruf bestimmter Methoden. Auf einem Web-Dashboard werden dann sämtliche Anwendungslogs graphisch aufbereitet. Die gewonnenen Erkenntnisse aus der realen Nutzung der App helfen dabei, die App optimieren und besser an den tatsächlichen Bedürfnissen der Anwender ausrichten zu können.
Tools für iPhone und iPad
Three20: Erstklassiges Framework für native iOS-Apps
Neben diesen plattformübergreifenden Web-Lösungen finden vor allem iOS-Entwickler zahlreiche Tools, die bei der nativen Entwicklung unter iOS eingesetzt werden können. Dazu zählt die Open-Source-Library “Three20”. Realisiert wurde sie von Joe Hewitt, einem renommierten Developer aus Kalifornien, der sich in der Branche mit populären Tools wie dem Firefox-Add-On “Firebug” und “Facebook for iPhone” einen Namen gemacht hat.
Three20 ist modular aufgebaut und besteht aus einer Vielzahl an Objective-C-Klassen für unterschiedliche Anwendungsszenarien. Mit dem “Launcher” beispielsweise lässt sich ein schlichtes Startmenu implementieren (siehe Grafik). Besonders praktisch ist darüber hinaus das “Persistence”-Modul. Dieses sorgt automatisch dafür, dass die App nach einem Neustart auf den gleichen Zustand gebracht wird, wie vor dem Schließen des Programms. Der Clou: Jeder einzelnen Navigationsseite wird eine eindeutige URL zugeordnet. Wenn der Anwender durch die App navigiert, wird jeder Schritt lokal protokolliert. Bei einem Neustart werden die gespeicherten Navigationsschritte automatisch im Hintergrund durchgeführt. Interessant sind zudem weitere Module wie “Photo Viewer”, das viele der Features der Fotos-App von iPhone nachbildet, sowie “Message Composer” für die Erstellung von Mails und Nachrichten. Der Source-Code von Three20 steht auf GitHub zum Download bereit.
Google GData: Client-Library für Objective-C-Programmierer
Google ist bekannt für seine vielen professionellen Entwickler-Tools. Die Angebotspalette ist sehr breit. Für jede moderne Programmiersprache, Technik oder Anwendungsszenario scheint der Suchmaschinenriese ein passendes Tool in petto zu haben. Ein gutes Beispiel: Das umfassende “Google Data Protocol”. In diesem Projekt fasst der Suchmaschinenriese zahlreiche Techniken und Methoden für die effiziente Arbeit mit Online-Services zusammen. Unter den Client-Libraries finden Java-, .Net, PHP-, Python- oder eben auch Objective-C-Entwickler die passende Klassenbibliothek.
Interessant für Mobile-Entwickler, die iPhone und iPad im Visier haben, ist vor allem die “GData Objective-C Client-Library”. Diese stellt eine höhere Abstraktionsschicht über HTTP dar und ermöglicht die effiziente Entwicklung von Client-Anwendungen, die mit Cloud-Diensten und Web-Services kommunizieren. Unter den zahlreichen Komponenten findet sich zum Beispiel ein hochperformantes XML-Modul, das die Bearbeitung von XML-Daten deutlich vereinfacht. Weitere Komponenten helfen unter anderem bei der Arbeit mit Cookies, Datei-Uploads, sowie bei der Implementierung typischer Funktionen von Web-basierenden Anwendungen wie Login, Authentifizierung oder Datenvalidierung.
ASI HTTP Request: Einfache Anbindung an Web-Services
Eine weniger bekannte, aber dennoch hilfsreiche Klassenbibliothek für iOS-Entwickler ist “ASI HTTP Request”. Hinter diesem etwas schwierigen Namen, steckt ein mächtiges Framework, das wie GData bei der Arbeit mit HTTP-Anfragen und der Kommunikation mit Web-Services sehr nützlich sein kann. Es ist ebenfalls in Objective-C geschrieben und adressiert damit Entwickler, die native Applikationen auf Basis von Apples Cocoa Touch-Framework realisieren.
Das Projekt stellt zahlreiche Funktionen zur Verfügung, mit denen sie beispielsweise Daten zwischen Server und Client transferieren; Dateien auf einen Server hochladen, sowie Cookies und unterschiedliche Authentifizierungsverfahren leicht implementieren können. Dabei werden sowohl synchrone als auch asynchrone Verbindungen unterstützt. Ferner lassen sich mit nur wenigen Zeilen Code professionelle Fortschrittsanzeigen einbauen - ein beliebtes Feature, das sonst nicht so leicht zu implementieren ist. Weitere Funktionen sind auf der Projekt-Seite aufgelistet, auf der ebenfalls eine ausführliche Dokumentation verfügbar ist.
Fazit
Wer eine Smartphone-App entwickeln möchte, hat die Qual der Wahl. Welche Plattform soll unterstützt werden? Wie soll die Implementierung erfolgen? Nativ oder Web-basiert? Wie schaut ein optimales Geschäftsmodell aus? Welche Tools brauche ich für die Entwicklung? Die Entscheidung hängt jeweils von vielen einzelnen Faktoren ab, die je nach anvisierter Zielgruppe und Ausgangssituation unterschiedlich zu bewerten sind. Tools wie Sencha Touch, Titanium Mobile, Phone Gap und Rhodes überzeugen in erster Linie durch ihre Plattformunabhängigkeit. Diese muss allerdings häufig mit Performanceeinbußen und Funktionseinschränkungen bezahlt werden. Wer weniger Kompromisse machen möchte, der setzt auf native Apps, die vor allem im Consumer-Markt nach wie vor den Takt vorgeben. Vor allem für iOS-Entwickler bietet die Open-Source-Community heute viele reife Lösungen wie Three20, ASI HTTP Request, oder die Google-Library für Objective-C an, die man in kommerziellen Projekten verwenden kann.