Melindungi data pengguna dan mematuhi regulasi: permission model di Android & iOS, prinsip GDPR & data minimization, serta langkah audit privasi menyeluruh untuk Fitku sebelum rilis

Kita telah membangun fitur, mengamankan kode (episode 13), dan memasang telemetry (episode 19). Kini dimensi terakhir yang sering dilupakan: privasi & compliance. Di episode 20 ini kita mempelajari permission model, prinsip GDPR, dan data minimization — lalu melakukan audit privasi untuk Fitku.
Mengapa ini krusial di 2026? Karena regulasi (GDPR, CCPA, UU Perlindungan Data Pribadi di Indonesia) makin tegas, dan kedua store mewajibkan data safety yang jujur. Pelanggaran berujung denda besar dan reputasi hancur — sementara aplikasi yang menghormati privasi justru membangun kepercayaan, aset paling berharga.
Android memakai runtime permissions: user menyetujui saat fitur dipakai, bukan saat install.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CAMERA" />Meminta di runtime dengan konteks jelas:
fun requestLocation() {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, arrayOf(
Manifest.permission.ACCESS_FINE_LOCATION
), REQ_LOCATION)
}
}
override fun onRequestPermissionsResult(...) {
// jelaskan konsekuensi jika ditolak
if (!granted) showSnackbar("Tanpa lokasi, rute lari tidak tersimpan.")
}Aturan emas Android: minta permission tepat saat dibutuhkan, jelaskan alasan, dan beri graceful fallback saat ditolak.
iOS serupa dengan Usage Descriptions wajib di Info.plist:
<key>NSLocationWhenInUseUsageDescription</key>
<string>Fitku menggunakan lokasi untuk melacak rute lari Anda.</string>
<key>NSCameraUsageDescription</key>
<string>Fitku menggunakan kamera untuk memindai kode workout.</string>Tanpa deskripsi ini, aplikasi crash saat memanggil API terkait — dan tanpa deskripsi yang jujur, review App Store menolak (episode 18).
Important
Permission adalah bentuk kepercayaan. Pengguna boleh bertanya-tanya mengapa aplikasi fitness butuh akses kontak. Audit setiap permission: apakah benar-benar dibutuhkan? Jika ragu, hapus. Lebih sedikit permission = lebih sedikit risiko & lebih cepat lolos review.
GDPR (Eropa) dan regulasi serupa di banyak negara (termasuk UU PDP Indonesia) berakar pada prinsip yang sama:
Data apa yang dikumpulkan? → contoh: email, langkah harian, lokasi rute
Untuk apa? → contoh: akun, progres, rute lari
Berapa lama disimpan? → contoh: selama akun aktif, lalu 30 hari
Ke mana dikirim? → contoh: server Fitku + Firebase Analytics
Bagaimana pengguna bisa menghapus? → contoh: tombol "Hapus akun & data"Untuk pengguna di bawah umur, banyak regulasi (COPPA/children's code) memerlukan persetujuan orang tua — pastikan fitur-nya kalian nilai sejak desain.
Prinsipnya sederhana: jangan kumpulkan apa yang tidak perlu. Contoh nyata untuk Fitku:
Warning
"Sekalian saja kumpulkan semua, siapa tahu berguna" adalah pola pikir berbahaya. Setiap data baru menambah tanggung jawab (bocor? disalahgunakan? diaudit?). Minimalkan sejak desain — fitur "berguna nanti" biasanya tidak pernah dipakai.
Setiap aplikasi yang mengumpulkan data pribadi wajib menyediakan:
fun deleteAccount(userId: String) {
viewModelScope.launch {
// 1. panggil backend untuk hapus data server
api.deleteAccount(userId)
// 2. hapus data lokal
localDb.clearAll()
prefs.clearAll()
// 3. logout + navigasi ke layar welcome
navigator.navigateTo("welcome")
}
}Lakukan audit berlapis:
[ ] Inventarisasi semua data yang dikumpulkan (API, analytics, SDK pihak ketiga)
[ ] Tulis data flow: dari UI → storage → server → vendor
[ ] Verifikasi tiap permission punya alasan & usage description
[ ] Perbarui privacy policy & data safety sesuai temuan
[ ] Uji semua alur consent & hapus akun dari UI sampai server
[ ] Dokumentasikan kebijakan retensi & penghapusanBuat audit ini rutin (misal setiap kuartal) — SDK dan fitur baru selalu menambah jejak data.
Tip
Mulai privacy by design dari awal, bukan tempelan di akhir. Tiap kali sebuah fitur butuh data baru, tanya tiga hal: perlu? minimal? transparan? Tiga pertanyaan ini menyelamatkan kalian dari utang teknis & hukum di masa depan.
Pada episode 20 ini, kalian telah menguasai dimensi privasi:
Di episode 21 selanjutnya kita masuk era baru: AI-Powered Mobile Apps — on-device ML (ML Kit/CoreML), integrasi LLM, dan fitur AI di Fitku. Sampai jumpa!