Pengumpulan Tugas Pemrograman Perangkat Bergerak G - Pertemuan 13 tugas 10

Dokumentasi Dessert Clicker - Rayyaan

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

Lihat Repository GitHub

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 dan impor
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
override fun onCreate(savedInstanceState: Bundle?) {
  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:

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()
  }
}

Comments