Created with to build something
Version: 5.0.0
cover-lika-liku-membangun-aplikasi-berbasis-cross-platform

FreeTalk

Lika Liku Membangun Aplikasi Berbasis Cross Platform

Sedikit pengalaman dalam membangun aplikasi berbasis cross platform yang memungkinkan dapat berjalan di semua platform dan perangkat.

Mar 23, 2021

Membangun aplikasi pada sebuah platform tidaklah seindah yang dibayangkan, berbeda dengan ruang lingkup web yang cenderung liar dan bisa diakses dimana saja baik desktop sampai smartphone. Apalagi jika melihat PWA maupun SPA yang sangat memudahkan pengguna untuk menginstall sebuah website layaknya sebuah aplikasi native, bisa dikatakan cross platform mungkin lahir dari sini dan mungkin kebanyakan beberapa yang baru terjun dalam pengembangan aplikasi akan berpikir kalau ada yang mudah kenapa musti yang sulit.

Beberapa tahun belakangan ini saya mengerjakan suatu project yang mungkin dikatakan terlalu ekstrim untuk dikerjakan sendiri, ya bagaimana tidak membangun sebuah aplikasi untuk sebuah perusahaan bukanlah hal yang mudah. Terlebih lagi pandemi Covid - 19 menyebabkan sesuatu yang tidak dipastikan pada bidang finansial tapi mendigitalkan sesuatu adalah hal yang wajib dilakukan untuk meminimalisir penyebarnya.

Aplikasi tersebut sangat sederhana untuk di deskripsikan namun sangat sulit untuk di implementasikan, membuat sebuah aplikasi ERP yang dapat dijalankan diseluruh ekosistem perangkat mainstream saat ini seperti komputer dan smartphone adalah tantangannya. Solusinya sangatlah mudah hanya saja mendatangkan solusinya yang menjadi persoalan, saya mengetahui bahwa kalian bisa mengerjakannya namun untuk sebuah ekosistem yang memiliki banyak jenis sistem operasi menjadi permasalahan untuk memilih bahasa pemrograman apa yang cocok.

Sejatinya kamu bisa memilih membuat aplikasi berbasis website, yap itu adalah cara termudah hanya saja penerapannya dianggak kurang tepat jika pengguna memiliki ekspetasi yang berlebihan sebagai contohnya : setiap aplikasi yang ada di smartphone pasti sedikit tidaknya ada fitur notifikasi, kenapa ini tidak bisa dimanfaatkan secara sepenuhnya.

Karena opsi menggunakan website sudah tidak memenuhi apa yang dibutuhkan akhirnya saya menggunakan jalan tengah untuk menggunakan framework dan library cross platform untuk membuat aplikasi tersebut, hingga saya menyadari kalau membuat aplikasi berbasis cross platform bukanlah hal yang mudah meskipun bahasa pemrograman yang digunakan setidaknya minimal satu.

Konsep Cross Platform

Konsep dari sebuah cross platform sangat bergantung dengan bagaimana framework atau library cross platform itu dibuat, konsep cross platform yang paling mainstream di desktop adalah menggunakan webview untuk membuat aplikasi native desktop. Bisa dikatakan bahwa PWA namun bentuk aplikasi native dan bukan dalam bentuk aplikasi ekstensi dari browser. Pada model aplikasi desktop yang memanfaatkan webview sebagai inti aplikasi, biasanya framework atau library mengandalkan browser engine seperti chromium jadi ketika terdapat kebutuhan untuk menggunakan fungsi native seperti notifikasi maka itu akan bergantung dengan browser engine.

Ada lagi konsep lain seperti membuat jembatan antara bahasa pemrograman yang digunakan framework dengan bahasa pemrograman dari asal, dalam hal ini framework tersebut akan selalu kebergantungan secara aktif dengan native module. Tentu hal ini lumayan bagus, namun untuk keadaan tertentu kadang beberapa orang tidak begitu menyukainya apalagi jika UI dari aplikasi datang dari native module.

Konsep terakhir yaitu memiliki konsep serupa seperti game engine namun native module masih bergantung dari bahasa pemrograman asal, dalam hal ini pembuatan UI pada konsep cross platform ini sangat bergantung dengan graphic engine yang digunakan baik itu OpenGL maupun Skia. Dalam keadaan tertentu ini lumayan menarik karena native module minim untuk digunakan karena framework dengan konsep seperti ini hanya perlu menggunakan kanvas dari aplikasi native sehingga penggunaan native module untuk menampilkan UI sangat hampir tidak terjadi.

Butuh Effort Yang Tinggi

Saya mungkin orang yang tidak begitu berpengalaman dalam mengembangkan sebuah aplikasi pada sebuah device, dalam hal lain itu mengembangkan aplikasi desktop maupun mobile. Karena saya cenderung sangat lebih mengerti mengembangkan sebuah website sehingga pemahaman terhadap bahasa pemrograman seperti VB Net, Java, Kotlin, C++ cenderung kurang. Selama saya mengembangkan sebuah aplikasi cross platform, saya sering kali mengalami kendala terlebih lagi jika itu berkaitan dengan native module.

Tidak bisa dipungkiri memang aplikasi pada sebuah device jika tidak bisa mengakses native module pada device tersebut rasanya seperti useless, mungkin pengguna anda mengira bahwa itu harusnya bisa terjadi namun kenyataannya dibelakang implementasinya rumit tidak sekira apa yang dibayangkan. Dalam suatu kasus tertentu kita tidak mungkin kebergantungan dengan iibrary pihak ketiga yang menompang hidup dari aplikasi cross platform yang kita buat, oke terlebih lagi pengembangan cross platform saat ini cenderung lebih liar lagi bahkan setiap pembaruan dalam dunia cross platform bisa dikatakan sebagai petaka jika ada yang depreceted.

Cost Yang Rendah

Saya mengakui bahwa menggunakan library atau framework cross platform dalam mengembangkan aplikasi lumayan murah, ya dengan segudang solusi yang ditawarkan dari library atau framework cross platform hampir bisa dikatakan semuanya dapat terpenuhi. Salah satu contoh yang paling terlihat yaitu pada aplikasi seperti sosial media, anda bisa bertaruh meskipun mereka menggunakan bahasa pemrograman asal dari setiap platform untuk mengeksekusi perintah maka untuk menampilkan UI kalian bisa mengandalkan framework saja untuk mengatasinya.

Meskipun anda juga menginginkan bahwa saya tidak mau membuat native module, itu tidak masalah selagi hal itu benar - benar berdampak positif pada aplikasi yang anda kembangkan. Biarkan library atau framework cross platform kalian bekerja dan siapkan perangkat pada tiap - tiap platform untuk membuild aplikasinya ke fase production.

Mungkin saya bisa percaya bahwa setiap pengembang tidak masalah jika ingin membuat logika pemrograman untuk memproses sesuatu pada tiap - tiap platform, akan tetapi pengembang akan sangat berkompromi jika membuat sebuah UI akan tetapi cara implementasinya berbeda - beda pada setiap platform.

Setiap Perubahan Ada Harga Mahal Yang Harus Dibayar

Perubahaan pada sebuah library atau framework cross platform terkadang membuat sebuah petaka bagi alat (library atau framework cross platform) itu sendiri, saya bisa katakan hampir seluruhnya terjadi meskipun pengembangnya sangat peduli dengan perubahan itu. Harga mahal tersebut berupa deprectednya suatu fungsi / fitur, di satu sisi ini adalah perkembangan yang bagus untuk meningkatkan keamanan dan di satu sisi kita sebagai pengembang yang menggunakan tool tersebut akan sangat kesulitan untuk mengembangkannya apalagi jika perubahan itu terjadi saat pengembangan.

Saya sudah menggunakan 3 library atau framework cross platform yang sangatlah terkenal dan semuanya melakukan hal tersebut, memang disamping kabar buruk tersebut selalu ada solusi namun sayangnya solusinya pun juga membutuhkan waktu yang tidak sedikit.

Kadang serba salah jika ingin mengeksekusi hal ini, jika ingin menetap di versi A maka kita harus siap menahan resiko yang terjadi namun jika ingin naik ke versi B maka kita pun juga harus siap menyediakan waktu untuk memperbaikinya atau sebuah module tidak berjalan sama sekali.

Kesimpulan

Pada kesimpulan artikel ini saya sudah cuek sebenarnya dengan komparasi framework atau mending si biru muda atau biru tua, semuanya sama - sama memiliki kelebihan dan kekurangannya. Hanya saja jika kalian tidak punya waktu untuk mengembangkan aplikasi yang mengharuskan bisa berjalan di semua platform dan memiliki sedikit pengalaman pada bahasa pemrograman masing - masing platform, saya rasa sangat worth it untuk dilanjutkan.

Akan tetapi jika kalian tidak punya waktu untuk belajar bahasa pemrograman di masing - masing platform, sepertinya kalian harus berpikir untuk mempelajarinya ya setidaknya tahu cara menggunakannya karena kadang kala library atau framework cross platform rasanya hanya cocok untuk menghandle UI aplikasi dan kurang cocok untuk menghandle native module layaknya seperti : notifikasi di windows atau android, akses file system, mengambil gambar melalui kamera dan lain sebagainya.

Ingin Berkomentar ?

Gunakan fitur komentar dengan bijak demi keamanan dan kenyamanan anda saat berselancar di dunia maya ini, mungkin undang - undang atau peraturan dari sebagian wilayah akan menjerat aktivitas yang ada pada kolom komentar.