Plattformen und Frameworks
Dauer: höchstens 30 Minuten
- 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.
Plattform | Hersteller | Programmiersprache | Entwicklungsumgebung |
---|---|---|---|
Android | Kotlin (Java) | Android Studio mit Windows, macOS oder Linux | |
iOS | Apple | Swift (ObjectiveC) | XCode ausschließlich (!) auf macOS |
Native Apps werden für Android in Googles PlayStore und für iPhones in Apples AppStore veröffentlicht.
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:
- Infos über PWAs bei web.dev (Google)
- Kurs zu PWAs bei web.dev (Google)
- Infos über PWAs im Mozilla Developer Network
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:
Framework | Ursprung | Programmiersprache | Entwicklungsumgebung | Webseite |
---|---|---|---|---|
React Native (mit Expo) | Meta (Facebook) | JavaScript (und TypeScript) | Texteditor, empfohlen wird VS Code | reactnative.dev |
Flutter | Dart | Texteditor, empfohlen wird Android Studio oder VS Code | flutter.dev | |
.NET MAUI / Xamarin | Microsoft | C# | Visual Studio ? | dot.net/maui |
ionic | Ionic | JavaScript | Texteditor, empfohlem wird VS Code | ionicframework.com |
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:
- NativeScript — nativescript.org (JavaScript)
- Kotlin Multiplatform Mobile — kotlinlang.org/lp/mobile (Kotlin)
- Codename One — codenameone.com (Java und Kotlin)
- Kivy — kivy.org (Python)
- Tauri (mobile coming soon) — tauri.app (Rust)
- kennt der Kurs weitere Ansätze?