Aplikasi Dessert Clicker (Activity dan Intent)
Dessert Clicker App dengan Jetpack Compose
Dessert Clicker adalah aplikasi Android sederhana berbasis Jetpack Compose yang menampilkan gambar dessert dan menghitung total pendapatan berdasarkan jumlah dessert yang telah diklik oleh pengguna. Aplikasi ini cocok digunakan untuk mempelajari konsep dasar Jetpack Compose seperti state management, layout, serta pemisahan concerns menggunakan Composable functions.
1. Struktur Proyek
MainActivity.kt: Berisi logika utama aplikasi dan lifecycle logging.Datasource.kt: Menyediakan daftar dessert sebagai data statis.Dessert.kt: Data model yang merepresentasikan setiap dessert.ui.theme: Berisi fileTheme.ktdanColor.ktuntuk pengaturan tema Material3.
2. Tampilan Aplikasi
Tampilan menunjukkan sebuah dessert di atas meja dan dua informasi penting:
- Desserts sold: Jumlah dessert yang telah dijual (klik oleh user).
- Total Revenue: Total pendapatan berdasarkan harga setiap dessert yang dijual.
3. Penjelasan Kode Utama
a. onCreate()
Lifecycle method pertama yang dipanggil ketika aktivitas dibuat. Di dalamnya terdapat:
setContent {
DessertClickerTheme {
Surface {
DessertClickerApp(desserts = Datasource.dessertList)
}
}
}
b. State Management
Menggunakan rememberSaveable untuk menyimpan state meskipun terjadi konfigurasi ulang (misalnya rotasi layar):
var revenue by rememberSaveable { mutableStateOf(0) }
var dessertsSold by rememberSaveable { mutableStateOf(0) }
c. DessertClickerScreen()
Composable utama yang menampilkan UI, terdiri dari:
- Background image menggunakan
Image() - Gambar dessert yang dapat diklik
- Informasi jumlah dan pendapatan
d. Fungsi determineDessertToShow()
Fungsi ini menentukan gambar dan harga dessert berdasarkan jumlah yang terjual. Dessert akan berubah seiring bertambahnya klik.
4. Fitur Sharing
Menggunakan Intent.ACTION_SEND untuk membagikan informasi ke aplikasi lain:
val sendIntent = Intent().apply {
action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_TEXT, ...)
type = "text/plain"
}
5. Lifecycle Logging
Lifecycle seperti onStart(), onResume(), dan onDestroy() dilengkapi dengan logging menggunakan Log.d() untuk keperluan debugging.
6. Preview
Preview tersedia menggunakan @Preview annotation untuk membantu pengembangan UI secara visual.
7. Kesimpulan
Aplikasi Dessert Clicker ini merupakan latihan yang baik untuk memahami konsep dasar dari Jetpack Compose, termasuk penggunaan Composable functions, state, dan interaksi pengguna. Selain itu, fitur sharing dan logging juga menambahkan elemen real-world development.
Github : https://github.com/Arkandrvesh/PPB
VIDIO


Komentar
Posting Komentar