Location Features
Memahami tentang fitur lokasi pada aplikasi iOS dan tantangan yang mungkin dihadapi.
Tentang Location Features
Fitur lokasi biasanya digunakan saat aplikasi memerlukan data lokasi pengguna melalui GPS, misalnya untuk:
- Mencari data lokasi terdekat
- Mencatat lokasi pengguna saat melakukan suatu aksi dan menyimpannya di database
Namun, ada beberapa kendala yang perlu diperhatikan terutama saat aplikasi dikirim ke Apple.
Masalah
Tim Reviewer Apple jarang memberikan akses lokasi kepada aplikasi saat pengujian, karena alasan privasi lokasi kantor mereka atau kebijakan internal perusahaan (SOP) yang ketat terhadap akses lokasi.
Akibatnya, aplikasi Anda berpotensi ditolak jika:
- Akses lokasi ditolak oleh pengguna
- Aplikasi tidak bisa berjalan atau crash tanpa akses lokasi
Solusi
-
Buat fallback jika akses lokasi tidak diberikan
Misalnya, tampilkan popup yang menjelaskan bahwa aplikasi membutuhkan akses lokasi agar dapat berjalan dengan baik, tetapi tetap berikan opsi untuk tidak memberikan akses. -
Sediakan alternatif data jika lokasi tidak tersedia
Jika pengguna tetap menolak, berikan data yang bersifat umum atau acak agar fitur tetap bisa digunakan secara terbatas. Contoh:- Jika aplikasi mencari cabang terdekat, tampilkan daftar cabang secara umum tanpa mengurutkan berdasarkan jarak.
-
Untuk aplikasi yang sangat bergantung pada lokasi seperti aplikasi Presensi:
- Buat fallback agar lokasi menjadi opsional.
- Jika GPS tidak diizinkan, kirimkan nilai latitude dan longitude sebagai
0
. - Backend harus tetap menerima data tersebut tanpa error.
- Tambahkan parameter khusus pada payload (misal
platform: iOS
) untuk menandai kasus khusus ini.
Dianjurkan ✅
✅ Kirim permintaan akses lokasi hanya ketika dibutuhkan, bukan saat aplikasi pertama kali dibuka.
✅ Tampilkan penjelasan (rationale) sebelum meminta izin lokasi agar pengguna memahami manfaatnya.
✅ Sediakan fallback dan pengalaman pengguna yang tidak bergantung total pada lokasi.
✅ Tangani penolakan izin dengan baik agar aplikasi tidak crash.
✅ Uji aplikasi dengan skenario tanpa izin lokasi untuk memastikan stabilitas.
✅ Gunakan flag seperti isLocationEnabled: false
atau lat: 0, long: 0
untuk mendukung pengujian internal dan pengiriman ke App Store.
Tidak Dianjurkan ❌
❌ Meminta akses lokasi saat aplikasi pertama kali dibuka tanpa konteks.
❌ Membuat aplikasi tidak bisa digunakan sama sekali jika izin lokasi ditolak.
❌ Mengirim error atau gagal login hanya karena data lokasi tidak tersedia.
❌ Menampilkan pesan error teknis tanpa memberikan solusi kepada pengguna.
❌ Mengandalkan data lokasi sebagai satu-satunya logika utama tanpa fallback.