Hybrid App Entwicklung im Jahr 2016
Seit einiger Zeit beschäftigen wir uns hier bei YUHIRO mit der Hybrid App Entwicklung (auf Basis von HTML5 und JavaScript mit Hilfe von Frameworks). Im Jahr 2014 haben wir zum Beispiel eine App entwickelt. Dabei standen wir vor der Entscheidung auf Hybrid oder auf eine Native Programmierung, auf Basis von Android und iOS, zu setzen. Zu diesem Zeitpunkt gab es zwar auch schon einige Hybrid Frameworks, wie zum Beispiel Sencha Touch. Dennoch waren die Technologien noch nicht ausgereift.
Herausforderungen bei der Hybrid Programmierung im Jahr 2013/ 2014:
- WebView: Der Browser in der mobilen Version, wurde von zu diesem Zeitpunkt von den Herstellern von iOS and Android nur stiefmütterlich behandelt. Dadurch waren dafür entwickelte Systeme, auch wenn sie gut programmiert und designt waren, nicht wirklich vorzeigbar.
- Hardwarezugang: Es gab nur wenige Schnittstellen, über welche man mit Frameworks wie Sencha Touch, auf die Mobile-interne Hardware, wie Kamera, Speicher, Touch, CPU (Rechenleistung), Bewegungsmesser, etc. zugreifen konnte. Somit musste man auf viele Funktionalitäten und Vorteile, welche ein mobiles Endgerät bietet, verzichten.
- Geschwindigkeit/ Performance: Applikationen mit Frameworks wie Sencha Touch, waren dafür bekannt, dass sie sehr langsam waren. Einen Vergleich mit Nativen Anwendungen konnten diese nicht standhalten.
Auch zum Anfang des Jahres 2015 hatten wir eine Mobile Anwendung auf Basis von HTML5 entwickelt. Auch hier war das Ergebnis mehr als ernüchternd. Der Kunde und dessen Kunden konnten einfach nicht verstehen, warum das System so langsam läuft und warum es einige Funktionalitäten, welche es im nativen Umfeld gab, nicht vorhanden waren. Das Projekt: Ein komplettes Desaster.
Man hätte dieses Projekt retten können, in dem man das Ganze von Grund auf programmiert und dabei nur die besten Coding Praktiken verwendet hätte. Wer ist jedoch schon bereit die Zeit und das Geld für eine Neuprogrammierung aufzubringen?
Eine andere Lösung wäre die Entwicklung im Bereich Native, dass wäre jedoch um noch ein weiteres teurer geworden.
Hybrid war in diesem Fall eine komplette Sackgasse für uns.
2016 – Das Jahr der Wende?
In den letzten Jahren und Monaten haben immer mehr Unternehmen sehr viel Zeit und Geld in neue Hybride Technologien investiert. Zum Beispiel Adobe, welches im Jahr die Technologie von Nitobi kaufte und es den Namen PhoneGap gab. Dieses wurde dann im neuen Release mit Apache Cordova umbenannt. Im Laufe der Jahre wurden immer mehr API’s (Schnittstellen) für den Zugriff auf Hardwareeigene Technologie (Accelerometer, Kamera, Speicher, etc.) zur Verfügung gestellt. Auf Basis von Cordova sind nun einige interessante Frameworks für die Hybride App Entwicklung entstanden. Wie zum Beispiel Ionic.
Auf den App Stores lassen sich bereits Anwendungen auf Basis von diesen Technologien finden, welche mehrere Millionen Male heruntergeladen wurden.
Auch das WebView wurde in den neuen Versionen von iOS und Android berücksichtigt, welches zudem zeigt, dass der Fokus weiter auf diese Technologien rückt.
Was bringt die Zukunft?
Immer mehr Anbieter positionieren sich neben Apple (iOS) und Google (Android) und fangen an eigene Plattformen zu bauen. Dies bedingt auch, dass man, wenn man alle Nutzer erreichen will, für immer mehr Plattformen Applikationen bauen muss. Musste man im Jahr 2013 nur für iOS und Android programmieren, braucht man im Jahr 2016 bereits mehr als diese zwei. Microsoft hat mit ihrer WindowsPhone Umgebung eine weitere Hürde geschaffen um alle Nutzer zu erreichen. Auch die grossen Chinesischen Hersteller denken über eigene Technologien nach.
Als Anbieter von Anwendungen für Endnutzer wird man schlussendlich keine andere Wahl haben, als auf Hybride Anwendungen zu setzen, welche man einmal programmiert und für alle Endgeräte nutzen kann.
Das Dilemma
Um eine gute Applikation mit Frameworks wie Sencha Touch zu schreiben, braucht man sehr gute und erfahrene Entwickler. Dadurch, dass die Frameworks erst seit einigen wenigen Jahren bestehen, oder zumindest erst seit einigen Jahren populär sind, gibt es dementsprechend auch nur wenige gute Entwickler welche diese Technologien sehr gut beherrschen. Hier besteht dann auch das Dilemma. Auf der einen Seite sollte man in Zukunft auf Hybrid setzen auf der anderen Seite gibt es nicht genug gute Leute, welche das auch perfekt beherrschen.
Die Lösung
Ein Weg kann es sein langfristig zu denken und trotzdem auf eines der Frameworks zu setzen.
Hierbei sollte man jedoch auch weit in die Zukunft schauen: Wie wird sich das jeweilige Framework weiter entwickeln? Werden wir in Zukunft, mit diesem Framework alle unsere Anforderungen abdecken können?
Dies sind wichtige Fragen, denn falls man später bemerkt, dass sich mit dem Framework die Anforderungen nicht umsetzen lassen, dann muss man eventuell später auf ein anderes Framework umsteigen. Das könnte im Normalfall auch bedeuten, dass man alles von Grund auf neu programmieren muss.
Fazit
Ehrlich gesagt, ist es heutzutage immer noch ein Risiko auf die Hybrid App Entwicklung zu setzen, da man nicht genau weiss, wie sich die Zukunft entwickeln wird. Im Extremfall steht man einem Totalverlust seiner Investitionen gegenüber. Auf der anderen Seite, könnte man auch mit dem “sicheren” Weg der Nativen Programmierung mit iOS, Android und WindowsPhone schnell vor einer Investitionsfalle stehen. Denn für jede Plattform braucht es einen eigenen Entwickler, da ein iOS Entwickler höchstwahrscheinlich nicht auf Android programmieren kann.
Gleichzeitig schwanken die Marktanteile der jetzigen Anbieter (iOS, Android, WindowsPhone) gewaltig. War vor einigen Jahren iOS noch das Nonplusultra, läuft heutzutage bereits ein Grossteil der mobilen Endgeräte auf Android. Gleichzeitig wirbelt Microsoft mit dem WindowsPhone den Markt auf. Besonders in aufstrebenden Märkten wie Indien, ist Microsoft mit ihren Smartphones erfolgreich. Auch indische und chinesische Anbieter treten vermehrt in Erscheinung. All dies führt zu einem undurchschaubaren Technologiemarkt.
Die Entscheidung sollte, auch im Jahr 2016, nicht leicht fallen. Schlussendlich wird es daran liegen, wie sich die Technologien (iOS, Android, WindowsPhone, Sencha Touch, Cordova, etc.) weiterentwickeln und wie sich die Nutzer schlussendlich entscheiden werden.
Wie seht Ihr die derzeitigen Entwicklungen? Wie wird die Zukunft aussehen? Und welche Entscheidung/ Entscheidungen habt Ihr getroffen?
Interessante Beiträge:
Frameworks die man kennen sollte
Die verschiedenen Technologien im Überblick
Bilder: Flickr.com/ hobson/ Quintano/ FutUndBeidl
Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.
Wichtig zu wissen. Danke