Kotlin Multiplatform Mobile - Wo ist der Haken??

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Kotlin Multiplatform Mobile - Wo ist der Haken??

    Hallo zusammen,

    die Ruhe zwischen den Jahren habe ich genutzt um mich mal ein wenig weiterzubilden. Schon seit einiger Zeit stand auf meiner Agenda die Kotlin Multiplattform Mobile. Ich hab mich mal an diesem Tutorial versucht: Tutorial

    Die Idee dahinter ist einfach erklärt: Man entwickelt die Business Logik in Kotlin (so eine Art Swift). Die wird über beide Plattformen geteilt. Sprich man spart sich ein Großteil der Arbeit, da alle Logik nur einmal entwickelt werden muss. Wenn man auf eine API wie DB oder Kamera zugreifen muss, kann man hierfür für jede Plattform eine eigene Implementierung anlegen. Über eine Art abstrakte Klassen wird das wiederum geteilt. Die UI wird jedoch plattformspezifisch erstellt. In dem Tutorial für Android via XML-Views und Swift via SwiftUI. Sprich man hat Look and Feel der jeweiligen Plattform.

    Die Frage die sich mir jetzt stellt: Wo ist da der Haken?? Jahrelang war ja CrossPlattform (meiner Meinung nach zurecht) verpönt Die Apps waren nichts halbes und nichts ganzes. Insbesondere wenn es dann um Zugriff auf die APIs ging. Auch Batterielaufzeit war eher übel. Hier wird jeweils ein Android und iOS-Projekt mit nativen Komponenten erzeugt. Der Shared Code wird via Framework eingebunden.

    Ich freue mich auf Meinungen!

    Viele Grüße
    Nils

    PS: Ja ich weiß, dass das Zeug noch in der Beta-Phase ist aber dafür läuft es erstaunlich gut. Anders als bei der Konkurrenz aus dem Apple Park... :whistling:
  • Das macht doch Sinn von JetBrains eine Alternative zu Xamarin anzubieten. Da man unter Android schon länger Kotlin as Sprache verwenden kann, auch iOS-Programmier damit zu versorgen.

    Das verstehe ich nicht: "Kotlin (so eine Art Swift)" - Ja, beides sind Programmiersprachen. Kotlin ist älter und läuft auch auf der JVM.

    Plattform unabhängiges Programmieren würde ich nicht als verpönt ansehen. Auch nicht auf mobile Plattformen bezogen. Wenn man da Spiele programmieren möchte, werden wohl viele auf Unity oder Unreal oder ... setzen, um eben auf Android und iOS veröffentlichen zu können, ohne großen Aufwand für die jeweilige Plattform zu haben.
  • manoh schrieb:

    Das verstehe ich nicht: "Kotlin (so eine Art Swift)" - Ja, beides sind Programmiersprachen. Kotlin ist älter und läuft auch auf der JVM.
    Ja klar. Das war jetzt nur eine Erklärung, falls jemand Kotlin nicht kennt. Älter lässt sich nämlich drüber streiten. Klar zuerst Veröffentlicht 2011 aber richtig stabil und auch in Android nutzbar erst seit 2016. Wird ja auch erst die letzen Jahre so promoted.


    manoh schrieb:

    Plattform unabhängiges Programmieren würde ich nicht als verpönt ansehen. Auch nicht auf mobile Plattformen bezogen. Wenn man da Spiele programmieren möchte, werden wohl viele auf Unity oder Unreal oder ... setzen, um eben auf Android und iOS veröffentlichen zu können, ohne großen Aufwand für die jeweilige Plattform zu haben.
    Wobei es zum Beispiel bei Unity immer paar Probleme mit der Akkulaufzeit gibt. Das sind halt so Nachteile, finde ich persönlich.


    manoh schrieb:

    Das macht doch Sinn von JetBrains eine Alternative zu Xamarin anzubieten. Da man unter Android schon länger Kotlin as Sprache verwenden kann, auch iOS-Programmier damit zu versorgen.
    Wenn man das jetzt mal auf technischer Ebene betrachtet. Kotlin wird als C++ via eines Frameworks in Xcode eingebunden. Korrekt? Wie ist das bei Xamarin?
  • Naja, wenn Du das so schreibst, dann klingt das, als ob man Swift 1.0 als stabil bezeichnen kann. Im weitesten Sinne sind das nur Versionsnummer. Habe natürlich auch eine Bedeutung.

    Kotlin kenne ich halt auch nur von der c't bzw. heise.de als Java-Ersatz. Aber so habe ich damit wenig zu tun. Wenn ich unter Android programmieren würde, dann hätte ich mir natürlich das schon längst angeschaut. Wenn ich das richtig in Erinnerung habe, dann hat auch Google irgendwann mal die IDE für Android auf das Produkt von JetBrains gewechselt.

    Mit Xamarin habe ich mich nur kurz vor einigen Jahren beschäftigt. Schon viel zu lange her... Aber anscheinend kann man auch jetzt mit Xamarin.Forms GUI für die beiden mobilen Systeme gestallten.

    Wundert mich nicht, dass eine Spiele-Engine, wie z.B. Unity, die Akkulaufzeit verringern. Wenn da die Physik-Engine ständig Kollisionen, Bewegung usw. berechnet und ständig das Spielfeld gerendert wird. Ist auch sicherlich nicht anders bei Unreal, Godot, Apples SceneKit und was es sonst noch so alles gibt.
  • manoh schrieb:

    dann hat auch Google irgendwann mal die IDE für Android auf das Produkt von JetBrains gewechselt.
    Ja genau. Nennt sich Android Studio. Google hat auch komplett auf Kotlin umgestellt. Also empfehlen das jetzt richtig. Swift 1.0 war sicherlich nicht stabil aber ab Swift 3 ging es dann so langsam.

    Ich werde das ganze mal mit einem Projekt probieren und hier mal mein Feedback schreiben. Ich hab leider nicht das Glück nur iOS machen zu dürfen :D