Penerapan Launch Argument dalam pengembangan aplikasi iOS
Cara mengkombinasikan launch arguments pada build settings dengan user defaults untuk memudahkan proses debugging
Pernahkah kamu berpikir, mengapa di dalam game terdapat sebuah cheat code yang sudah disediakan oleh developernya? Sebagian besar kejadian ini ditemukan pada game lawas seperti Zombie Shooter. Namun, mengapa? Apakah mereka sengaja membuat agar pemain bisa menggunakan cheat? Jawabannya adalah tidak. Cheat code digunakan untuk proses debugging agar lebih memudahkan developer untuk mencari bug.
Biasanya, sebuah aplikasi akan melewati proses panjang untuk mencapai tampilan utama, ada splash screen, onboarding, asssessment jika ada, coachmark dan lain-lain. Jika seorang developer harus melewati proses itu setiap kali melakukan first build, pastinya akan merepotkan. Setelah pengembangan development tools yang cukup panjang, akhirnya development kit seperti Android Studio dan Xcode membedakan proses debug dan build sehingga cheat code yang telah sebelumnya tidak bisa digunakan pada proses build atau hanya bisa digunakan pada proses debug.
Di dalam Xcode, cheat code ini dikenal dengan nama launch argument
. Argumen ini akan dibaca oleh Xcode setiap kali kita melakukan proses build sehingga kita mampu melewati proses menjadi lebih cepat.
Proses tanpa Launch Argument
Kita ambil contoh aplikasi Wufy: Dog Training, aplikasi yang kukembangkan bersama para writer di medium ini. Jika kalian mencoba aplikasi tersebut, saat pertama kali launch aplikasi terdapat onboarding dan assessment, lalu kamu baru bisa sampai ke tampilan utama. Sungguh panjang prosesnya bukan?
Bayangkan hal itu terus terjadi saat kami diharuskan untuk melakukan first build. First build atau proses uninstall dan install ulang ini terkadang diperlukan ketika developer ingin mengambil ulang data yang di-load saat proses assessment.
Asumsikan pada contoh ini, assessmen hanya mengambil data tanpa diproses.
Biasanya developer akan menggunakan UserDefault
untuk melewati onboarding dan assessment setelah melakukan first build. *INGAT* setelah melakukan first build, namun tetap muncul pada first build. Contoh kita menggunakan UserDefault yang bernama firstBuild
, variabel ini bersifat boolean sehingga pada awalnya data tersimpan sebagai true
lalu diubah menjadi false
ketika user telah menyelesaikan proses assessment. Data UserDefault
sudah di-lock sehingga tidak bisa diubah secara manual. Hal ini biasa digunakan oleh developer pemula.
Contoh pemakaian seperti contoh di atas. Jika showIntro
adalah true, maka aplikasi akan memunculkan onboarding dan assessment.
Proses dengan Launch Argument
Namun, bagaimana jika kejadiannya adalah developer ingin melewati introduction walaupun melakukan first build atau ingin mengulangi introduction secara terus menerus tanpa harus reinstall aplikasi? Caranya adalah menerapkan launch argument ini. Dengan menerapkan launch argument ini, developer akan merasa seperti mengubah UserDefault atau menetapkan isi UserDefault secara manual, melalui pengaturan build di Xcode. Langkah-langkahnya adalah sebagai berikut:
Pertama, pilih “Edit Scheme” pada pengaturan build atau melalui Product Scheme > Edit Scheme.
Setelah muncul window baru, ubah tab menjadi argument, lalu kamu bisa menambahkan argumenmu di sana.
Pada bagian arguments passed on launch
, kita masukkan userdefaults yang mau dipasang. Contohnya kita masukkan -firstBuild 0
yang berarti pada userdefault yang bernama firstBuild
akan diisi 0 atau false
pada setiap run dijalankan.
Setelah terisi, maka aplikasi akan selalu melewati proses introduction. Tanda centang di sebelah argumen berarti argumen tersebut aktif dan berjalan dengan baik. Kamu bisa mematikannya tanpa menghapusnya jika tidak ingin menggunakannya.
Kesimpulan
Dengan menggunakan UserDefault dan Launch Argument, kamu akan dimudahkan untuk melewati dan mempercepat proses debugging. Tidak lagi kamu harus melakukan reinstall jika ingin berulang kali melalui proses introduction. Semakin cepat proses debugging, waktumu untuk bekerja akan semakin nyaman dan efisien.
Selamat mencoba dan semoga berhasil…