Kotlin Multiplatform Mobile

Yusuf Safrudin
TLabCircle
Published in
4 min readJun 30, 2021

Working on all platforms is an explicit goal for Kotlin, but we see it as a premise to a much more important goal: sharing code between platforms. With support for JVM, Android, JavaScript, iOS, Linux, Windows, Mac and even embedded systems like STM32, Kotlin can handle any and all components of a modern application. And this brings the invaluable benefit of reuse for code and expertise, saving the effort for tasks more challenging than implementing everything twice or multiple times.

Dalam pengembangan aplikasi cross platform kita familer dengan React Native dan Flutter. Sekarang Kotlin akan menambahkan opsi bagi para developer untuk masuk ke ranah cross platform.

Apa itu Kotlin Multiplatform?

Kotlin Multiplatform Mobile merupakan SDK untuk cross-platform yang dikembangkan oleh JetBrains yang memungkinkan kita untuk menggunakan bussines logic yang sama baik IOS atau Android dan mengurangi duplikasi pekerjaan sehingga mudah untuk melakukan maintenance.

Android dan IOS kalau dari segi UI memiliki perbedaan yang sangat signifikan baik dari navigation logic ataupun behavior UI-nya. Ketika kita menggunakan Flutter atau React Native, bagi developer native (IOS maupun Android), masih perlu belajar UI behavior dari masing platform tersebut. Balik lagi ketika menggunakan KMM, developer IOS tidak perlu bingung dengan architecture maupun behaviour UI, begitu juga sebaliknya. Fokusnya lebih ke bussiness logic yang hanya ditulis sekali dan dapat di shared ke masing-masing mobile platform.

Bagaimana cara kerja dari Kotlin Multiplatform?

  • Common code berisi core libraries, business logic yang nantinya dapat digunakan oleh beberapa platform.
  • Untuk dapat di interrop, bisa menggunakan kotlin specific platform (Kotlin/JVM, Kotlin/JS, Kotlin/Native) dimana masing-masing platform memiliki specific libraries dan tools.
  • Melalui platform tersebut kita bisa mengakses native code dari masing-masing platform (Native, JVM, Js).

Dari kotlin module tersebut dapat di compile ke beberapa platform, module di compile ke .framework untuk Kotlin native dimana nanti dapat digunakan oleh IOS App dan .jar untuk Kotlin JVM yang dapat digunakan oleh Android App.

Perbandingan Kotlin Multiplatform dengan Cross Platform lainnya:

  • Single codebase untuk business logic(shared code), tidak seperti framework lain, KMM hanya fokus dengan business logic sehingga kita masih dapat menggunakan native UI.
  • Performance, performa sama seperti ketika menggunakan native app karena shared code di compile menjadi Java bytecode untuk Android dan native binaries untuk iOS.
  • Menggunakan bahasa yang sudah ada, untuk native IOS masih menggunakan swift atau Objective-C dan Android menggunakan Kotlin atau Java, berbeda dengan Flutter harus menggunakan dart, dan React menggunakan Js.
  • Spesifik library, untuk Android bisa menggunakan gradle dan cocoapods untuk IOS.

Kotlin multiplatform saat ini mendukung platform:

  • macOS, iOS, tvOS, watchOS
  • Linux
  • Windows
  • JVM, Android
  • Javascript

Setup

untuk menggunakan Kotlin multiplatfrom kita perlu menyiapkan beberapa tools.

  1. Install Android Studio 4.2 atau yang lebih baru disini.
  2. Install Xcode versi terbaru. Silakan download dari AppStore.
  3. Update Kotlin plugin ke versi yang paling baru.
    Di Android Studio, pilih Tools | Kotlin | Configure Kotlin Plugin Updates.
  4. Install Kotlin multiplatform Mobile Plugin.
    Di Android Studio, pilih Preferences | Plugins, cari plugin Kotlin Multiplatform Mobile di Marketplace.

Buat Project Baru

  1. Di Android Studio, File | New | New Project.
  2. Pilih KMM Application, lalu klik next.

3. Tuliskan nama untuk project-nya.

4. Kamu bisa mengubah masing masing application name-nya, klik finish.

Tunggu hingga project selesai melakukan download dan setup komponen yang dibutuhkan.

Untuk melihat semua struktur mobile multiplatform, ubah view dari android ke project.

Run application

Untuk menjalankan aplikasi Android, Pilih androidApp dan klik Run.

Untuk menjalankan aplikasi IOS, Pilih iosApp dan klik Run.

Kurang lebih seperti itu untuk pengenalan Kotlin Multiplatform. Untuk saat ini Kotlin Multiplatform masih dalam versi Alpha, sehingga kemungkinan akan ada perubahan-perubahan di versi selanjutnya.

--

--