Die Idee der plattformübergreifenden Entwicklung ist so alt wie die Softwareentwicklung selbst. Auch wenn im Moment viele so tun als wären Frameworks wie PhoneGap, Titanium oder ähnlich dem Stein der Weisen, ist es doch so, dass wir in der Vergangenheit schon Tausende solcher Ideen kommen und gehen gesehenen haben.

Hier ein kleiner Rückblick:
2004: J2ME Polish: Ein ursprünglich für Java Handys entwickeltes Framework
2004: Crossfire: .Net basiertes Framework
2005: Flash Lite
2007: mojax: HTML/CSS/Javascript -> Transformiert in native App http://www.drdobbs.com/mobile/207400256
2008: Nokia übernimmt Trolltech und damit das QT-Framework.

Jetzt fragt man sich, wieso sich keines dieser Frameworks in der Programmierung durchgesetzt hat, obwohl diese teilweise schon über 8 Jahre am Markt sind?

Der Markt heute teilt sich in zwei technische Ansätze:
Zum einen gibt es Frameworks, die mit einer Metasprache arbeiten und diese dann in die gewünschte Zielsprache überführen. Beispiel hierfür ist Rhodes, XMLVM, applause oder particlecode. Es ist uns allerdings rätselhaft, wie man die Mammutaufgabe bewältigen soll, die Flut von neuen Funktionen, die mit jedem Betriebssystemupdate bei den mobilen Plattformen kommen, dort jeweils funktionssicher nachzurüsten. Und dementsprechend instabil sind nach unseren Erfahrungen auch die meisten Applikationen, die damit erstellt sind. Einfache „Hello World“-Apps funktionieren in der Regel gut, aber wehe das Projekt wird entsprechend komplex. Dann müssen mysteriöse Abstürze und Fehlverhalten analysiert und gefunden werden, die in der Regel ihre Ursache im fehlerhaften Meta-Interpreter haben.

Auf der anderen Seite gibt es die Frameworks, allen voran PhoneGap, die HTML/CSS und Javascript in eine native App integrieren. Das Ganze ist nichts weiter wie ein einzelnes Browserfenster, welches HTML-Seiten anzeigt. Dazu werden spezielle Java-Script Funktionen angeboten, um auf die nativen Funktionen zugreifen zu können, die dem Browser verwehrt bleiben. Von dieser Gattung gibt es heute bereits eine Vielzahl von Frameworks wie Appcelerator, appMobi, Sencha Touch etc. Sie versprechen „App-Entwicklung so einfach wie Web-Entwicklung“ – wobei aber leicht übersehen wird, dass komplexere mobile Anwendungen vor allem eine adäquate Systemarchitektur benötigen, und dass dies in der Regel der Löwenanteil des Entwicklungsaufwandes ist.

Wieso kann sich aber keines dieser Konzepte der „plattformübergreifenden“ Entwicklung dauerhaft durchsetzen? Dafür gibt es viele Gründe, von denen wir hier die wichtigsten aufzählen:

  1. Kommerziell lassen sich solche Frameworks kaum verwerten. Das bedeutet in der Praxis, dass die Entwickler eines solchen Frameworks mit viel Enthusiasmus starten und anschließend so lange daran arbeiten bis die Geldgeber keine Lust mehr haben, weil sie merken, dass eine Monetarisierung nicht funktioniert. Natürlich hoffen alle Entwickler solcher Tools auf entsprechende Verbreitung, um dann mittels Masse irgendwann Geld zu verdienen. Leider funktioniert das aber nicht, weil kein Entwickler bereit ist, für solche Tools einen adäquaten Betrag zu bezahlen. Und damit ist das Ende dieser Aktiviäten in der Regel vorprogrammiert.
  2. Ein Framework bietet immer nur einen Teil der Plattformfunktionen. Dies mag für viele einfache Anwendungen ausreichend sein, aber für eine State-of-the-Art-Applikation mit WOW-Effekt ist das aber nicht genug.
  3. Die Plattform-Anbieter selbst haben gar kein Interesse daran (zumindest nicht die großen Player wie z. B. Apple), weil diese gar nicht wollen, dass die anderen Plattformen auch ein großes App-Ökosystem bekommen.
  4. Die resultierenden Apps sind oftmals nicht ausreichend performant und die Pflege kann aufwandsmäßig zum Alptraum werden, wenn die Weiterentwicklung des Frameworks ins Stocken gerät oder gar ganz eingestellt wird.

Nach unserer Einschätzung sind diese Tools zur plattformübergreifenden App-Entwiclng letztlich nur eine Übergangslösung, weil die Zugriffe auf native Funktionen nach und nach in die Browser integriert werden.

Abschließend bleibt zu sagen, dass es natürlich auf den Anwendungsfall ankommt, ob der Einsatz solcher Frameworks sinnvoll ist oder nicht. Für die Entwicklung einer hybriden Applikation (HTML/CSS/Javascript im nativen Rahmen) sind diese Frameworks im Moment sicher eine Arbeitserleichterung für den Entwickler. Die Zukunftsfähigkeit dieser Tools steht allerdings mehr denn je in Frage.

„Write once – run everywhere“ wird aber immer ein Traum bleiben, solange es mehrere mobile Plattformen gibt. Und wer will schon einen Monopol?

 

0 Kommentare

Dein Kommentar

An Diskussion beteiligen?
Hinterlasse uns Deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.