“Apa yang Harus Saya Pelajari Agar Dapat Menjadi Programmer Android yang baik?”
Dan inilah jawaban saya….

Pertanyaan tersebut sering ditanyakan ke saya. Awalnya sempat bingung harus dijawab seperti apa, karena memang pada proses pembelajaran setiap orang mempunyai cara dan tahapan masing-masing. Mari kita coba bedah satu per satu apa saja yang harus dipelajari untuk menjadi seorang Programmer Android. Umumnya dalam proses pembelajaran, dibagi menjadi beberapa tahap. Mulai dari basic hingga advance.

Umumnya dalam proses pembelajaran, dibagi menjadi beberapa tahap. Mulai dari basic hingga advance. Mulai dari 0 hingga 100. Mari kita mulai dari yang paling basic, yaitu bahasa pemrograman. Untuk programmer Android, dapat memilih salah satu bahasa yang umum digunakan, yaitu Java dan Kotlin.

Untuk Java, tentu sangat familier mengingat bahasa ini diklaim oleh mereka sudah digunakan di lebih dari 3 miliar perangkat, dan bahasa ini sering dijadikan sebagai bahasa yang dipelajari di bangku perkuliahan, menjadikannya sebagai bahasa yang mudah dipelajari. Namun pada 2017, Google mulai memperkenalkan Kotlin sebagai bahasa yang didukung dalam pengembangan Android. Google juga merekomendasikan Kotlin sebagai “preffered language” Android.

Introduction to Kotlin (Google I/O ‘17)

Berikutnya yaitu fundamentalnya, seperti pengetahuan terkait OOP (Object Oriented Programming), Algoritma, maupun Struktur Data. Mengapa disebut fundamental? Karena sangat penting dan mendasar. Bila tidak dipelajari diawal dan tidak dipelajari dengan baik, tentunya mengalami kesulitan di tahap berikutnya.

Version Control? Tentu sangat penting meskipun opsional. Jika kita bekerja secara individu, yang satu ini bersifat opsional. Namun bila kita bekerja secara kelompok, sangat penting untuk mempelajarinya. Adapun fungsinya agar hal yang kita kerjakan tersimpan dengan baik dan tidak mengganggu/merusak pekerjaan teman kita. Yang lumayan populer adalah GitHub, GitLab, dan BitBucket.

Berikutnya adalah pelajari IDE yang digunakan untuk membuat aplikasi Android. Dalam hal ini saya menggunakan Android Studio. Mengapa? Karena Android Studio memiliki fitur yang memang spesifik dibuat untuk menunjang proses development Android. Seperti Debugger, CPU Profile, Android SDK, atau Emulator.

Langkah selanjutnya adalah mempelajari komponen yang ada di dalam sebuah aplikasi. Seperti Lifecycle App (siklus daur ulang aplikasi), Task (handler/ asynctask/ coroutine/ worker/ thread), Logic & Interface (mengatur bagaimana logika dan tampilan berjalan secara bersamaan tanpa saling mengganggu). Terkhusus untuk Interface, pelajari lebih detail terkait komponennya seperti Button, Text, Layout, Fragment, dan lain lain.

Jika aplikasi yang akan dibuat membutuhkan sensor pada perangkat seperti kamera, mikrofon, atau yang lain, pelajari pula cara penggunaan sensor tersebut, bagaimana cara mengaksesnya, dan perlu diingat bahwa sebagian sensor tersebut perlu izin dari pengguna perangkat sehingga pelajari pula cara meminta izin untuk mengakses sensor tersebut.

Semisal kita ingin membuat aplikasi to do list, kita perlu menyimpan list tersebut ke dalam media penyimpanan, sehingga kita perlu belajar cara menyimpan datanya. Dalam Android sendiri terdapat beberapa pilihan Storage, di antaranya SQLite, Shared Preferences, atau Realm.

Yang satu ini opsional, tetapi lebih baik juga ikut dipelajari. Yap benar, Architecture. Fungsi dari architecture sendiri adalah agar aplikasi yang kita kembangkan memiliki struktur yang mudah dipahami dan berjalan lebih efisien. Untuk Android, terdapat beberapa macam architecture, seperti Clean, MVC, MVP, MVVM, dan lain lain. Fungsi dari architecture ini juga mempermudah proses pembuatan skrip testing seperti unit test atau automatic testing.

Agar aplikasi yang kita kembangkan dapat berkomunikasi dengan server, maka kita perlu mempelajari cara koneksi HTTP di aplikasi tersebut. Dapat dengan menggunakan library maupun membuat function tersendiri. Lalu akan lebih baik jika kita memahami pula format yang digunakan dalam pertukaran informasi tersebut. Umumnya menggunakan format JSON atau XML. Pelajari pula REST API agar memahami cara penerapan di segi aplikasinya.

3rd party libraries? Gunakan saja, tidak ada salahnya kok. Library tersebut berfungsi agar memudahkan dan mempercepat proses pengembangan aplikasi. Seperti Firebase, Google Maps, Mixpanel, dan lain-lain.

Terkait keamanan aplikasi sendiri, Android memiliki beberapa cara. Di antaranya menggunakan Keystore, R8, atau Proguard.

  • Keystore berfungsi untuk memverifikasi bahwa aplikasi yang dirilis adalah benar dibuat oleh kita.
  • R8 berfungsi untuk code shrinking, memangkas kode yang dirasa tidak diperlukan oleh sistem.
  • Proguard digunakan untuk obfuscate atau mengacak kode sehingga tidak terbaca dengan mudah (encrypt).

Untuk compile project yang sudah kita buat menjadi file .APK atau .AAB (App Bundle), maka kita perlu mempelajari build type dan build flavor. Build Type adalah tipe compile yang bisa kita gunakan seperti Release (untuk build .APK atau .AAB yang akan di upload ke Play Store) dan Debug (untuk build .APK atau .AAB yang digunakan untuk proses develop dan testing, karena catatan log akan terlihat). Sementara untuk Build Flavor merupakan penamaan Environment atau tahapan dalam development dan testing. Yang saya gunakan biasanya Develop, Testing, dan Production. Untuk build .APK atau .AAB yang digunakan oleh saya pribadi, saya menggunakan Build Flavor Develop. Sementara untuk tester, menggunakan Flavor Testing. Lalu untuk rilis ke Play Store, menggunakan Flavor Production.

Bila semua aspek sudah kita pelajari, sampailah kita pada tahap terakhir, yaitu release/publish aplikasi ke Play Store. Yang dibutuhkan untuk merilis suatu aplikasi adalah tentunya akun Google Play Store. Kita perlu membayar sejumlah uang untuk dapat mengupload aplikasi kita ke dalam Play Store. Didalam Google Play Store Console, kita dapat memilih tahapan rilis aplikasi kita, ada internal test, close testing, open testing, maupun production. Masing-masing dibedakan dengan berapa banyak orang atau ruang lingkup yang dapat menginstall aplikasi tersebut.

Selesai? Tentunya tidak. Ya namanya saja belajar, tidak akan selesai. Yang paling penting dalam tahap belajar mengembangkan aplikasi Android adalah tidak mudah menyerah dan giat belajar. Lakukan pula Continous Improvement, karena dunia programming terus berkembang setiap harinya.

Seperti kata-kata bijak,

“Belajar dari kemarin, hidup untuk sekarang, berharap untuk besok. Hal yang paling penting adalah jangan berhenti bertanya.”

Bagaimana, tertarik menjadi programmer Android? Pelajari skill-skillnya bersama SUHU. Kontak kami di mail@suhu.co.id.

Febry Dwi Putra
Mobile Programmer TLab

Leave a Reply

Your email address will not be published.