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

  1. Bandingkan: pengguna memilih 2-3 destinasi, Repository mengambil data dari Firestore, jarak dihitung dari GPS, hasil tampil berdampingan.
  2. Ulasan: foto diambil lewat kamera, diunggah ke Storage, teks masuk ke Firestore.
  3. Itinerary: destinasi disalin ke SQLite agar terbuka tanpa internet.
  4. 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.