Kotlin Multiplatform Mobile erreicht Alpha-Status

Sergiy Rogalin

Kotlin Multiplatform Mobile (KMM) ist ein SDK, mit dem Sie in iOS- und Android-Anwendungen denselben Code für die Geschäftslogik verwenden können. Seit heute befindet sich KMM im Alpha-Stadium – ab sofort können Sie in Ihren Mobil-Apps eine gemeinsame Geschäftslogik verwenden. Im Lieferumfang befindet sich das neue KMM-Plugin für Android Studio, mit dem Sie gemeinsamen Code schreiben, ausführen, testen und debuggen können – alles in nur einer IDE. Tun Sie es anderen großartigen Teams wie VMware, Autodesk und Yandex gleich, die mithilfe von Kotlin in ihren Mobil-Apps gemeinsamen Code verwenden. Es war noch nie so einfach, Code über Mobilplattformen hinweg wiederzuverwenden!

Datei

Was ist Kotlin Multiplatform Mobile?

Kotlin Multiplatform Mobile (KMM) ist ein SDK von JetBrains für die plattformübergreifende mobile Entwicklung. Es verwendet die Multiplattform-Fähigkeiten von Kotlin und bündelt verschiedene Tools und Features, welche die gesamte Entwicklungskette für plattformübergreifende mobile Anwendungen reibungsloser und effizienter gestalten.

Oft haben die Android- und iOS-Versionen einer Anwendung viele Gemeinsamkeiten – sie können sich aber auch erheblich unterscheiden. Dies gilt insbesondere bei der Benutzeroberfläche, wo die Unterschiede von geringfügigen Abweichungen beim Bildlauf bis hin zu völlig unterschiedlichen Navigationskonzepten reichen können. Gleichzeitig ist die Geschäftslogik der Anwendung – mit Funktionsbereichen wie Datenverwaltung, Analyse und Authentifizierung – häufig identisch. Aus diesem Grund liegt es nahe, einige Teile einer Anwendung plattformübergreifend anzulegen, während andere Bereiche vollständig separat gehalten werden.

Mit KMM können Sie diese Flexibilität nutzen, ohne auf die Vorteile eines nativen Programmcodes zu verzichten. Verwenden Sie eine gemeinsame Codebasis für die Geschäftslogik Ihrer iOS- und Android-Apps und schreiben Sie plattformspezifischen Code nur dort, wo dies erforderlich ist, um eine native Benutzeroberfläche zu implementieren oder plattformspezifische APIs zu nutzen.

Datei

KMM integriert sich nahtlos in Ihr mobiles Projekt. In Kotlin geschriebener gemeinsamer Code wird mit Kotlin/JVM zu JVM-Bytecode und mit Kotlin/Native zu nativen Binärdateien kompiliert. Dadurch können Sie Ihre KMM-Geschäftslogikmodule wie jede andere gewöhnliche mobile Bibliothek verwenden.

Viele Unternehmen haben sich durch das Teilen von Kotlin-Code zwischen mobilen Plattformen bereits viel Zeit und Arbeit erspart. Einige inspirierende Berichte aus der Praxis:

  • Quizlet migrierte die Geschäftslogik von gemeinsam genutztem JavaScript-Code zu KMM und erzielte dadurch sowohl auf Android als auch auf iOS einen drastischen Performance-Schub.
  • Fastwork führte KMM auf der Domain- und Datenebene seiner Anwendung ein, um Geschäftslogik und API-Services zwischen mobilen Plattformen zu teilen. Die Produktivität des Teams wurde dadurch erheblich gesteigert.
  • Yandex.Disk experimentierte zunächst mit der Integration eines kleinen Features. Nachdem das Experiment erfolgreich verlief, wurde die gesamte Datensynchronisationslogik in KMM implementiert.

Die bemerkenswerten Ergebnisse dieser und vieler anderen Teams haben wesentlich zu unserer Inspiration beigetragen und wir hoffen, dass Sie durch diese Erfahrungen dazu ermutigt werden, das Teilen von Code zwischen mobilen Plattformen mit KMM auszuprobieren.

KMM vereinfacht die Mobilentwicklung

KMM ist zwar noch eine relative neue Option auf dem Gebiet der mobilen Entwicklung, aber wir sind überzeugt, dass es ein echter Game-Changer ist. Daher haben wir innerhalb von Kotlin ein separates Team gebildet, um KMM voranzutreiben und bei der Erstellung plattformübergreifender mobiler Anwendungen mit Kotlin die beste Entwicklererfahrung zu bieten.

Als ersten Schritt in diese Richtung zeigen wir Ihnen heute eine erste Preview des KMM-Plugins für Android Studio sowie das neue KMM-Entwicklerportal.

Die Reise mit KMM kann beginnen!

Arbeiten Sie in einer vertrauten Umgebung

Mit dem neuen KMM-Plugin können Sie gemeinsamen Code in Android Studio schreiben, ausführen, testen und debuggen, ohne auf andere IDEs ausweichen zu müssen. Zum Installieren wählen Sie Preferences | Plugins, suchen Sie nach dem Plugin Kotlin Multiplatform Mobile auf dem Marketplace und klicken Sie auf Installieren.

Konfigurieren Sie neue Anwendungen mit wenigen Klicks

Mit dem Assistenten New Kotlin Multiplatform Mobile Project können Sie mit wenigen Klicks ein einsatzfertiges Projekt für Mobil-Apps mit einer gemeinsam genutzten Codebasis erstellen. Um die Funktion auf beiden Plattformen zu testen, wählen Sie einfach die gewünschte Run-Konfiguration aus und klicken Sie auf Run.

Datei

Das generierte Projekt enthält Beispiele für die Anbindung der plattformspezifischen API sowie eine grundlegende Testabdeckung. Dieser Assistent macht es Ihnen leicht, die Grundfunktionen von KMM zu erkunden oder ein Gerüst für Ihre neue KMM-Produktionsanwendung zu erstellen.

Folgen Sie diesem Tutorial, um das Plugin zu installieren und mit dem Assistenten Ihre erste Multiplattform-Anwendung zu erstellen.

KMM lässt sich in einem Schritt in bestehende Projekte integrieren

Sie können KMM auch direkt in Ihrem aktuellen Projekt ausprobieren: Der gemeinsame Kotlin-Code lässt sich wie jede andere Abhängigkeit problemlos in Ihren vorhandenen Code integrieren. Mit dem Assistenten New Kotlin Multiplatform Mobile Module können Sie Ihrem Projekt ein neues KMM-Modul hinzufügen, um den bereits in Kotlin geschriebenen Code durch Refaktorierung mit iOS kompatibel zu machen und wiederzuverwenden.

In diesem Leitfaden zur Integration von KMM in bestehende Projekte erfahren Sie, wie Sie die Architektur von Multiplattform-Projekten konzipieren und die Migration organisieren können.

Entwickeln Sie für beide Plattformen in einer IDE

Sie müssen nicht mehr zwischen verschiedenen IDEs wechseln und Xcode ausführen, um sicherzustellen, dass Ihr Code auf beiden Mobilplattformen korrekt funktioniert. Das neue Plugin integriert Ihr iOS-Gerät und Ihren Simulator direkt in Android Studio. Dadurch erhalten Sie die folgenden Möglichkeiten:

  • Ausführen und Debuggen der iOS-Anwendung mit der vordefinierten Run-Konfiguration auf dem Simulator oder auf einem Gerät.
  • Ausführen und Debuggen allgemeiner und iOS-spezifischer Tests im iOS-Simulator durch einfachen Klick auf das Randleistensymbol einer Testklasse oder -methode.

Sowohl für die Anwendung als auch für die Tests können Sie Haltepunkte festlegen und Ihren Code unter iOS debuggen.

Integration in das iOS-Ökosystem ohne jeden Overhead

Wie erwähnt integriert sich KMM nahtlos in Ihr mobiles Projekt. Bei Android können Sie Kotlin für Ihren gesamten Projekt verwenden. Gleichzeitig bietet KMM mit Kotlin/Native eine enge Integration in den iOS-Entwicklungsprozess, etwa durch die Interoperabilität von Kotlin/Native mit Objective-C/Swift, die Integration mit dem CocoaPods-Abhängigkeitsmanager und die Möglichkeit, plattformspezifische APIs mit dem expect/actual-Pattern zu nutzen.

Einfache Kotlin-Nutzung in Swift-Code mit Kotlin/Native

Kotlin/Native bietet eine bidirektionale Interoperabilität mit Objective-C/Swift. Kotlin-Module können uneingeschränkt in Swift/Objective-C verwendet werden. Sie können in Ihrem Kotlin-Code Objective-C-Frameworks und -Bibliotheken verwenden. Die Nutzung von Swift-Bibliotheken ist ebenfalls möglich, wenn deren API mit @objc in Objective-C exportiert wird.

Erfahren Sie mehr über die Interoperabilität von Kotlin/Native mit Swift/Objective-C.

Unkomplizierte Verwaltung von iOS-Abhängigkeiten

Kotlin/Native ermöglicht eine Integration mit dem CocoaPods-Abhängigkeitsmanager. Sie können Abhängigkeiten zu Pod-Bibliotheken hinzufügen, die im CocoaPods-Repository oder lokal gespeichert sind, und auch Ihre Multiplattform-Projekte mit nativen Targets können als CocoaPods-Abhängigkeiten (Kotlin-Pods) verwendet werden. Sie können Pod-Abhängigkeiten direkt in Android Studio verwalten, inklusive vollständiger Programmierunterstützung mit Hervorhebung und Completion.

So sieht die typische Konfiguration einer KMM-Bibliothek aus:

Verbinden Sie die Bibliothek als Kotlin-Pod mit Ihrem iOS-Projekt, indem Sie den Namen und den Pfad zur Podfile eintragen:

Weitere Informationen zur CocoaPods-Integration.

Holen Sie sich im neuen Entwicklerportal Impulse für bessere plattformübergreifende Mobil-Apps

Das neue KMM-Entwicklerportal wurde entwickelt, um Ihren Weg von den ersten Erfahrungen mit KMM bis hin zum Produktionseinsatz komfortabler und produktiver zu machen.

Beim Arbeiten mit KMM ist der Dokumentationsbereich eine unerlässliche Ressource. Sie finden dort Inhalte für alle Kenntnisstufen, von Einstiegstutorials bis hin zu Entwicklungsthemen für Fortgeschrittene. Die nützlichen Informationen umfassen häufige Aufgaben wie das Organisieren der Vernetzung und der Datenspeicher-Schichten und sogar die Strukturierung des Entwicklungsprozesses rund um KMM.

Haben Sie Interesse an neuen Ideen für den sinnvollen Einsatz von KMM in Ihrer Anwendung? In unseren Fallstudien finden Sie Berichte aus erster Hand von Teams, die KMM bereits in ihren Produkten einsetzen.

Die Power der Community

Wir sind den folgenden Unternehmen und unabhängigen Entwicklern dankbar, da sie Zeit, Wissen und Know-how investiert und dadurch maßgeblich zu dieser Version beigetragen haben: Kevin Galligan, Alec Strong, Arkadii Ivanov, Ben Asher, John O’Reilly, Louis CAD, Kris Wong, Aleksey Mikhailov und viele andere großartige Entwickler. Vielen Dank, dass Sie Probleme auf YouTrack gemeldet, an Produktforschung und Interviews teilgenommen, über Ihre Erfahrungen mit KMM berichtet und unglaubliche Multiplattform-Bibliotheken erstellt haben!

Wir danken auch den Teams, die uns bei der Erstellung von Inhalten für das neue Entwicklerportal unterstützt haben: Touchlab, IceRock und Kodein Koders. Ihre Arbeit wird Tausenden Entwicklern helfen, sich tiefer in Kotlin Multiplatform Mobile einzuarbeiten und das volle Potenzial von KMM zu nutzen.

Sie sind die Besten!

Probieren Sie es jetzt aus

Angesichts all dieser coolen Features freuen wir uns sehr, dass KMM jetzt den Alpha-Status erreicht hat. Dies bedeutet, dass sich das Kotlin-Team mit aller Kraft dafür einsetzt, die Technologie zu verbessern und weiterzuentwickeln. Es ist auch ein Signal, dass sich das Produkt schnell weiterentwickeln wird. Wir werden auf Ihr Feedback hören und Korrekturen und Verbesserungen so schnell wie möglich umsetzen. Bitte leisten auch Sie Ihren Beitrag zur Stabilität von KMM, indem Sie alle gefundenen Probleme in unserem Tracker melden.

Das Erreichen des Alpha-Stadiums bedeutet, dass jetzt alles für Sie bereitsteht, um mit KMM den Code Ihrer Geschäftslogik auf mehreren Mobilplattformen nutzen zu können. Sie können ein neues Projekt erstellen oder ein bestehendes Projekt problemlos um ein KMM-Modul ergänzen. Beide Szenarien erfordern nur minimalen Aufwand, und Sie haben jederzeit die Möglichkeit, zur vollständig nativen Entwicklung zurückzukehren. Die Community wächst schnell und durch Ihre Teilnahme können Sie auf die Entwicklung des gesamten Ökosystems Einfluss nehmen.

Sie haben jetzt also eine großartige Gelegenheit, in die Nutzung von KMM einzusteigen!

Um beim gründlichen Ausprobieren von KMM optimale Erfahrungen zu machen und sich über interessante Funktionen auszutauschen, schließen Sie sich der Community der Multiplattform-Enthusiasten auf Slack an (Einladung hier). Abonnieren Sie außerdem das Tag „kotlin-multiplatform“ auf Stack Overflow.

Wir geben zwar unser Bestes, aber wir können aktuell noch keine reibungslose Migration garantieren. Allerdings versuchen wir, Kompatibilitätsprobleme so weit wie möglich zu vermeiden, indem wir Feature-Flags verwenden und für neue Versionen Migrationsanleitungen bereitstellen.

Geben Sie uns Feedback

Dieses Release ist nur der Anfang, und wir brauchen Ihre Hilfe für den Rest des Weges. Wir zählen auf Ihr Feedback – egal ob positiv oder negativ. Inspirieren Sie andere, indem Sie Ihre Erfahrungen bei der Verwendung von Kotlin Multiplatform Mobile teilen. Und wenn Sie eine Idee haben, wie wir KMM verbessern können – immer her damit!

Kotlin ahoi!