Tugas 13 PPB

📲 Studi Kasus Activity dan Intent: Dessert Clicker

Nama: Revy Pramana

NRP: 5025221252

Topik: Activity dan Intent

🧠 Deskripsi Singkat

Aplikasi Dessert Clicker digunakan sebagai studi kasus untuk memahami bagaimana siklus hidup Activity dan implementasi Implicit Intent digunakan dalam pengembangan aplikasi Android berbasis Jetpack Compose.

🔄 Siklus Hidup Activity

Pada MainActivity.kt, berbagai metode siklus hidup Activity di-log menggunakan Log.d untuk memantau urutan pemanggilan, seperti:


override fun onCreate(savedInstanceState: Bundle?) {
    Log.d(TAG, "onCreate Called")
    ...
}

override fun onStart() {
    Log.d(TAG, "onStart Called")
}

override fun onResume() {
    Log.d(TAG, "onResume Called")
}

override fun onPause() {
    Log.d(TAG, "onPause Called")
}

override fun onStop() {
    Log.d(TAG, "onStop Called")
}

override fun onDestroy() {
    Log.d(TAG, "onDestroy Called")
}

Log ini dapat dilihat di Logcat untuk memahami kapan setiap lifecycle method dipanggil, terutama saat aplikasi berpindah antar state (foreground, background, dihentikan, dll).

📤 Penggunaan Intent

Aplikasi menggunakan Implicit Intent untuk membagikan informasi jumlah dessert yang terjual dan pendapatan ke aplikasi lain (seperti WhatsApp, Gmail, dsb).

✅ Kode Implementasi:


private fun shareSoldDessertsInformation(intentContext: Context, dessertsSold: Int, revenue: Int) {
    val sendIntent = Intent().apply {
        action = Intent.ACTION_SEND
        putExtra(
            Intent.EXTRA_TEXT,
            intentContext.getString(R.string.share_text, dessertsSold, revenue)
        )
        type = "text/plain"
    }

    val shareIntent = Intent.createChooser(sendIntent, null)

    try {
        ContextCompat.startActivity(intentContext, shareIntent, null)
    } catch (e: ActivityNotFoundException) {
        Toast.makeText(
            intentContext,
            intentContext.getString(R.string.sharing_not_available),
            Toast.LENGTH_LONG
        ).show()
    }
}

Fungsi ini dipanggil dari Top App Bar saat tombol share ditekan.

🖱️ Contoh pemanggilan:


DessertClickerAppBar(
    onShareButtonClicked = {
        shareSoldDessertsInformation(
            intentContext = intentContext,
            dessertsSold = dessertsSold,
            revenue = revenue
        )
    }
)

📸 Hasil Tampilan

Berikut adalah Hasil logcat saat aplikasi dilakukan berbagai macam kegiatan:

Hasil Activity and Intent

💡 Kesimpulan

  • Activity lifecycle sangat penting untuk mengelola perilaku aplikasi selama pengguna berpindah antar state.
  • Implicit Intent dapat digunakan untuk berbagi data ke aplikasi eksternal dengan cara yang aman dan fleksibel.
  • Aplikasi Dessert Clicker adalah contoh ideal untuk memperkenalkan kedua konsep tersebut secara langsung dalam konteks aplikasi yang sederhana namun praktis.

🔗 Link GitHub Repository

Source code aplikasi ini dapat diakses di:
https://github.com/Revprm/Repo-PPB/tree/main/ActivityAndIntent

Comments

Popular posts from this blog

Tugas 5 PPB

Tugas 14 PPB

Tugas 4 PPB