10 Fitur Yang Harus Anda Implementasikan Dari Awal di Aplikasi Ponsel

Nico Prananta
Hyperjump Tech
Published in
6 min readDec 16, 2020

--

So many features to develop to make the best iOS and Android app.
Mobile App Development is hard, so many things to develop!

Ada banyak tantangan dalam mengembangkan aplikasi ponsel baik untuk iOS atau Android. Misalnya, waktu membangun aplikasi (build time) yang lama, penolakan dengan alasan yang tidak masuk akal dari App Store, fragmentasi perangkat, dan masih banyak lagi. Dan karena butuh waktu yang cukup lama untuk mengirimkan update ke pengguna aplikasi, hidup Anda akan lebih damai dan pengguna aplikasi Anda akan bahagia bila Anda sudah mengimplementasikan fitur-fitur berikut dari awal walaupun fitur-fitur ini tidak ada hubungannya dengan fungsi utama aplikasi Anda.

#1 Crash Tracking dan Reporting

Anda perlu memantau crash yang terjadi di aplikasi Anda dari awal karena crash pasti terjadi. Tanpa pemantauan crash, bagaimana Anda bisa tahu bila aplikasi Anda mengalami crash di ponsel pengguna?

Walaupun iOS dan Android sudah memiliki sistem bawaan untuk memantau dan melaporkan crash, solusi-solusi dari layanan pihak ketiga seperti Firebase Crashlytics dan Instabug menawarkan fitur-fitur tambahan yang berguna, seperti sentralisasi pemantauan dan pelaporan crash untuk iOS dan Android secara bersamaan, integrasi dengan layanan-layanan eksternal, dan lain-lain.

#2 Logging

Bila Anda menggunakan layanan-layanan crash tracking seperti yang disebutkan di atas, mereka biasanya sudah memasukkan fitur logging yang lengkap dan Anda sebaiknya menggunakannya. Atau Anda dapat juga menggunakan logging framework lain seperti CocoaLumberJack di iOS.

#3 App Analytics

App Analytics can help improve your app and make your users happy.
Make a feature, measure the engagement, improve the feature, repeat!

App Analytics dapat membantu Anda memahami bagaimana pengguna aplikasi menggunakan aplikasi Anda. Misalnya, Anda dapat mengetahui seberapa banyak pengguna yang menggunakan suatu fitur, seberapa banyak pengguna yang aktif tiap harinya atau tiap bulannya, dan banyak lagi.

Ada banyak layanan pihak ketiga untuk memantau dan melaporkan app analytics. Beberapa layanan seperti Firebase memiliki tak hanya pemantauan crash, tapi juga app analytics.

#4 App Update Checker

Bila aplikasi Anda perlu mengambil data dari server API, Anda perlu memastikan aplikasi Anda dapat “berbicara” dengan benar dengan server API tersebut. Namun secara berjalannya waktu, beberapa fitur baru mungkin memerlukan perubahan di API endpoints atau bahkan perlu dipensiunkan.

Di situasi seperti ini, Anda tentunya ingin agar pengguna aplikasi menggunakan versi terbaru aplikasi Anda agar mereka dapet mengambil data dari API baru tersebut dan tidak menggunakan API yang lama. Jadi aplikasi Anda perlu segera memeriksa terlebih dahulu apakah ada versi baru saat aplikasi dibuka oleh pengguna.

Di iOS, Anda dapat mengambil metadata dari aplikasi Anda dari iTunes Store dengan cara mengambil data dari URL http://itunes.apple.com/lookup?id=<insert_your_app_id>, dimana URL tersebut akan mengembalikan data dalam format JSON. Di dalam metada tersebut, Anda dapat mengetahui versi yang terbaru dan membandingkan versi tersebut dengan versi yang terinstal di ponsel pengguna. Namun untuk Android sepertinya tidak semudah itu untuk mendapatkan metadata dari Play Store. Jika Anda mengetahui cara lain yang lebih mudah, mohon komentar di bawah! Solusi lain adalah dengan menggunakan fitur UpdateManager di Android.

Jika Anda mengembangkan aplikasi menggunakan React Native, Anda dapat menggunakan universal-update-checker library yang kami buat di Hyperjump dan Firebase Remote Config untuk menyimpan versi terbaru aplikasi Anda.

#5 Localization

Supporting multiple languages in your app shows how much you care about your users!
Some countries have multiple national languages, like Switzerland!

Aplikasi Anda mungkin hanya tersedia di negara Anda sendiri dimana hanya ada satu bahasa. Namun bukan berarti semua pengguna aplikasi Anda dapat menggunakan bahasa Anda dengan sempurna, misalnya, warga negara asing. Anda mungkin berpikir untuk menghiraukan mereka karena mungkin jumlah mereka tidak terlalu banyak. Tapi mengapa Anda berpikir demikian? Dimana empati Anda? Setidak-tidaknya, aplikasi Anda perlu tersedia dalam bahasa Inggris dan bahasa Indonesia.

Untuk mendukung beberapa bahasa di aplikasi Anda tidak susah. Anda hanya perlu menghindari menggunakan teks secara langsung di kode. Misalnya, Anda sebaiknya menggunakan NSLocalizedString di iOS untuk menyimpan variabel string dan Android Resource Framework di Android.

#6 Accessibility

Aksesibilitas berarti inklusivitas. Anda mungkin tidak menyadarinya, namun pengguna aplikasi Anda mungkin banyak yang memiliki tantangan-tantangan fisik saat menggunakan aplikasi Anda. Misalnya, mereka mungkin memiliki penglihatan yang buruk sehingga susah untuk membaca konten di aplikasi Anda bila fontnya terlalu kecil.

Di iOS, Anda perlu membaca dan mengikuti panduan aksesibilitas di Human Interface Guidelines. Di Android, Anda perlu membaca dokumentasi bagaimana cara membangun aplikasi yang mendukung aksesibilitas.

Setidak-tidaknya, aplikasi Anda perlu mendukung Dynamic Type Size di iOS dan Autosizing TextViews di Android.

#7 Feature Flagging System

Salah satu hal yang sangat menyebalkan di pengembangan aplikasi ponsel, terutama di iOS, adalah proses review App Store. Walaupun beberapa tahun terakhir proses review sudah semakin cepat, fitur baru yang ingin Anda rilis tetap memakan waktu untuk mencapai pengguna aplikasi Anda.

Untuk memecahkan masalah ini, beberapa pengembang aplikasi memasukkan semua fitur-fitur yang akan mereka rilis di setiap update, walaupun fitur-fitur tersebut mungkin belum siap untuk dirilis. Mereka sembunyikan fitur-fitur tersebut menggunakan sistem feature flagging.

Misalnya Anda punya fitur dark mode baru untuk aplikasi Anda. Namun departemen marketing belum siap untuk mempromosikan fitur tersebut. Maka Anda dapat menyembunyikan fitur tersebut dengan cara menetapkan sebuah variabel di server Anda, lalu aplikasi Anda membaca variabel tersebut. Ketika marketing sudah siap untuk merilis fitur tersebut, Anda dapat mengisi variabel tersebut dengan value “enable” dan aplikasi Anda akan membaca variabel tersebut lalu merilis fitur tersebut ke pengguna. Anda bahkan dapat merilis fitur tersebut secara berkala dengan sistem feature flagging seperti ini.

Ada banyak layanan pihak ketiga untuk feature flagging. Jika Anda menggunakan Firebase, Anda dapat menggunakan Firebase Remote Config.

#8 Deeplinks Handler

Di world wide web, setiap halaman web biasanya dapat diakses melalu sebuah alamat URL. Namun di aplikasi ponsel tidak seperti itu. Secara default, pengguna tidak dapat langsung masuk ke layar tertentu di dalam aplikasi Anda melalui sebuah alamat URL. Anda perlu mengimplementasi Deep Link, atau Universal Links di iOS.

Dengan menggunakan deep links, pengguna aplikasi Anda dapat membagikan sebuah alamat ke teman-teman mereka yang langsung terhubung ke salah satu konten atau layar di dalam aplikasi.

Ada banyak solusi untuk deep linking, seperti Adjust dan Branch.io, dimana mereka menawarkan fitur-fitur seperti analytics.

#9 Application Preferences Management

Setiap fitur biasanya memiliki setting yang dapat diubah-ubah. Misalnya, video di aplikasi Anda dapat jalan secara otomatis atau tidak, sebuah link di aplikasi dapat dibuka menggunakan browser default atau browser di aplikasi Anda (in-app browser). Jika Anda memberikan pengguna kemampuan untuk menyesuaikan fitur-fitur tersebut sesuai selera dan kebutuhan mereka, pengguna aplikasi Anda akan sangat menghargai aplikasi Anda.

Saya belum menemukan solusi yang mudah untuk ini. Saya membayangkan sebuah library dimana saya tinggal memberikan dictionary yang berisi setting-setting yang dapat disesuaikan oleh pengguna, lalu library tersebut akan mengembalikan sebuah halaman atau layar Setting dimana pengguna dapat menyesuaikan setting-setting tersebut. Kalau Anda mengetahui library seperti itu, silakan komentar di bawah ya.

#10 Continuous Integration and Continuous Delivery

Fitur yang terakhir ini sebenarnya bukan fitur dari aplikasi Anda. Namun saya tetap masukkan di sini karena dengan sistem Continuous Integration (CI) dan Continous Delivery (CD) yang benar, Anda akan menghemat banyak waktu dan usaha ke depannya, terutama bila Anda bekerja bersama developer lain di sebuah tim.

Dengan sistem CI/CD, Anda dapat merilis fitur-fitur baru ke pengguna dengan yakin. CI/CD juga sekarang tidak susah dan tidak mahal untuk dipersiapkan. Di Github, Anda dapat menggunakan virtual machine mereka untuk membangun, menguji, dan merilis aplikasi iOS dan Android gratis.

Bila Anda mengembangkan aplikasi menggunakan Flutter, Anda dapat mengikuti tutorial CI/CD untuk aplikasi Flutter menggunakan Azure Pipelines dan AppCenter.

Jangan lupa merapikan skrip CI/CD agar terawat dan mudah dimodifikasi dengan mengikuti panduan di artikel Hidup Tenang Dengan Script CI/CD Yang Rapi dari tim Hyperjump.

Bagaimana menurut Anda? Ada fitur-fitur lain yang terlewatkan di artikel ini? Silakan komentar di bawah ya.

You can read the English version of this article here: 10 Features You Have to Add in Your Mobile App From The Start.

Hyperjump is an open-source-first company providing engineering excellence service. We aim to build and commercialize open-source tools to help companies streamline, simplify, and secure the most important aspects of its modern DevOps practices.

--

--