Pengumpulan Tugas Pemrograman Perangkat Bergerak G - Pertemuan 13 tugas 10
Dokumentasi Aplikasi Dessert Clicker
Aplikasi Android sederhana yang dibangun dengan Jetpack Compose untuk mempelajari konsep dasar pengembangan Android
Muhammad Rayyaan Fatikhahur Rakhim
NRP: 5025221047 | Kelas: PPB - G
Informasi Mahasiswa
Nama
Muhammad Rayyaan Fatikhahur Rakhim
NRP
5025221047
Kelas
PPB - G
Gambaran Umum
Aplikasi Dessert Clicker adalah aplikasi Android sederhana yang memungkinkan pengguna:
Interaksi Klik
Pengguna dapat menekan gambar dessert untuk menambah jumlah dessert yang terjual.
Pelacakan Transaksi
Aplikasi mencatat jumlah dessert yang terjual dan total pendapatan.
Berbagi Data
Pengguna dapat membagikan data penjualan melalui tombol berbagi di app bar.
Arsitektur Modern
Dibangun dengan Jetpack Compose menggunakan pola Model-View-ViewModel (MVVM).
Struktur Kode
Berikut adalah struktur dasar kode aplikasi:
package com.example.dessertclicker
// Kelas utama aplikasi
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
DessertClickerTheme {
DessertClickerApp()
}
}
}
// Metode siklus hidup lainnya...
}
// Fungsi Composable utama
@Composable
fun DessertClickerApp() {
// UI aplikasi di sini
}
// Fungsi untuk berbagi data
private fun shareSoldDessertsInformation(
intentContext: Context,
dessertsSold: Int,
revenue: Int
) {
// Implementasi berbagi data
}
Kode lengkap aplikasi dapat dilihat di repository GitHub saya.
Arsitektur Aplikasi
Diagram Arsitektur MVVM
UI (Composable) ←→ ViewModel ←→ Model (Data)
Lapisan UI (Jetpack Compose)
Bertanggung jawab untuk menampilkan antarmuka pengguna dan menangani interaksi pengguna.
ViewModel
Mengelola data UI dan logika bisnis, bertahan terhadap perubahan konfigurasi seperti rotasi layar.
Model
Mewakili data dan logika bisnis aplikasi. Dalam aplikasi ini, model berupa data dessert dan logika penjualan.
Siklus Hidup Aktivitas
Aplikasi ini mendemonstrasikan siklus hidup aktivitas Android dengan mencatat setiap perubahan status:
- onCreate() - Dipanggil saat aktivitas pertama kali dibuat
- onStart() - Aktivitas menjadi terlihat oleh pengguna
- onResume() - Aktivitas berada di latar depan dan berinteraksi dengan pengguna
- onPause() - Aktivitas sebagian tertutup
- onStop() - Aktivitas tidak lagi terlihat
- onRestart() - Aktivitas dijalankan kembali setelah dihentikan
- onDestroy() - Aktivitas dihancurkan sepenuhnya
super.onCreate(savedInstanceState)
Log.d(TAG, "onCreate Called")
// Inisialisasi UI
}
override fun onStart() {
super.onStart()
Log.d(TAG, "onStart Called")
}
Berbagi Data
Aplikasi ini menggunakan Intent untuk berbagi data penjualan:
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()
}
}
Comments
Post a Comment