Tugas 7 - Pemrograman Perangkat Bergerak
Nama : sayid ziyad ibrahim alaydrus
NRP : 5025201147
kelas : PPB-F
NRP : 5025201147
kelas : PPB-F
Tugas : membuat aplikasi unscramble dengan viewmodel dan state
Unscramble adalah permainan kata satu pemain di mana pemain mencoba menebak kata dari huruf-huruf yang diacak. Pemain mendapatkan poin untuk setiap tebakan yang benar dan memiliki kesempatan untuk mencoba lagi jika salah. Pemain juga memiliki opsi untuk melewati kata yang sulit. Di pojok kanan atas, ditampilkan jumlah kata yang telah dimainkan. Setiap permainan terdiri dari 10 kata acak.
Apa itu ViewModel?
ViewModel adalah sebuah kelas yang dirancang untuk menyimpan dan mengelola data yang biasanya berhubungan dengan UI. Sehingga data tersebut dapat digunakan kembali saat terjadi perubahan konfigurasi.
Apa fungsi dari ViewModel?
Terkadang, terjadi beberapa perubahan konfigurasi pada device yang kita gunakan, entah itu saat rotasi layar, munculnya virtual keyboard, dan lain-lain. Saat perubahan itu terjadi, android akan melakukan restart terhadap activity yang sedang berjalan.
1. menambahkan view model
a. buildgradle.kts
dependencies {
// other dependencies
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1")
//...
}
2. merancang compose UI
Pada fungsi GameScreen, teruskan argumen kedua dari jenis GameViewModel dengan nilai default viewModel(). seperti berikut:
import androidx.lifecycle.viewmodel.compose.viewModel
@Composable
fun GameScreen(
gameViewModel: GameViewModel = viewModel()
) {
// ...
}
meneruskan gameUiState.currentScrambledWord ke composable GameLayout(). Anda menambahkan argumen di langkah selanjutnya, jadi abaikan error untuk saat ini.
GameLayout(
currentScrambledWord = gameUiState.currentScrambledWord,
modifier = Modifier
.fillMaxWidth()
.wrapContentHeight()
.padding(mediumPadding)
)
Tambahkan currentScrambledWord sebagai parameter lain ke fungsi composable GameLayout()
@Composable
fun GameLayout(
currentScrambledWord: String,
modifier: Modifier = Modifier
) {
}
3. memverifikasi kata tebakan dan update skor
fun checkUserGuess() {
if (userGuess.equals(currentWord, ignoreCase = true)) {
} else {
}
// Reset user guess
updateUserGuess("")
}
5. update skor
Untuk memperbarui nilai skor, di GameViewModel, pada fungsi checkUserGuess(), di dalam kondisi if untuk saat tebakan pengguna benar, tingkatkan nilai score.
import com.example.unscramble.data.SCORE_INCREASE
fun checkUserGuess() {
if (userGuess.equals(currentWord, ignoreCase = true)) {
// User's guess is correct, increase the score
val updatedScore = _uiState.value.score.plus(SCORE_INCREASE)
} else {
//...
}
}
Hasil dan dokumentasi
Comments
Post a Comment