Lerne, wie man plattformuebergreifende mobile Anwendungen fuer iOS und Android mit Kotlin entwickelt.
Dieser Beitrag bietet eine Einfuehrung in Kotlin Multiplatform Mobile und erklaert, wie man plattformuebergreifende mobile Anwendungen fuer iOS und Android mit Kotlin entwickelt.
Einfuehrung
Kotlin Multiplatform Mobile (KMM) ist eine Technologie, die es Entwicklern ermoeglicht, Code zwischen verschiedenen Plattformen wie Android, iOS und Webanwendungen zu teilen. KMM verwendet Kotlin, eine moderne Programmiersprache, die praegnant, sicher und interoperabel mit anderen Sprachen sein soll. Mit KMM koennen Entwickler die Geschaeftslogik einmal schreiben und plattformuebergreifend wiederverwenden, was die Entwicklungszeit reduziert und die Code-Konsistenz verbessert.
KMM ist besonders nuetzlich fuer Teams, die mobile Anwendungen sowohl fuer Android als auch fuer iOS erstellen moechten, da es hilft, duplizierten Code und die damit verbundenen Wartungskosten zu vermeiden. Es ermoeglicht Entwicklern auch, dieselben Tools, die gleiche Programmiersprache und dieselben Entwicklungspraktiken zu verwenden, was den Entwicklungsprozess rationalisieren und zu konsistenterer Codequalitaet fuehren kann.
In diesem Tutorial werden wir die notwendige Software installieren, um unser erstes Beispielprojekt zu erstellen. Dann werden wir das Projekt erstellen und seinen Inhalt untersuchen. Schliesslich werden wir den Code fuer iOS und Android kompilieren und ausfuehren.
Voraussetzungen
Bevor du ein KMM-Projekt erstellst, stelle sicher, dass die folgenden Voraussetzungen auf deinem System installiert sind:
- Android Studio
- Xcode
- JDK
- Kotlin Plugin
- brew
Diese Tools sind fuer die Entwicklung von Android- und iOS-Anwendungen mit Kotlin unentbehrlich. Zusaetzlich habe ich zwei weitere Tools installiert:
- Kotlin Multiplatform Mobile Plugin: Bietet die notwendigen Tools und Bibliotheken fuer die KMM-Entwicklung. Installiere es aus dem JetBrains Plugin Repository oder dem Android Studio Plugin Marketplace.
- KDoctor: Diagnostiziert und hilft bei der Behebung von Problemen, die waehrend der KMM-Entwicklung auftreten koennen. Es prueft auf haeufige Fehler und schlaegt Loesungen vor.
Du kannst das Kotlin Multiplatform Mobile Plugin in Android Studio ueber “Android Studio → Settings → Plugins” installieren.

Als Naechstes habe ich KDoctor installiert, aber zuerst musste ich Ruby ueber Homebrew installieren.
% brew install kdoctor
...
% kdoctor
Environment diagnose (to see all details, use -v option):
[✓] Operation System
[✓] Java
[✓] Android Studio
[✓] Xcode
[✖] Cocoapods
✖ System ruby is currently used
CocoaPods is not compatible with system ruby installation on Apple M1 computers.
Please install ruby via Homebrew, rvm, rbenv or other tool and make it default
Detailed information: https://stackoverflow.com/questions/64901180/how-to-run-cocoapods-on-apple-silicon-m1/66556339#66556339
✖ CocoaPods requires your terminal to be using UTF-8 encoding.
Consider adding the following to ~/.zprofile
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
Conclusion:
✖ KDoctor has diagnosed one or more problems while checking your environment.
Please check the output for problem description and possible solutions.So habe ich Ruby mit Homebrew installiert.
% which ruby
/usr/bin/ruby
% brew install ruby
...
% echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrcDanach habe ich mich ab- und wieder angemeldet, damit die Aenderungen wirksam werden.
% which ruby
/opt/homebrew/opt/ruby/bin/rubyLass uns nochmal pruefen, ob KDoctor jetzt funktioniert.
% kdoctor
Environment diagnose (to see all details, use -v option):
[✓] Operation System
[✓] Java
[✓] Android Studio
[✓] Xcode
[✓] Cocoapods
Conclusion:
✓ Your system is ready for Kotlin Multiplatform Mobile Development!Alles bereit!
Projekt erstellen
Um das erste Projekt zu erstellen, navigiere zu “File → New → New Project…” und waehle “Kotlin Multiplatform App.”

Im folgenden Dialog gib die ueblichen Projektinformationen an.

Ich habe es “KMA” genannt, aber es haette “KMM” sein sollen. Na ja.
Im naechsten Dialog habe ich alles auf den Standardwerten gelassen.

Sobald du auf “Finish” drueckst, ist das Projekt bereit zum Kompilieren und Ausfuehren.

Ich habe beide Ziele nacheinander ausgewaehlt.

Waehrend ich erwartete, dass der Android-Emulator wie gewohnt in Android Studio oeffnet, war ich angenehm ueberrascht, die App auch im iPhone-Simulator von Android Studio aus starten zu koennen.

Ich hatte erwartet, den iOS-Code in Android Studio zu sehen, aber er wurde nicht angezeigt, also oeffnete ich das Projektverzeichnis, um es zu inspizieren.

Im Grunde ist alles da. Ich oeffnete beide IDEs nebeneinander.

Jetzt ist alles Notwendige vorhanden, und wir koennen mit der Arbeit am Projekt beginnen.
Ich habe mehrere Fragen, die ich in zukuenftigen Beitraegen ansprechen werde:
- Wenn ich Kotlin-Code in Android Studio und Swift-Code in Xcode aendere, kann ich dann einfach alles wieder ueber Android Studio und/oder Xcode kompilieren und ausfuehren?
- Muss ich die UI fuer iOS separat entwickeln, oder kann ich die UI fuer beide Plattformen in Jetpack Compose entwickeln?
- Wie kann ich plattformspezifische Frameworks verwenden?
Hier sind zwei Beispiel-Apps, die vielversprechend aussehen:
Vielen Dank fuers Lesen!