Penerapan Launch Argument dalam pengembangan aplikasi iOS

Cara mengkombinasikan launch arguments pada build settings dengan user defaults untuk memudahkan proses debugging

Auriga Aristo
Dipantry
3 min readDec 20, 2020

--

Photo by Markus Spiske on Unsplash

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.

Screenshot by Author

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…

--

--

Auriga Aristo
Dipantry

4+ years in Backend Developer | PHP, Java/Kotlin, MySQL, Golang | New story every week