Anzeige
Anzeige
Ratgeber
Artikel merken

Kotlin: Eine neue Ära für Multiplattform-Projekte

Don’t repeat yourself: Nach dem Paradigma will Jetbrains Multiplattform-Projekte auf eine neue Ebene hieven – ohne die native Entwicklung aus den Augen zu verlieren. Das steckt hinter dem neuen Kotlin-Feature.

Von Andreas Domin
3 Min. Lesezeit
Anzeige
Anzeige

Multiplattform-Projekte mit Kotlin. (Grafik: Shutterstock.com/Bella Melo)

Crossplatform-Frameworks sind nichts Neues. Gerade in der mobilen Entwicklung finden sich dort einige Ansätze, wie für Android und iOS zeitgleich eine App geschrieben werden kann. Doch solche Frameworks kommen meistens mit starken Einschränkungen daher. Sei es bei der Gestaltung der Benutzeroberfläche oder beim Einsatz von plattformspezifischen Technologien. Deswegen setzen viele Programmierer weiterhin auf die komplett native Entwicklung. Dadurch kann das UI ohne Einschränkungen in der Design-Sprache der jeweiligen Plattform gestaltet und der Benutzer vollends zufrieden gestellt werden. Das hat jedoch den Nachteil, dass sich für die verschiedenen Zielplattformen viel Code wiederholt – eben nur in einer anderen Programmiersprache.

So funktionieren Multiplattform-Projekte in Kotlin

Anzeige
Anzeige

Doch Jetbrains will in dem Bereich ordentlich was ändern: Die tschechische Software-Schmiede will für Multiplattform-Projekte mit Kotlin nur den plattformunabhängigen logischen Sourcecode teilen. Der Rest wird weiterhin nativ für die jeweilige Plattform mit den entsprechenden SDKs, Tools und Design-Richtlinien entwickelt.

Um das umsetzen zu können, verwendet Jetbrains drei Module. Das Offensichtlichste ist dabei wohl das Common-Modul. Hier wird der oben beschriebene, plattformunabhängige Teil implementiert. Also alles was mit Daten sowie der Geschäfts- und Präsentationslogik zu tun hat. Auch ziemlich einleuchtend ist das zweite Regular-Modul. Hier wird die Benutzeroberfläche für den Web-Client, Android oder auch iOS sowie plattformspezifische APIs integriert. Das Ganze wird für jede Zielplattform einzeln gemacht, wodurch sich die Anwendung für den Benutzer zu 100 Prozent nativ anfühlt.

Anzeige
Anzeige

Dann wäre noch ein weiteres Modul mit dem Namen Platform übrig. Das stellt ein Stück weit die Verbindung zwischen den beiden anderen Modulen her. Teil des Common-Moduls sind zu erwartende Klassen ohne die eigentliche Implementation – ähnlich zu Interfaces. Nur das die Klassen weitaus mächtiger sind. Sie können wie normale Klassen beispielsweise auch Konstruktoren besitzen.

Anzeige
Anzeige
expect class Foo(val name: String) {
  fun bar()
}

fun main(args: Array) {
  Foo().bar()
}

Möchte man die Bar-Funktion nun tatsächlich für, sagen wir die Java Virtual Machine (kurz: JVM) implementieren, wird eine weitere Klasse benötigt – jetzt jedoch im Platform-Modul. Die könnte dann wie folgt aussehen:

actual class Foo actual constructor(val name: String)
  actual fun bar() {
    println("Hallo $name.")
  }
}

Das Prinzip von Expect und Actual funktioniert aber nicht nur für Klassen. Auf ähnliche Art und Weise können auch Top-Level-Funktionen oder Typ-Aliasse erzeugt werden. Wie ihr darüber hinaus selbst Multiplattform-Projekte in Kotlin schreiben könnt, erfahrt ihr in der offiziellen Dokumentation.

Anzeige
Anzeige

Multiplattform-Projekte sind noch experimentell

Multiplattform-Projekte wurden in der Kotlin-Version 1.2, welche im November 2017 veröffentlicht wurde, eingeführt und seitdem stark weiterentwickelt. Dennoch sind die Features vorerst experimentell und nicht ausgereift. Das grundlegende Konzept ist jedoch bereits klar und könnte in den nächsten Monaten und Jahren einiges verändern. Auch unter dem Gesichtspunkt, dass Kotlin sich immer mehr zu einer universellen Programmiersprache mausert. Egal ob für Javascript, Android, die JVM, iOS oder Desktop – überall kann Kotlin bereits verwendet werden.

„Wir haben uns entschieden, unsere Expertise in Programmiersprachen zu nutzen und eine Sprache zu erschaffen, die die Leute brauchen.“

Mit Multiplattform-Projekten geht Jetbrains jetzt den nächsten logischen Schritt und folgt damit weiter den Worten von Andrey Breslav, dem leitenden Sprachdesigner von Kotlin: „Wir haben uns entschieden, unsere Expertise in Programmiersprachen (sieben IDEs auf dem heutigen Markt, und jede ist fast ein Compiler) zu nutzen und eine Sprache zu erschaffen, die die Leute brauchen“. Denn mit dem Konzept könnte Jetbrains in Zukunft für viele Unternehmen die Art und Weise wie Software entwickelt wird stark vereinfachen. Vielerorts gibt es Tools fürs Web, den Desktop, iOS und Android. All das könnte Kotlin in Zukunft abdecken, wobei ein großer Teil des Codes einfach wiederverwendet werden kann.

 

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
2 Kommentare
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

JK

Und was ist da jetzt groß neu bzw. anders als bei Xamarin?

Antworten
Andreas Domin

Hallo JK,

das ist eine durchaus berechtigte Frage. Einmal ist Kotlin noch etwas universeller als Xamarin mit C#. Es ermöglicht die Entwicklung von mobilen Apps und nativen Anwendungen genauso wie das Schreiben von Websites, indem der Code in Javascript transpiliert wird.

Ich habe mich selbst bislang nur oberflächlich mit Xamarin beschäftigt und dort bereits festgestellt, dass das ganze nicht sehr einsteigerfreundlich zu sein scheint (korrigiere mich gerne, sollte ich mich täuschen). Bei Kotlin ist das meiner Meinung nach anders. Ein Vorteil bei Kotlin besteht zudem darin, dass die Sprache eine offizielle von Android unterstützte Programmiersprache ist, die zudem viele Ähnlichkeiten zu Swift aufweist, also der neuen Sprache für iOS. Damit ist die Verwendung von C# eher ein Rückschritt.

Jedoch ist der grundlegende Ansatz von Xamarin und Kotlin Multiplatform tatsächlich sehr ähnlich. Die Dokumentation von Kotlin zeigt jedoch direkt den Ansatz auf einer Seite auf und wie das Ganze umgesetzt werden kann. Mit den Code-Beispielen in diesem Artikel kann sich jeder bereits die Umsetzung vorstellen. Bei Xamarin fällt mir das noch sehr schwer.

Viele Grüße aus Hannover
Andreas

Antworten

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige