Skip to Content

Plattformen und Frameworks

Dauer: 45 Minuten bzw. bis zur Pause

  • Plattformen für native Apps
  • Frameworks für plattformübergreifende Apps

Ziel: Überblick verschiedener Ansätze zur App-Entwicklung

Auf dem Whiteboard oder in Excalidraw  wird skizziert, welche verschiedenen Ansätze es gibt, Apps für Android und iOS zu entwickeln.

Vorteil Whiteboard: Medienbruch in die „Realität“, weg vom Computer

Vorteil Excalidraw: Änderungen und Neuanordnungen sind leichter möglich

Plattformen

Es gibt mit Android und iOS nur noch zwei relevante Plattformen, um Apps für Smartphones zu entwickeln. Die Hersteller beider Plattformen stellen „offizielle“ Ansätze bereit, um native Apps zu entwickeln.

Native Apps

Android-Geräte werden von vielen verschiedenen Herstellern auf den Markt gebracht. Das Android-Betriebssystem wird von Google entwickelt.

iPhones haben iOS als Betriebssystem und werden ausschließlich von Apple angefertigt.

Hier verwenden wir Android und iOS als Bezeichnungen für die nativen Plattformen zur App-Entwicklung für Android-Geräte bzw. iPhones.

PlattformHerstellerProgrammierspracheEntwicklungsumgebung
AndroidGoogleKotlin (Java)Android Studio mit Windows, macOS oder Linux
iOSAppleSwift (ObjectiveC)XCode ausschließlich (!) auf macOS

Native Apps werden für Android in Googles PlayStore und für iPhones in Apples AppStore veröffentlicht.

Die „echten“ nativen Entwicklungsansätze erfordern zwei getrennte Code-Repositories und oftmals auch zwei dezidierte Entwickler-Teams, um eine App für beide Plattformen zu entwickeln.

Durch Ansätze wie Kotlin Multiplatform (KMP) ist es auch möglich, die Geschäftslogik einer App in Kotlin zu schreiben und diese plattformübergreifend zu verwenden. Außerdem gibt es mehrere plattformübergreifende UI-Frameworks, die wir neben KMP weiter unten betrachten.

Webanwendungen

Mit mobilen Webanwendungen, die im Browser ausgeführt werden, können ebenfalls Apps für Smartphones entwickelt werden. Hierzu gibt es neben den herkömmlichen Frontend-Technologien HTML, CSS und JavaScript spezielle Techniken für mobile Geräte wie das responsive Design und Service Workers u.a. für Offline-Funktionalität. Unter dem Begriff Progressive Web Apps (PWA) werden diese Techniken zusammengefasst.

Ein paar nützliche Links zu PWAs:

Solche PWAs sind durch URLs im Browser erreichbar und werden in der Regel nicht zur Installation im AppStore bzw. PlayStore bereitgestellt. Häufig lassen sich PWAs jedoch mit Icon auf dem Homescreen des Smartphones ablegen, sodass sie wie eine App erscheinen.

Insbesondere sind PWAs natürlicherweise plattformübergreifend und funktionieren gleichermaßen auf Android-Geräten und iPhones.

Letztendlich funktionieren gut durchdachte und mit den o.ä. Techniken erstellte Webanwendungen sowohl auf Desktop-Rechnern oder Laptops, als auch auf Smartphones. Deswegen sind PWAs im Prinzip eigentlich bloß „gewöhnliche“ Webanwendungen.

Frameworks

Es gibt mehrere Frameworks, mit denen plattformübergreifende Apps für Android und iOS entwickelt werden können:

FrameworkUrsprungProgrammierspracheEntwicklungsumgebungWebseite
Kotlin Multiplatform (KMP)Jetbrains (mit Google?)KotlinAndroid Studio oder IntelliJjetbrains.com/kotlin-multiplatform 
FlutterGoogleDartTexteditor, empfohlen werden Android Studio oder VS Codeflutter.dev 
React Native (mit Expo)Meta (Facebook)JavaScript bzw. TypeScriptTexteditor, empfohlen wird VS Codereactnative.dev 
LynxByteDance (TikTok)JavaScript bzw. TypeScriptTexteditor (z. B. VS Code)lynxjs.org 
ionicIonicJavaScript bzw. TypeScriptTexteditor, empfohlen wird VS Codeionicframework.com 
.NET MAUIMicrosoftC#Visual Studio (nicht VS Code)dot.net/maui 

Alle diese Frameworks sind Open Source Projekte.

Mit diesen Frameworks (und auch mit PWAs) ist es möglich, Apps mit nur einer Codebasis sowohl für Android-Geräte als auch für iPhones zu entwickeln (und in manchen Fällen auch für weitere Plattformen wie Windows, macOS, u.a.).


Möglicherweise gibt es weitere relevante Frameworks, d.h. solche, die von einigen genutzt und weiterentwickelt werden. Folgende Frameworks sind Open Source:

PAUSE

15 Minuten Pause