Von native bis web, von Flutter bis React und JavaScript – App-Technologie und worauf es wirklich ankommt
App Technologie
- 07.10.2022

Auswahl der App-Technologie: diese Fragen sind hilfreich
Heute stehen Apps für Software, die es weit über die mobile Anwendung auf Smartphones hinaus geschafft haben. Applikationen finden sich heute in Notebooks, in Wearables, in Fahrzeugen, im Smart-TV, aber auch im Smart-Home oder auf Screens zur Steuerung von Maschinen. Stellt sich die Frage nach der richtigen App-Technologie, kann dies nur unter Betrachtung verschiedener Aspekte valide beantwortet werden. Relevant sind insbesondere folgende Fragestellungen:1. Wie hoch ist der Reifegrad der Technologie? Wenn die App-Technologie erst im Betastadium ist, sollte sie – selbst wenn ihre Vorteile unbestritten sind – nicht zur Entwicklung geschäftskritischer Apps genutzt werden. Zu hoch ist die Wahrscheinlichkeit, dass Libraries oder Frameworks fehlen oder buggy sind und dass sich die Programmierung dadurch deutlich komplizierter anlässt als ursprünglich gedacht. Selbst eine heute sehr erfolgreiche und weitverbreitete Cross-Plattform-Technologie wie Flutter, die eine plattformübergreifende App-Entwicklung ermöglicht, hat über zwei Jahre gebraucht, bis sie von führenden Agenturen produktiv eingesetzt wurde.
2. Von welchem Hersteller oder welcher Community wird die Technologie unterstützt oder getrieben? Selbst große Hersteller wie Microsoft oder Google stellen immer wieder den Support für Techstacks ein. Beispielsweise hat Google gerade angekündigt, sein IoT-Framework einzustellen. Microsoft hat neben Windows Mobile auch den Support für die Cross-Plattform-Technologie XAMARIN stark heruntergefahren. Wird der Support für eine Technologie eingestellt, werden Sicherheitsupdates meist nicht mehr realisiert oder die Tools und Frameworks zur Weiterentwicklung stehen nicht mehr zur Verfügung. Im schlimmsten Fall wird es dann notwendig, die komplette App nochmals von Grund auf neu zu entwickeln. Alle Investitionen in die alte App müssten dann sofort abgeschrieben werden.
3. Welche Produkte und Services sollen abgebildet werden? Funktionen, die neue oder technisch tief in das Betriebssystem eingreifende APIs nutzen, sind größtenteils besser mit nativen App-Frameworks umzusetzen als mit hybriden Ansätzen oder Cross-Plattform-Frameworks. Dies gilt insbesondere, wenn es um Videobearbeitung geht oder um Video und Audioplayer sowie Connected Apps, die auf den NFC-Chip oder Bluetooth-Verbindungen zugreifen wollen. Games wiederum lassen sich aufgrund der hervorragenden Grafikengine sehr gut mit dem Cross-Plattform-Framework Unity umsetzen, das schon fast Industriestandard ist.
4. Wie dynamisch sind Content und Layouts? Komplett native Applikationen lassen sich zwar über "Feature Toggeling" auch im Umfang der Funktionalitäten oder der Menüs einfach individualisiert konfigurieren, aber das Layout besteht immer aus einem oder mehreren Templateseiten. Wenn eine Redaktion also darauf besteht, dass es jederzeit möglich sein muss, die Homepage ohne Einschränkungen individuell zu gestalten, bleibt nur die Lösung, den Homescreen der App als native Ansicht zu konzipieren. Allerdings gehen damit dann auch sämtliche Vorteile der nativen App hinsichtlich Ladezeiten, Transitions und so weiter verloren.
5. Welche Technologie beherrscht die interne IT? Auch das ist häufig ein Grund für die Selektion des Tech-Stacks für die App-Entwicklung. Bei diesem Punkt ist jedoch Vorsicht geboten. Häufig beherrscht die interne IT vor allem Standard-Technologien wie Javascript oder C#. Damit fällt die Wahl häufig auf Frameworks wie XAMARIN, IONIC oder Cordova, die professionelle App-Agenturen nicht mehr einsetzen. Diese bieten eine unterdurchschnittliche Performance und User Experience. Teils vergrößern sie außerdem den benötigten Speicherplatz der App unnötigerweise erheblich.
Hauptprämisse sollte es unabhängig davon sein, eine performante App zu entwickeln, welche die gesetzten Businessziele des Unternehmens erreicht. Technologie um der Technologie Willen ist meistens nicht erfolgreich.
App-Entwicklung: die Entscheidung für die richtige Technologie
Will man einen Überblick zum Thema App-Technologien geben, existieren hauptsächlich zwei Betrachtungsweisen: einerseits die App-Development-Kategorie, auf der die App basiert, andererseits die verwendete Programmiersprache. Da es sich bei all dem um ein sehr weites Feld handelt, wendet sich dieser Artikel den 13 wichtigsten Aspekten zu und gibt einen ersten Einblick.App-Development-Kategorien
Web-Apps: Webanwendungen, die meist auf HTLM, JavaScript oder CSS basieren und im Webbrowser ausgeführt werden. Sie benötigen keine Installation und funktionieren auf allen Geräten und Betriebssystemen. Meist können sie nur eingeschränkt auf Gerätefunktionen zugreifen.
Hybride Apps: Kombination aus nativen und Web-Apps. Sie basieren auf Web-Technologien, laufen aber in einem Webviewer-Container, in dem sie als native Apps verpackt werden. Somit sind sie einerseits plattformübergreifend einsetzbar, können andererseits auf native Funktionen und APIs zugreifen. Hybride Apps sparen Zeit und Geld in der Entwicklung. Allerdings ist der Zugriff auf native Funktionen begrenzt.
Cross-Platform-Apps und Progressive-Web-Apps: werden in einer zwischengeschalteten Programmiersprache entwickelt, die zu keinem Betriebssystem gehört. Erst später erfolgt die Kompilierung für das jeweilige Betriebssystem mithilfe eines plattformübergreifenden Anwendungsframeworks.
Programmiersprachen für App-Entwicklung:
• Swift und SwiftUI: nutzerfreundliche Open-Source-Programmiersprache für Apple-Plattformen, gut geeignet für Apple-spezifische Apps aller Art; SwiftUI vereinfacht zusätzlich die Erstellung von Benutzeroberflächen• Kotlin: moderne Programmiersprache mit weniger Code als Java, offizielle Android Sprache, konvertierbar in Java (dadurch auch für das Web geeignet)
• Jetpack Compose: Toolkit zum vereinfachten Erstellen von Android-Benutzeroberflächen mit Kotlin
• C#: universelle, objektorientierte Programmiersprache von Microsoft; konzipiert für die .NET-Plattform; entwickelt für den einfachen Datenaustausch via Web und für die Erstellung hochportabler Anwendungen
• NET. MAUI: plattformübergreifendes Framework zum Entwickeln von nativen Mobil- und Desktop-Apps mit C# und XAML
• Flutter: von Google entwickeltes Open-Source-Framework zur Entwicklung von Apps für verschiedene Plattformen, bietet viele Bibliotheken mit Standard-UI-Elementen für iOS und Android; auch für klassische Desktop-Webanwendungen geeignet
• Dart: ECMA-standardisierte Open-Source-Programmiersprache, Alternative zu JavaScript in modernen Webbrowsern, speziell für das Web entwickelt
• React: JavaScript-Framework beziehungsweise Library für die Entwicklung von Benutzeroberflächen von Web-Apps, wird für den Aufbau interaktiver Apps und Single-Page-Apps verwendet
• JavaScript: Skriptsprache, die ursprünglich in Webseiten verwendet wird; wird für Browser-Games, Mobile Apps (alle Plattformen) und Web-Anwendungen eingesetzt
Die genannten App-Technologien und ihre Spezifika sind nur die Spitze des Eisbergs. Die größte und wichtigste Herausforderung ist die Nutzerfreundlichkeit einer App. Denn ist diese nicht gegeben, wird die Anwendung keinen Erfolg haben. Neben den eingangs erwähnten Fragen und der damit verbundenen Definition der Anforderungen an eine App sollten Code und Software-Architektur immer dem Credo der Nutzerfreundlichkeit folgen.
Für die Entwicklung einer nutzerfreundlichen App gibt es drei goldene Regeln, die jeder App-Betreiber beherzigen sollte:
• Die Nutzer kennen und ihnen die Kontrolle über das System geben
• Konsistente Benutzerschnittstellen entwerfen
• Mögliche Fehlbedienungen und deren Auswirkungen minimieren