Bei der Entwicklung von neuen Anwendungen stellt sich im Planungsprozess zwangsläufig irgendwann die Frage: „Welche Technologie verwende ich, um meine App zu entwickeln?".
Um diese Frage schnell und effizient beantworten zu können, habe ich mich mit den verschiedenen Entwicklungsmöglichkeiten von mobilen Anwendungen auseinandergesetzt und gebe Ihnen das Ergebnis meiner Evaluation in dieser Blogreihe an die Hand, damit Ihnen Ihre Entscheidung zukünftig leichter fällt.
Die Blogreihe „Technologien mobiler Anwendungen"
Hier finden Sie die Auflistung der einzelnen Blogartikel die zur Blogreihe gehören.
Projektvorstellung (dieser Artikel)
Projektüberblick
Ziel des Projektes ist die Erstellung einer Entscheidungsmatrix anhand einer Evaluation, mit der die Technologieauswahl für mobile Anwendungen effizienter getroffen werden kann. Die Evaluation umfasst die fünf Entwicklungsansätze Native Apps, Native Apps mit nicht-nativem Framework, Cross Compile Frameworks, Progressive Web Apps (PWAs) und Hybrid Apps.
Die verschiedenen Technologien werden mit Fokus auf Gesamtentwicklungszeit, Abhängigkeiten zu anderen Technologien und Herstellern, Entwickler Know-how am Markt, Komplexität und Risiken und der Total Cost of Ownership bewertet und verglichen. Außerdem wird mit jeder Technologie eine Beispiel Anwendung entwickelt, anhand welcher die Entwicklungszeit und Komplexität vergleichen wird.
Für die Evaluation wird zu Grunde gelegt, dass ein Projekt vorliegt, welches die Entwicklung einer Anwendung für die mobielen Betriebssysteme iOS und Android vorsieht. Andere Betriebssysteme werden im Rahmen dieser Blogreihe nicht weiter betrachtet. Zur Messung des Entwickler-Know-hows am Markt und der Beliebtheit werden Umfragen und Job-Listing-Statistiken herangezogen. Die Vorstellung der Technologien basiert hauptsächlich auf Rechercheergebnissen.
Anforderungen an die Beispielapp
Für gute Vergleichbarkeit zwischen den Technologien wurde als Beispiel-App für alle Plattformen die Implementierung eines Timer gewählt. Bei diesem können User einen Zeitraum in Stunden, Minuten und Sekunden angeben und werden nach Ablauf der angegebenen Zeit per Vibration und Ton benachrichtigt. Das User-Interface besteht aus zwei Buttons, einer Uhr und einem Fortschrittsbalken um die Uhr herum.
Mit Klick auf die Uhr wird der Zahlen-, bzw. Uhrzeit-Picker geöffnet. Mit Klick auf einen Button wird der Timer gestartet und der Button wird zum Pause-Button. Mit Klick auf den zweiten Button wird der Timer auf 0 zurückgesetzt, unabhängig davon, ob er noch läuft oder bereits abgelaufen ist. Wenn keine Zeit ausgewählt wurde, bewirkt der Klick auf den Startknopf nichts. Ist der Timer abgelaufen, wird ein Ton abgespielt und der Start-Knopf wird zu einem Stop-Knopf, mit dem der Ton abgeschaltet wird.
Die Beispiel-App wird in allen Technologien sowohl auf iOS als auch Android funktionieren.
Projektplanung
Projektablauf
Der erste Teil des Projektes besteht aus der Vorstellung der einzelnen Entwicklungsmöglichkeiten und die konkrete Betrachtung einzelner Frameworks oder Programmiersprachen, die für diese App-Entwicklung verwendet werden.
Der zweite Teil des Projektes wird der Vergleich der verschiedenen Entwicklungsmöglichkeiten anhand der bereits genannten Kriterien sein. Mit den Ergebnissen aus dem Vergleich wird dann als Ergebnis des Projektes eine Entscheidungsmatrix erstellt, mit der man leicht die beste Technologie für seine Anwendung herausfinden kann.
Technologien der mobilen Apps
In der Tabelle werden die einzelnen App-Technologien native App, native-App mit nicht-nativem Framework, Cross Compile Framework, PWA und hybride App vorgestellt.
Für die verschiedenen Entwicklungsmöglichkeiten wurde jeweils eine Beispieltechnologie gewählt, mit der die App entwickelt wurde. In den Blogartikeln zu den Entwicklungsmöglichkeiten wird näher auf die Entwicklung der App und das Endresultat nach jeweils ca. 8h Entwicklungszeit eingegangen.
App-Technologie | Beschreibung | Beispiel-App Umsetzung |
---|---|---|
Native App | Eine mobile native App bezeichnet eine Anwendung, die mit einer Programmiersprache geschrieben wurde, welche in Maschinencode kompiliert und von einem mobilen Betriebssystem ausgeführt wird. | Kotlin (Programmiersprache) |
Native App mit nicht-nativen Framework | Eine native App mit nicht-nativen Framework bezeichnet eine Anwendung, die mit einem Framework in systemfremder Sprache geschrieben wird, aber so übersetzt wird, dass die nativen Komponenten des Betriebssystems genutzt werden. | React Native Framework |
Cross Compile Framework | Ein Cross Compile Framework ist ein Framework, welches in einer systemfremden Sprache geschrieben wird und in einen systemspezifischen Maschinencode kompiliert werden kann. | Flutter Framework |
Progressive Web App | Eine Progressive Web App ist eine Web Anwendung, die mit Hilfe von Service Workern und einem Manifest auf das Endgerät der Benutzer*innen heruntergeladen werden kann. | React Framework |
Hybrid App | Eine Hybrid App ist eine Web Anwendung, die durch einen nativen Wrapper Zugriff auf die nativen Funktionen des Endgeräts bekommt. | Capacitor + React Framework |
Ich wünsche Ihnen viel Spaß mit meiner Blogserie!
Sie haben eine Produktidee für eine App und sind sich unsicher, welcher Technologie für Sie die Beste ist? Dann kontaktieren Sie uns gerne für ein unverbindliches Erstgespräch.