Resident-focused native apps. Admin stays on web (team decision: admin inputs are awkward on phone UI). Surfaces: Surfaces/Mobile iOS · Surfaces/Mobile Android. Map: Features/Feature Map.
Distribution
| Platform | Channel | Package |
|---|---|---|
| iOS | TestFlight | id.halort.mobile |
| Android | Debug APK on www (pre–Play Store) | id.halort.mobile — https://www.halort.com/android |
Both hit Surfaces/Platform API (https://api.halort.com) with the same tenant slug header pattern as web.
Login & community
- Type community slug (e.g.
gp2) — no picker list - Wrong slug → clear error, no crash
- Magic link or Google
- Magic link from email should open the app when installed (App Links / universal links), not only the web portal
- Session persists after relaunch; logout returns to slug screen
Bottom tabs (resident)
| Tab | Capabilities |
|---|---|
| Beranda | Nama warga, komunitas aktif, logo komunitas / HaloRT fallback |
| Iuran | Daftar tagihan; bayar (transfer); clear empty state if unit rumah missing (not 404) |
| Berita | Segments: Berita / Pengumuman / Agenda |
| Layanan | Surat · Pengaduan · Laporan · Kampanye · Pasar — bottom nav must stay visible inside sub-screens |
| Profil | Akun + Keluar |
Layanan detail
- Surat — jenis, atas nama, keperluan, daftar permohonan
- Pengaduan — kategori (default Keluhan), judul/isi; list “Pengaduan saya”; optional anonim + nomor WA
- Laporan — ringkasan kas / pengeluaran
- Kampanye — list + Donasi (full primary button hit area)
- Pasar — daftar iklan + Pasang Iklan (min description length enforced; full button hit area)
Push notifications
Priority value-add: admin publishes pengumuman on web → push on device → open related content / Berita. Background (not force-quit). See Testing/iOS TestFlight Checklist section F.
Sync with web
Iuran status, donasi, iklan pasar, and pengumuman should match web admin / warga after actions from the phone — see cross-check in Testing/Testing Mechanism.
Related
Concepts/Roles and Portals · Surfaces/Design System · Testing/Android APK Checklist · Testing/iOS TestFlight Checklist