ETS PPB - Aplikasi Galeri (MyGallery)
Nama : Mavaldi Rizqy Hazdi
NRP : 5025211086
Kelompok : 23
Kelas : Pemrograman Perangkat Bergerak D
MyGallery
Deskripsi Aplikasi
MyGallery adalah aplikasi galeri foto modern yang dirancang untuk memberikan pengalaman menampilkan dan mengelola koleksi gambar secara elegan. Dibangun dengan teknologi terkini Android seperti Kotlin dan Jetpack Compose, aplikasi ini menawarkan antarmuka yang responsif, intuitif, serta mendukung mode gelap untuk kenyamanan pengguna.
Fitur Utama
- Tampilan Grid Dinamis – Menyajikan koleksi foto dalam tata letak grid yang dapat disesuaikan
- Halaman Detail Interaktif – Memungkinkan pengguna melihat gambar dalam ukuran penuh dengan informasi lengkap
- Simulasi Upload – Memberikan pengalaman upload gambar yang realistis dengan animasi dan konfirmasi
- Dual Theme – Dukungan penuh untuk mode terang dan gelap yang otomatis menyesuaikan preferensi sistem
Arsitektur Aplikasi
- Layer UI (Compose)
- ViewModel
- Repository
- Data Source (Local/Dummy)
CARA MENGERJAKAN
1. Persiapan Project
Buka Android Studio dan buat project baru dengan template Empty Activity.
Tambahkan dependensi utama di file build.gradle seperti Compose BOM, Navigation, Coil, dan Material3.
2. Membuat Model Data
Buat class GalleryImage sebagai model untuk menyimpan:
- ID gambar
- Judul
- URL gambar
- Tanggal upload
- Status (lokal/dummy)
3. Setup Repository
Buat ImageRepository untuk mengelola sumber data:
- Dummy images dari picsum.photos
- Fungsi getLocalImages() untuk gambar dari penyimpanan (opsional)
4. Implementasi ViewModel
Gunakan GalleryViewModel dengan StateFlow untuk:
- Menyimpan daftar gambar
- Menangani logika upload
- Mengelola state loading
5. Membuat UI dengan Jetpack Compose
Gallery Screen
Gunakan LazyVerticalGrid untuk menampilkan gambar dalam grid responsif.
Detail Screen
Tampilkan gambar full-size dengan informasi lengkap
Upload Screen
Buat form simulasi upload dengan:
- Field judul
- Area preview gambar
- Tombol upload dengan dialog konfirmasi
6. Setup Navigation
Implementasi navigasi antar screen menggunakan NavHostController
7. Tambahkan Dark Mode
Gunakan MaterialTheme untuk otomatis menyesuaikan tema
Link PPT : PPT
Link Github : Github
Link Apk : APK
Vidio Presentasi Desain
Vidio Demo Aplikasi
Komentar
Posting Komentar