2.4 Problem

Eine mobile Anwendung sollte auf vielen Plattformen verfügbar sein. Nur so kann sie eine möglichst große Anzahl an Nutzern erreichen und auch für zukünftige Verschiebungen im Markt gewappnet sein. Dies ist jedoch eine besondere technische Herausforderung, die nicht einfach zu lösen ist.

Die in Abschnitt 2.3.1 vorgestellten Plattformen sind nicht untereinander kompatibel. Native mobile Anwendungen lassen sich immer nur auf einer Plattform verwenden und können nicht ohne erheblichen Aufwand zwischen Plattformen portiert werden. Dies liegt vor allem daran, dass die Plattformen jeweils auf unterschiedlichen Programmiersprachen aufsetzen (vgl. Tabelle 2.1).

Plattform Programmiersprache
Apple iOS Objective-C
Google Android Java
RIM BlackBerry Java
Windows Mobile C, .NET, Java, Flash Lite
Symbian C++
Palm webOS HTML, CSS, JavaScript

Tabelle 2.1: Programmiersprache je Plattform

Zur Erstellung von Anwendungen für Apple iOS wird die Sprache Objective-C verwendet. Android- und BlackBerry-Anwendungen werden in Java geschrieben und von einer virtuellen Maschine ausgeführt. Microsoft nutzt für Windows Mobile hauptsächlich die Sprache C mit Unterstützung des .NET-Frameworks. Symbian-Anwendungen werden in C++ geschrieben, es können aber auch Anwendungen, die mit Java oder Flash Lite erstellt wurden, ausgeführt werden. Palm webOS hingegen setzt bei den Anwendungen auf die Web-Techniken HTML, CSS und JavaScript.

Zusätzlich zu den verwendeten Programmiersprachen unterscheiden sich auch die SDKs oder Vorgehen zur Erstellung von mobilen Anwendungen. Beispielsweise können für iOS die An­wen­dungsoberflächen von einem Programmierer im sogenannten Interface Builder per Drag and Drop visuell zusammengestellt werden. Für Google Android muss er von Hand XML-Dateien mit Anweisungen zur Anordnung der Oberfläche schreiben.

Wenn in einem Projekt trotzdem je eine native mobile Anwendung pro Plattform entwickelt werden soll, zeigen sich einige Engpässe, die nachfolgend dargestellt werden.

Wissen

Es ist sehr schwer Programmierer zu finden, die mit allen benötigten Programmiersprachen (u. a. Objective-C, Java, C++, C) ausreichend Erfahrung und Wissen zur effizienten Nutzung haben. Die Sprachen unterscheiden sich sehr stark, so dass die Transfermöglichkeiten beim neuen Erlernen eher gering sind.

Wenige Programmierer haben Erfahrung mit allen mobilen Plattformen, was zwingend notwendig ist, um die unterschiedliche Herangehensweise an die Benutzeroberfläche oder Interaktion der Plattformen verstehen und programmieren zu können. Dies ist für die Entwicklung einer qualitativ hochwertigen mobilen Anwendung jedoch zwingend notwendig.

Zeit

Da es kaum Überschneidungen in der Entwicklung für die unterschiedlichen Plattformen gibt, ist jede mobile Anwendung als eigenständiges Projekt zu behandeln. Plattformen werden bevorzugt und bekommen Vorrang im Projektplan. Im Verlauf des Projekts kommt es zu verschiedenen Entwicklungsständen und die Qualität der Anwendungen unterscheidet sich.

Im Vorfeld der Projektdurchführung ist je Plattform eine Analyse nötig, ob eine Anwendung auf der Plattform wie geplant realisiert werden kann. Da sich die Unterstützung von Funktionalitäten zwischen den Plattformen unterscheidet, kann es vorkommen, dass die umsetzbaren Anforderungen an die Anwendung je Plattform unterschiedlich sind. Die Durchführung der Programmierung muss einzeln koordiniert und organisiert werden. Zu guter Letzt muss auch das Testen der Anwendungen für jede Plattform unabhängig voneinander durchgeführt werden.

Um diese Komplexität beherrschen zu können wird in vielen Fällen auf eine Sequentialisierung der Arbeit zurückgegriffen werden müssen. Dies führt zu einer weiteren Verlängerung des Projekts.

Kosten

Die oben beschriebenen Tatsachen haben allesamt Auswirkungen auf die Kosten des Projekts. Da verschiedene Programmiersprachen benötigt werden, fallen entweder mehrfache Personalkosten an oder sie sind sehr hoch, da ein vergleichsweise höher qualifizierter Programmierer beschäftigt werden muss. Die mehrfachen Planungen binden Mitarbeiter länger und auch die Projektdurchführung mit dem Management und Koordinierung des Projektes ist komplexer und entsprechend teurer.

Eine mobile Anwendung für verschiedene Plattformen in Form von mehreren nativen Anwendungen zu programmieren, erscheint deshalb in vielen Fällen als nicht zielführend. Um jedoch das ursprüngliche Ziel, auf vielen Plattformen vertreten zu sein, zu erreichen, sind Alternativen notwendig.

Leave a Reply

Your email address will not be published. Required fields are marked *