Poin 5. Arsitektur aplikasi
Aplikasi Android native memakai pola MVVM sederhana dengan lapisan Repository.
| Lapisan | Komponen | Peran |
|---|---|---|
| Presentasi | Activity dan Fragment, Navigasi Intent, RecyclerView | Tampilan, perpindahan halaman, daftar dan perbandingan |
| Data | Repository | Satu pintu akses data: lokal atau cloud |
| Penyimpanan lokal | SharedPreferences, SQLite | Sesi, tema, filter, favorit, itinerary (offline) |
| Backend cloud | Firebase Auth, Cloud Firestore, Cloud Storage | Login, data destinasi dan ulasan, foto |
| Layanan perangkat dan pihak ketiga | GPS dan Maps, Kamera, API cuaca, AdMob | Jarak dan rute, foto ulasan, saran kunjungan, iklan |
Alur data utama
- Bandingkan: pengguna memilih 2-3 destinasi, Repository mengambil data dari Firestore, jarak dihitung dari GPS, hasil tampil berdampingan.
- Ulasan: foto diambil lewat kamera, diunggah ke Storage, teks masuk ke Firestore.
- Itinerary: destinasi disalin ke SQLite agar terbuka tanpa internet.
- Pembaruan data: admin mengubah harga atau jam di Firestore, tanggal pembaruan ikut berubah.
Keamanan: data destinasi hanya dapat diubah admin; pengguna hanya menulis ulasan miliknya.