Struktur Aplikasi Android
Aplikasi Android Absensi GPS dibangun dengan struktur yang terorganisir untuk memudahkan pengembangan dan pemeliharaan. Berikut adalah struktur utama dari aplikasi:
Struktur Paket
com.example.absensigps/
├── AbsensiApp.kt # Kelas aplikasi utama
├── api/ # Komponen untuk komunikasi dengan API
│ ├── ApiClient.kt # Konfigurasi Retrofit
│ ├── ApiService.kt # Interface untuk endpoint API
│ └── model/ # Model data untuk request dan response
│ ├── AbsensiRequest.kt # Model untuk request absensi
│ ├── AbsensiResponse.kt # Model untuk response absensi
│ ├── LoginRequest.kt # Model untuk request login
│ ├── LoginResponse.kt # Model untuk response login
│ ├── ServerStatusResponse.kt # Model untuk response status server
│ └── StatusResponse.kt # Model untuk response status absensi
├── ui/ # Komponen UI (Activities)
│ ├── splash/ # Splash screen
│ │ └── SplashActivity.kt # Activity untuk splash screen dan pencarian server
│ ├── login/ # Login screen
│ │ └── LoginActivity.kt # Activity untuk login
│ └── main/ # Main screen
│ └── MainActivity.kt # Activity utama untuk absensi
└── util/ # Utilitas dan helper
├── Constants.kt # Konstanta aplikasi
├── LocationHelper.kt # Helper untuk mendapatkan lokasi GPS
├── NetworkScanner.kt # Scanner untuk menemukan server dalam subnet
└── SharedPreferencesManager.kt # Manager untuk menyimpan data lokal
Komponen Utama
1. AbsensiApp
Kelas aplikasi utama yang menginisialisasi aplikasi Android. Kelas ini menyediakan instance aplikasi yang dapat diakses secara global.
2. API
Komponen untuk komunikasi dengan backend API:
- ApiClient: Konfigurasi Retrofit untuk komunikasi dengan API
- ApiService: Interface yang mendefinisikan endpoint API
- Model: Kelas-kelas data untuk request dan response API
3. UI
Komponen antarmuka pengguna:
- SplashActivity: Activity pertama yang muncul saat aplikasi dibuka, bertanggung jawab untuk mencari server dalam subnet yang sama
- LoginActivity: Activity untuk login siswa
- MainActivity: Activity utama yang menampilkan profil siswa dan tombol untuk absensi masuk/keluar
4. Util
Komponen utilitas dan helper:
- Constants: Konstanta aplikasi seperti API key, URL, dan kode request
- LocationHelper: Helper untuk mendapatkan lokasi GPS
- NetworkScanner: Scanner untuk menemukan server dalam subnet yang sama
- SharedPreferencesManager: Manager untuk menyimpan data lokal seperti server IP dan data siswa