Tugas 10 Unscramble Word

      

Aplikasi Unscramble Word


Vito Febrian Ananta
5025211224
Pemrograman Perangkat Bergerak (D)

Pada tugas ke-10 ini, telah dibuat aplikasi/game Unscramble Word. Untuk mengembangkan kemampuan secara teknis dan kreatifitas, saya memutuskan untuk mendalami aplikasi ini dengan beberapa poin berikut:
1. Implementasi StateFlow untuk Mengelola UI State
2. Pemisahan State Lokal dan Global dengan mutableStateOf
3. Observasi State dalam Composable dengan collectAsState

Berikut adalah penjelasan detail dari kodenya:

1. Implementasi StateFlow untuk Mengelola UI State


StateFlow adalah cara modern untuk mengelola state dalam ViewModel yang bersifat reactive. Dengan menggunakan MutableStateFlow sebagai private property dan StateFlow sebagai public property, kita memastikan bahwa hanya ViewModel yang dapat mengubah state, sementara UI hanya dapat mengobservasi perubahan state. Penggunaan _uiState.update() memungkinkan kita melakukan perubahan state secara immutable dan thread-safe, yang sangat penting untuk menjaga konsistensi data dalam aplikasi.

2. Pemisahan State Lokal dan Global dengan mutableStateOf


Dalam aplikasi ini, terdapat pemisahan yang jelas antara state global (seperti skor, kata yang diacak, status game) yang disimpan dalam StateFlow, dan state lokal (seperti input tebakan user) yang menggunakan mutableStateOf . State lokal seperti userGuess cocok menggunakan mutableStateOf karena sifatnya yang sementara dan tidak perlu disimpan dalam state global. Pemisahan ini membuat kode lebih terorganisir dan performa aplikasi lebih optimal karena tidak semua perubahan input memicu rekomposisi seluruh UI.

3.  Observasi State dalam Composable dengan collectAsState


collectAsState() adalah bridge yang menghubungkan StateFlow dari ViewModel dengan Compose UI. Fungsi ini mengkonversi StateFlow menjadi Compose State yang dapat memicu rekomposisi ketika nilai berubah. Dengan menggunakan by delegate, kita dapat mengakses nilai state secara langsung tanpa perlu memanggil .value . Pattern ini memungkinkan UI untuk secara otomatis bereaksi terhadap perubahan state, seperti menampilkan dialog ketika isGameOver bernilai true, atau mengupdate tampilan skor ketika nilai score berubah. Ini adalah inti dari reactive programming dalam Compose.

Video Presentasi:

Tampilan Android Studio:



Tampilan Aplikasi:



Comments

Popular posts from this blog

Tugas 11 Authentication

Tugas 6 Converter

Tugas 8 Woof