Geschäftslogik in einer iPad App, macht das Sinn?
Tablets gewinnen auch in der Geschäftswelt immer mehr an Bedeutung und sollen mittel- bis langfristig PCs ersetzen. Für die Umsetzung von mobilen Lösungen gibt es 2 Alternativen: der eine Weg führt über HTML5, der andere benutzt native Apps, die mit den Entwicklungs-Tools der jeweiligen Hersteller programmiert werden.
Bei Apps, die mit iOS bzw. Android entwickelt werden, kann im Gegensatz zu HTML5 auch eine Datenbank direkt auf dem Tablet laufen. In diesem Fall handelt es sich um eine 2-Schichten (2-Tier) Architektur. Beim HTML5 Ansatz haben wir es jedoch mit der moderneren 3-Schichten (3-Tier) Architektur zu tun [1]. Dies bedeutet, dass die Präsentationsschicht unabhängig von der Logikschicht ist. Es können demzufolge unterschiedliche (mobile) Endgeräte unterstützt werden.
Für den Einsatz von nativen Apps können trotzdem folgende Punkte sprechen:
- Fancy User-Interfaces: Bedienungsoberflächen mit anspruchsvoller grafischer Gestaltung, die sich schwer mit Javascript-Bibliotheken realisieren lassen. Eine Anwendung wie GarageBand zum Beispiel, dessen Oberfläche detailgetreu eine Klaviatur, Gitarren-Griffbrett o.ä. darstellt, wäre mit Mitteln von HTML/CSS und damit als Web-App nur mit immensem Aufwand umsetzbar. Mit nativen Apps kann die Haptik eines iPad bzw. Android Tablets optimal unterstützt werden.
- Nutzung von spezifischen Hardware-Komponenten, wie GPS, Kamera, Mikrophon, Lagesensor u.v.m. Hier bietet eine native Programmierung (noch) Vorteile gegenüber einer Library wie PhoneGap.
- Performancekritische Funktionen: Bei aufwändigen Spielen, die massiv 3-D-Grafiken benutzen, ist eine Umsetzung mittels HTML5 nicht so spielend umsetzbar.
- Die lokale Speicherung von Daten ist ohne Frage bei einer nativen App in Kombination mit einer SQL Datenbank wie SQLite auch um einiges einfacher im Vergleich zu HTML5 und Local Storage.
Fazit
Jedes Projekt muss für sich festlegen, ob obige Punkte für eine mobile Lösung im geschäftlichen Umfeld maßgeblich sind. Entscheidet man sich in einem Projekt für den nativen Weg, sollte zumindest alle Logik mit einem Applikations-Server zur Verfügung gestellt werden. Denn nur dadurch kann man gewährleisteten, dass mit der gesamten Palette von (mobilen) Endgeräten gearbeitet werden kann.