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 file Theme.kt dan Color.kt untuk 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

Postingan populer dari blog ini

Membuat aplikasi Hello Android

Aplikasi Woof (Material Design)