Tugas 4: Aplikasi Dice Roller

 

Aplikasi Dice Roller


Vito Febrian Ananta
5025211224
Pemrograman Perangkat Bergerak (D)

Pada pertemuan ke-4 ini, telah dibuat aplikasi android yang dapat me-roll sebuah dadu. Pembelajaran ini dilaksanakan berdsarakan referensi sebagai berikut: https://developer.android.com/codelabs/basic-android-kotlin-compose-build-a-dice-roller-app#0. Untuk mengembangkan kemampuan secara teknis dan kreatifitas, saya memutuskan untuk mengembangkan aplikasi ini dengan menambah beberapa poin berikut:
1. Mengganti warna background menjadi hijau muda.
2. Membuat gambar bergerak-gerak saat sedang me-rolling.
3. Mengganti button teks menjadi "Rolling..." saat sedang me-rolling.

Berikut adalah penjelasan detail dari kodenya:

1. Mengganti warna background menjadi hijau muda

Di dalam blok setContent, digunakan komponen Surface dengan modifier Modifier.fillMaxSize() yang memastikan komponen mengisi seluruh layar. Properti color pada Surface diatur ke Color(0xFFD5E8BE). Warna ini merupakan representasi dari hijau muda dalam format hexadecimal.

2. Membuat gambar bergerak-gerak saat sedang me-rolling

- Animasi Pergerakan:
> Variabel shake dideklarasikan sebagai objek Animatable bertipe Float.
> Animasi diatur menggunakan fungsi animateTo dengan infiniteRepeatable dan keyframes. Dalam animasi ini, gambar digeser secara horizontal menggunakan properti offset pada komponen Image.
> Keyframe mengatur nilai-nilai pergeseran (misalnya, 10dp ke kanan dan -10dp ke kiri) selama durasi animasi 100 milidetik, sehingga menciptakan efek getar atau “shake”.

- Kondisi Animasi:
Animasi hanya aktif ketika variabel isRolling bernilai true. Artinya, saat pengguna menekan tombol dan proses pengacakan dadu sedang berlangsung, gambar dadu akan bergerak secara dinamis.

- Reset Animasi:
Setelah penundaan selama 1000 milidetik (simulasi durasi rolling), nilai dadu diperbarui secara acak dan animasi dihentikan dengan mengembalikan nilai shake ke nol menggunakan snapTo(0f).

3. Mengganti button teks menjadi "Rolling..." saat sedang me-rolling.

- Penggunaan Kondisi:
Pada komponen Button, teks yang ditampilkan dikelola melalui komponen Text yang mengacu pada kondisi isRolling. Jika isRolling bernilai true, maka teks yang ditampilkan adalah "Rolling...". Jika tidak, maka teks yang muncul adalah "Roll".

- Manajemen Status:
Selain mengganti teks, properti enabled pada tombol juga diatur sehingga tombol tidak dapat ditekan lagi saat proses rolling sedang berlangsung. Hal ini membantu mencegah pemicu ganda atau konflik selama animasi.

Video Presentasi:

Tampilan Android Studio:




Tampilan Aplikasi:








Comments

Popular posts from this blog

Tugas 11 Authentication

Tugas 6 Converter

Tugas 8 Woof