Tugas 9
Nama: Danar Sodik Priyambodo
Kelas: PPB-A
NRP: 5025211145
Studi dan Implementasi Aplikasi "Dessert Clicker" Menggunakan Jetpack Compose
Tampilan Aplikasi

1. Analisis Kode Program
Aplikasi ini memiliki struktur yang mudah dipahami, terdiri dari beberapa komponen utama yang saling terhubung dalam menjalankan fungsinya.
2. Struktur Data: Dessert.kt
dan Datasource.kt
Objek makanan penutup direpresentasikan menggunakan data class
dalam Kotlin, dengan atribut:
imageId
: ID gambar dari drawableprice
: Harga dari dessert tersebutstartProductionAmount
: Jumlah minimum penjualan sebelum dessert tampil
Data ini disediakan secara statis melalui Datasource.kt
dalam bentuk list.
3. Antarmuka dengan Jetpack Compose
UI dibangun secara deklaratif menggunakan Jetpack Compose, dengan pusat logika berada di MainActivity.kt
.
a. Pengelolaan State
Status data dikelola menggunakan rememberSaveable
agar bertahan saat rotasi layar atau konfigurasi ulang.
var revenue by rememberSaveable { mutableStateOf(0) }
var dessertsSold by rememberSaveable { mutableStateOf(0) }
b. Fungsi Composable
Fungsi DessertClickerScreen
membentuk struktur UI seperti gambar dessert dan data transaksi.
Image(
painter = painterResource(dessertImageId),
contentDescription = null,
modifier = Modifier.clickable { onDessertClicked() }
)
4. Logika Aplikasi dan Siklus Hidup
a. Pemilihan Dessert
Logika pemilihan dessert berdasarkan penjualan menggunakan fungsi berikut:
fun determineDessertToShow(desserts: List<Dessert>, dessertsSold: Int): Dessert {
var dessertToShow = desserts.first()
for (dessert in desserts) {
if (dessertsSold >= dessert.startProductionAmount) {
dessertToShow = dessert
} else {
break
}
}
return dessertToShow
}
b. Lifecycle Activity
Aplikasi juga memanfaatkan metode seperti onStart()
dan onDestroy()
untuk mencatat log saat aktivitas berubah.
override fun onStart() {
super.onStart()
Log.d(TAG, "onStart Called")
}
5. Kesimpulan
Aplikasi Dessert Clicker merupakan media belajar yang sangat baik dalam memahami pengembangan Android modern dengan Jetpack Compose. Beberapa poin utama:
- Menggunakan fungsi Composable untuk membangun antarmuka
- Pengelolaan status data dengan
rememberSaveable
- Interaksi sederhana melalui klik pada gambar
- Pemahaman dasar mengenai lifecycle Activity
Demo Video
Kode Sumber
Repository GitHub: https://github.com/Danar1111/DessertClicker-Kotlin.git
Komentar
Posting Komentar