Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03304.jsonl.gz/2745

User Technology Lab
HTML-5, Cross-Plattform Framework, oder native? Was ist Ihre Migrations-Strategie für Ihr User Interface?
Smartphones, Tablets und die entsprechenden Apps verbreiten sich mit rasender Geschwindigkeit. Um das User Interface bestehender Anwendungen für diese Endgeräte fit zu machen, ist eine Migration auf die entsprechenden Programmier-Frameworks unumgänglich.
Häufig steht die Entscheidung an, ob (a) das User Interface als WebApp mit HTML-5 implementiert werden soll, ob (b) ein Cross-Plattform Framework (wie Mono oder PhoneGap) genutzt werden soll oder ob es (c) doch sinnvoller ist, das User Interface direkt als native Applikation mit Objective-C für iOS oder Java für Android zu schreiben.
Die einfachen Faustregeln für diese Entscheidung sind schnell zusammengefasst:
- Mono eignet sich immer dann wenn viel .Net Legacy-Code und .Net Entwickler Knowhow vorhanden ist. Zu beachten ist aber, dass für die Programmierung der sichtbaren User-Interface-Komponenten (Windows, Buttons, etc.) trotzdem plattform-spezifische Entwicklungs-Skills benötigt werden. Wie bei anderen Cross-Plattform-Frameworks und HTML ist auch hier Vorsicht geboten, wenn Sensor-Informationen (z.B. GPS) ausgewertet, oder z.B. Verbindungen über Bluetooth aufgenommen werden müssen.
- Die Implementation des User Interface als WebApp mit HTML-5 bietet sich immer dann an, wenn nur grundlegende User-Interface-Komponenten genutzt werden. Ein User Interface, welches aus vier Listen-Ansichten und entsprechenden Detail-Ansichten mit Textfeldern und Save/Cancel Buttons besteht ist wahrscheinlich gut geeignet für eine Umsetzung mit HTML-5 -- solange es sich um eine kostenfreie App handelt und die Verarbeitung von Sensor-Daten und Bluetooth Verbindungen keine Rolle spielt.
- Cross-Plattform Frameworks wie PhoneGap (als Apache Cordova auch als Open Source Produkt verfügbar) ermöglichen es HTML-5 basierte WebApps zu kapseln und für iOS, Android und WinPhone als Apps in den jeweiligen AppStores zur Verfügung zu stellen.
- Schliesslich entscheiden sich viele Entwickler von Apps die Software direkt als native App mit Objective-C für iOS bzw. Java für Android zu schreiben. Gründe hierfür sind häufig, dass die User-Experience so für die jeweilige Plattform einfach optimiert werden kann. Die Performanz (und damit "Natürlichkeit") des User Interfaces kann so am einfachsten sicher gestellt werden und Spezial-Funktionen der jeweiligen Plattform können ohne Umwege genutzt werden.
Häufig aber steckt der Teufel im Detail. Deswegen ist es wichtig, nicht nur die Eigenschaften des Marktes, die Verfügbarkeit von Skills und die groben technischen Produkteigenschaften abzuklären. Um eine hohe Planungssicherheit in Projekten zur Implementation eines User Interfaces zu erreichen, ist es häufig sinnvoll, im Rahmen einer Machbarkeitsstudie einen Architektur-Prototypen zu erstellen. So lassen sich wichtige technische Risiken bei der Migration beleuchten und es kommt nicht zum Problem, dass sich mitten in der Implementation herausstellt, dass sich zentrale Features der Software nicht mit der gewählten Implementationsstrategie umsetzen lassen.
Das IFS User Interface Software Technologie Lab hat es sich zur Aufgabe gemacht, kleine und mittelgrosse Unternehmen bei der Entscheidung für eine Migrationsstrategie mit Analysen und (soweit sinnvoll) der Entwicklung von Architektur-Prototypen zu unterstützen. In diesem Zusammenhang können dann auch Detailentscheide zur Architektur analysiert werden. So können zum Beispiel, passende JavaScript Frameworks für die Implementation einer HTML-5 WebApp vorgeschlagen werden.
In einer ersten ein- bis zweistündigen Beratung an der HSR lassen sich häufig viele der grundlegenden Fragen klären und Pläne für mögliche weitere Vorgehen skizzieren. Diese erste Beratung wird als günstiges Standardangebot mit CHF 250 in Rechnung gestellt.
Direktor:
Prof. Dr. Markus Stolze
Bei Bedarf können Sie einen Termin mit der Assistentin im Institut für Software reservieren: