Macoun 2019: Von SwiftUI bis NFC

Seite 5: Cross Platform Entwicklung mit Kotlin

Inhaltsverzeichnis

Seit Jahrzehnten gibt es immer wieder verschiedenste Ansätze für plattformübergreifende Entwicklung um im Idealfall Code auf anderen Plattformen wiederzuverwenden. Swift auf Android ist so ein Beispiel, kommt aber bislang nicht so recht in die Gänge, weil sich weder Apple noch Google dafür starkmachen.

In der umgekehrten Richtung entwickelt sich mit Kotlin Native gerade eine interessante Alternative, die die Verwendung der offiziell für Android empfohlenen Programmiersprache für iOS und tvOS ermöglicht, watchOS-Unterstützung ist in Planung. IDE-Hersteller JetBrains investiert kräftig in das Projekt. Kotlin läuft unter Android meist auf der Java Runtime, mit Kotlin Native wird dagegen nativer Code erzeugt, der mit einigen Klimmzügen sogar direkt in Xcode kompiliert, eingebunden und debugt werden kann.

Fast hätte sich Alexander von Below in seinem Vortrag mit einem Kotlin-Beispielprojekt die Finger schmutzig gemacht – hätte er nicht vorher Handschuhe und Mundschutz angelegt, um die bösen Android-Viren abzuwehren. Zuvor sprengte eine Gruppe von Macoun-Aktivisten unter dem Schlachtruf "Native Development Forever – Tod dem Androiden" den Saal und bombardierte von Below mit Plastik-Pfeilen aus Spielzeugpistolen, die den Teilnehmern zum Abreagieren in einem Spielzimmer zur Verfügung standen.

Arbeitsschutz beim Umgang mit Android muss sein. Alexander von Below legt Handschuhe und Mundschutz an, bevor es an die Arbeit mit Kotlin geht.

(Bild: Ortwin Gentz)

Einen anderen Ansatz zur Einbindung von plattformübergreifendem Code schlug Marco Feltmann vor. Dabei wird gemeinsamer Code in der Programmiersprache Go geschrieben und über ein binäres Framework in die App eingebunden.

Go kann seit jeher Code für die verschiedensten Prozessorarchitekturen erzeugen. Nachteil ist allerdings die sperrige Parameterübergabe vom und zum Go-Framework. Unterstützt werden nur skalare Datentypen, Strings und Binärdaten, so dass komplexe Objekte zunächst serialisiert und deserialisiert werden müssen, beispielsweise über JSON. Auch ein Debugging des Go-Codes in Xcode ist nicht möglich.

Plattformübergreifender Code geht auch mit Go, zeigt Marco Feltmann.

(Bild: Macoun, Ralf Ebert)

Inspiriert von spannenden Vorträgen, guten Gesprächen und lustigen Episoden traten die Macoun-Teilnehmer am Sonntag-Abend die Heimreise an. Die nächste Macoun findet am 26. und 27.9.2020 wieder im zweitägigen Format statt. Und wer nicht so lange warten möchte: Die Apple-Entwicklerkonferenz Heise MacDev findet vom 3. bis 5. Dezember in Karlsruhe statt. (thk)