ANDROID
Gambar 1.
Proses Manajemen Proyek Pengembangan Aplikasi Android
Dari gambar tersebut, saya coba jabarkan secara singkat satu per satu:
1. Dimulai dari mendefinisikan ide dan persyaratan aplikasi
Apabila Kita hendak mengembangkan sebuah aplikasi, yang patut kita lakukan
pertama kali adalah mendefinisikan ide Kita ke dalam sebuah tulisan, kemudian dari
ide tersebut berkembang menjadi sebuah masalah. Dari masalah tersebut, tugas Kita
selanjutnya adalah berusaha memecahkan permasalahan menjadi solusi. Di antara
tahap mencari solusi di dalam sebuah masalah, tentu ada uraian-uraian proses
pemecahan masalah, nah, dari situ kita dapat menentukan kebutuhan apa saja di
dalam aplikasi yang hendak dibuat. Untuk persyaratan (requirements) aplikasi, ada
banyak poin di dalamnya, requirement aplikasi ini sangat penting sebagai dasar
untuk mendefinisikan dan mengelola scope pekerjaan atau scope produk. Untuk
mendefinisikan requirements ini ada banyak teknik yang dapat dilakukan,
diantaranya:
brainstorming ataupun mindmapping
berdiskusi dengan anggota grup tentang ide produk aplikasi yang hendak dibuat,
dan mengupayakan pencarian solusi dari permasalahan yang ada sehingga
menjadi ide yang matang dari berbagai anggota grup, di sini masing-masing
anggota mencoba mem-breakdown masalah agar nantinya masalah tersebut
dapat diselesaikan dengan pendekatan aplikasi.
interview
mewawancarai orang yang ahli dalam bidangnya atau orang yang memiliki
informasi yang dapat memberikan masukkan terkait requirement aplikasi yang
hendak Kita buat sehingga Kita menjadi tahu detail permasalahan yang dihadapi
dari ahli tersebut, dan tentunya berupaya mencapai solusi dengan pendekatan
aplikasi,
kuesioner
apabila Kita masih belum yakin apakah ide Kita akan laku di pasaran, langkah
yang bisa Kita ambil adalah membuat kuisoner dan menyebarkannya ke target
pengguna aplikasi, Kita dapat membuat sejumlah pertanyaan dan ditujukan
kepada responden dalam jumlah yang banyak dan bervariasi sehingga didapat
akumulasi informasi dengan cepat,
observasi
teknik melihat dan mengamati secara langsung orang-orang dilingkungannya,
pekerjaannya dan proses-nya. Observasi dikenal juga dengan nama “job
shadowing”.
prototype
Kita dapat membuat prototype aplikasi yang hanya berupa tampilan atau model
kerja dari Aplikasi yang hendak dikembangkan. Prototype ini dapat Kita
promosikan ke pengguna ataupun penanam modal, yang nantinya diharapkan Kita
mendapatkan feedback atau bekal requirement untuk aplikasi yang hendak dibuat.
2. Wireframing atau protoyping tampilan antarmuka (UI) aplikasi
Untuk dapat mengembangkan aplikasi, Kita harus mempunyai gambaran jelas
seperti apa nantinya tampilan antarmuka aplikasi Kita. Dan dari tahap wireframing
inilah Kita dapat mengetahui apakah penempatan fitur atau menu ini sudah sesuai
layoutnya atau belum, apakah desainnya sudah sesuai pattern OS Android atau
belum, apakah tampilannya sudah kelihatan nyaman dipkitang atau belum, dan
apakah desain yang diterapkan sudah sesuai User Experience atau belum. Ada
banyak tools prototyping yang akan membantu kita mendesign dengan cepat.
Diantaranya Adobe Photoshop (Win/Mac), Sketch (Mac), Gravit Design
(Win/Mac/Linux), Invision Studio (web), Zeplin.io (web), Figma.com (web),
dan app.studio.design (web). Ketika kita telah membuat wireframing tampilan
antarmuka aplikasinya, selanjutnya adalah membuat desain antarmukanya
menggunakan tools di atas, agar nantinya ketika Kita telah memasuki masa
pengembangan aplikasi, Kita tinggal memindahkan desain tersebut ke layout
Android. Layout Android dikembangkan dengan menggunakan bahasa pemrograman
XML, dan ditaruh di dalam folder resource (res) layout Android. Dan perlu diingat,
ponsel dan tablet Android itu memiliki beragam jenis layar dan ukuran, pentingnya
menyiapkan desain yang adaptive, yang mendukung beragam jenis layar tersebut
(heterokapabilitas). Pembahasan Adaptive Design pernah dibahas di artikel
berikut ini.
3. Pengembangan dan pengujian aplikasi
Pengembangan aplikasi Android secara native dapat menggunakan bahasa
Pemrograman Java ataupun Kotlin. Keduanya mempunyai ciri khas masing-masing.
Dan keduanya didukung penuh oleh Android SDK. Namun, apabila Kita tertarik
mengembangkan aplikasi Android secara hybrid, Kita dapat menggunakan berbagai
bahasa pemrograman yang sudah ada, misal dengan javascript nodejs/angularjs
(react-native, ionic), menggunakan html5 (phonegap), atau .NET
(xamarin/visualstudiocode). Baik native maupun hybrid memiliki keunggulan dan
kelemahan masing-masing. Untuk native sendiri karena sudah didukung penuh oleh
Google Android, tentunya semua fasilitas di dalam SDK sudah pasti paling cepat
mendapatkan layanan. Sedangkan hybrid, sangat mengkitalkan komunitas
developernya. Dan dalam tahap pengembangan aplikasi Android, seorang developer
tidak hanya fokus menulis code dalam bahasa pemrograman Java/Kotlin, namun Kita
juga harus mampu menulis code untuk resource antarmuka pengguna dalam bahasa
pemrograman XML dan juga mampu menguji aplikasi yang Kita buat.
Untuk pengujian Aplikasi, ada banyak tools yang dapat dipakai, salah
satunya TestFairy (web), Firebase Reporting (web), ataupun Fabric.io (web). Dan
yang terpenting adalah Kita dituntut untuk mampu membaca Log di Logcat Android
(DDMS/ Android Studio) ketika aplikasi berjalan, dan juga pentingnya
skill debugging dan bugs fixing code Android. Selain itu, pengaturan aplikasi
di manifests penting untuk diperhatikan, misalnya, permission apa saja yang Kita
cantumkan di manifests yang nantinya diminta kepada pengguna. Sudah sesuaikan
permission yang Kita definisikan di manifests, jangan sampai Kita menambahkan
permission yang tidak dibutuhkan Aplikasi apalagi yang berbahaya bagi pengguna
aplikasi Kita. Dan juga bagaimana pengaturan tema masing-masing halaman aplikasi
Kita, semua diatur di manifests ini. Pengaturan lainnya seperti background service
dan broadcast (SMS ataupun push notification), penggunaan memory dan jenis
ukuran layar yang didukung oleh Aplikasi Kita. Semua itu diatur di manifests file ini.
Dan tidak lupa juga pengaturan build configuration di gradle, apakah Kita telah
menggunakan library versi terbaru atau yang stable (minim masalah bugs), dan
apakah target OSnya sudah sesuai dengan OS terbaru, dan sebagainya. Itu semua
harus dipersiapkan oleh Kita sebagai developer.
Berikut ini rincian bagaimana source code yang telah Kita kerjakan di-“build”
menjadi sebuah APK (installer) aplikasi Android.
Gambar 2.
Proses sourcecode yang digodok menjadi sebuah installer (APK)
Gambar 3
Proses menkitatangani APK yang telah di-build di Android Studio