Pada umumnya, pengembangan mobile apps terbagi menjadi dua, yakni pengembangan dengan Native platform dan Multi-platform. Pengembangan aplikasi dengan Native berarti pengembangan yang menggunakan bahasa pengembangan yang spesifik untuk platform tertentu; jika Android menggunakan Kotlin, sedangkan iOS menggunakan Swift. Sedangkan pengembangan aplikasi Multi-platform, menggunakan satu bahasa dan framework yang hasil kodingannya dapat digunakan di beberapa platform sekaligus; contohnya adalah React Native dan Flutter.
Kelebihan dan kekurangan Native dan Multi-platform Mobile Apps
Baik Native dan Multi-platform mobile apps mempunyai kekurangan dan kelebihan masing-masing.
Native Apps
Kelebihan Native Apps :
- Performa lebih cepat
Karena bahasa pemrograman Native secara resmi dikembangkan oleh platform Android dan iOS khusus untuk kebutuhan platform tersebut, pada dasarnya secara performa akan lebih unggul dibandingkan dengan pengembangan aplikasi dengan bahasa dan framework dari pihak ketiga. Selain itu, di aplikasi Native, library yang digunakan hanya untuk platform tertentu saja. Sehingga ketika mobile apps terkait dijalankan, butuh waktu yang singkat dibandingkan dengan aplikasi cross-platform.
- Up to date sesuai perkembangan OS
Sekali lagi, karena teknologi Native dikembangkan oleh si empunya platform, tentu akan mendapat prioritas jika ada perkembangan OS. Misalnya jika Android memperbarui versi terbaru, maka library untuk bahasa pemrogramannya juga akan segera di update.
Cross-platform Apps
Kelebihan cross-platform mobile apps
- Single code untuk berbagai platform
Hanya diperlukan satu codebase yang dapat digunakan untuk berbagai platform.
- Biaya pengembangan dan maintenance lebih rendah
Jika hanya dibutuhkan sekali proses coding untuk kemudian digunakan oleh beberapa platform sekaligus, maka biaya pengembangannya pasti akan lebih murah bukan? Kita hanya membutuhkan team programmer yang menguasai development cross-platform, dibandingkan dengan Native yang membutuhkan programmer untuk masing-masing platform.
- Deployment lebih cepat
Jika customer kita berada di platform Android dan iOS, dengan sekali coding maka mobile apps kita akan siap digunakan di kedua platform.
Kekurangan dari cross-platform
- Dukungan platform di masa depan
Pada umumnya SDK cross-platform dikembangkan oleh pihak ketiga dan bukan oleh pemilik platform seperti Google dan Apple. Oleh karena itu, jika ada upgrade operating system maka kita harus menunggu update library terkait. Bisa saja nanti di masa depan, pihak ketiga tidak lagi menambahkan library terupdate, sehingga kita akan kesulitan untuk melanjutkan pengembangan mobile apps yang mendukung perkembangan operating system.
- Ukuran mobile apps lebih besar
Cross-platform apps membutuhkan library untuk kedua platform secara bersamaan di dalam satu apps. Oleh karenanya, ukuran mobile apps akan lebih besar, sehingga membutuhkan kapasitas penyimpanan yang lebih besar. Begitu juga apabila apa update, ukuran file yang harus didownload akan lebih besar.
- Development yang lebih kompleks
Developer aplikasi cross-platform harus menguasai kedua platform dengan baik, termasuk perbedaan-perbedaan minor antara satu platform dengan yang lain. Kemudian, developer juga harus memperhatikan bagaimana agar mobile apps kita dapat berfungsi secara optimal di kedua platform, termasuk menyesuaikan design, dll.
Apa itu Kotlin Multiplatform Mobile?
Development cross-platform mobile apps semakin populer, karena mampu menghemat banyak waktu dan biaya. Cross-platform development akan sangat berguna jika kita mengejar waktu deployment untuk mobile apps.
Kotlin Multiplatform Mobile (KMM) adalah salah satu cross-platform development kit yang terbaru, yang banyak menjadi perbincangan saat ini. Jika sebelumnya kita mengenal Kotlin sebagai bahasa pemrograman untuk Native Apps development, dengan adanya KMM sebagai software development kit, kita dapat menggunakan single codebase untuk business logic, yang dapat digunakan pada pengembangan aplikasi Android dan iOS di waktu yang sama. Kita hanya membutuhkan untuk menuliskan coding untuk masing-masing platform untuk implementasi Native UI di mobile apps kita, atau untuk implementasi API yang hanya ditemukan di platform tertentu. KMM dikembangkan oleh Jetbrain, rilis pada tahun 2016, dan pada tahun 2021 masih dalam tahap Alpha, sehingga masih membutuhkan banyak pengembangan kedepannya.
Kelebihan KMM
- Menghemat waktu untuk mengembangkan coding untuk dua platform yang berbeda (Android dan iOS)
- Performa serupa dengan Native apps, dan kompatibel dengan Java programming.
- Familiaritas programmer Android lebih tinggi