Tugas 11 PPB G 2025 - Farhan Dwi Putra 5025211093
Nama : Farhan Dwi Putra
NRP : 5025211093
Redesain Aplikasi Starbucks
Deskripsi Singkat
Aplikasi ini merupakan hasil pengembangan ulang dari aplikasi Starbucks yang dibangun untuk platform Android. Proyek ini menggunakan Kotlin dan Jetpack Compose, serta mengintegrasikan layanan dari Firebase Authentication dan Cloud Firestore. Fokus utama aplikasi ini adalah pada proses autentikasi berbasis OTP (One-Time Password) dan penyimpanan data profil pengguna secara real-time.
Tujuan Aplikasi
Tujuan utama dari pengembangan aplikasi ini adalah untuk memberikan pengalaman login dan registrasi yang lebih aman serta nyaman bagi pengguna, menggunakan Firebase Phone Authentication. Selain itu, aplikasi ini juga menampilkan informasi profil pengguna yang telah tersimpan di Firebase Firestore.
Komponen Aplikasi
1. MainActivity.kt
Merupakan entry point dari aplikasi. Di dalamnya dilakukan inisialisasi Firebase dan pemanggilan AppNavigation() sebagai pusat navigasi. Tema visual aplikasi juga diatur melalui StarbucksTheme.
2. AppNavigation.kt
Mengelola navigasi antar layar menggunakan Jetpack Compose Navigation. Beberapa layar yang tersedia yaitu:
-
login -
register -
otp -
home
Rute default diarahkan ke halaman login.
3. SplashScreen.kt
Layar pembuka yang menampilkan logo Starbucks. Setelah beberapa detik, pengguna secara otomatis diarahkan ke halaman login.
4. LoginScreen.kt
Pengguna memasukkan nomor telepon untuk memulai proses login. Setelah menekan tombol “continue”, sistem akan mengirimkan OTP ke nomor tersebut melalui AuthViewModel. Pengguna akan diarahkan ke halaman OTP. Tautan “create here” tersedia untuk mendaftar akun baru.
5. RegisterScreen.kt
Digunakan untuk pendaftaran akun baru. Pengguna diminta mengisi data seperti:
-
Nama lengkap
-
Tanggal lahir
-
Jenis kelamin
-
Nomor telepon
Setelah mengirimkan data, OTP akan dikirim dan pengguna akan diarahkan ke halaman verifikasi OTP.
6. OtpScreen.kt
Layar ini digunakan untuk memasukkan kode OTP sebanyak 6 digit. Jika kode valid, pengguna akan diarahkan ke halaman utama aplikasi.
7. HomeScreen.kt
Setelah proses login berhasil, pengguna akan melihat data profil yang diambil dari Firebase Firestore seperti nama lengkap, tanggal lahir, dan gender.
Logika dan Manajemen Data: AuthViewModel.kt
File ini menangani seluruh proses autentikasi dan penyimpanan data pengguna.
Fungsi penting dalam AuthViewModel.kt:
-
sendOtpForLogin()– Mengirim OTP untuk proses login. -
sendOtp()– Mengirim OTP untuk registrasi dan menyimpan data pengguna sementara. -
verifyOtp()– Mengecek validitas kode OTP. -
signInWithCredential()– Autentikasi pengguna berdasarkan credential OTP. -
saveUserDataToFirestore()– Menyimpan data pengguna ke Firebase Firestore setelah proses OTP berhasil.
Struktur Proyek & Dependensi
File build.gradle.kts dan libs.versions.toml digunakan untuk mengelola seluruh dependensi dan plugin yang diperlukan.
Dependensi utama:
-
androidx.compose.* – Untuk membuat tampilan antarmuka (UI).
-
androidx.navigation:navigation-compose – Untuk navigasi antar layar.
-
com.google.firebase:* – Untuk autentikasi OTP dan Firestore database.
androidx.compose.* – Untuk membuat tampilan antarmuka (UI).
androidx.navigation:navigation-compose – Untuk navigasi antar layar.
com.google.firebase:* – Untuk autentikasi OTP dan Firestore database.
Plugin Gradle:
-
com.android.application
-
org.jetbrains.kotlin.android
-
org.jetbrains.kotlin.plugin.compose
-
com.google.gms.google-services
com.android.application
org.jetbrains.kotlin.android
org.jetbrains.kotlin.plugin.compose
com.google.gms.google-services
Tampilan & Tema Aplikasi
-
File Color.kt, Theme.kt, dan Type.kt digunakan untuk mendefinisikan skema warna (seperti hijau khas Starbucks), gaya tipografi, dan mode gelap/terang.
-
Sumber daya visual seperti logo dan ikon terdapat di dalam folder res/drawable dan res/mipmap.
File Color.kt, Theme.kt, dan Type.kt digunakan untuk mendefinisikan skema warna (seperti hijau khas Starbucks), gaya tipografi, dan mode gelap/terang.
Sumber daya visual seperti logo dan ikon terdapat di dalam folder res/drawable dan res/mipmap.
Fitur Pengujian
Disediakan contoh file uji unit (ExampleUnitTest.kt) dan instrumentasi (ExampleInstrumentedTest.kt) sebagai dasar untuk pengujian fungsionalitas aplikasi.
Pengaturan AndroidManifest.xml
Berisi deklarasi aktivitas utama dan izin seperti INTERNET yang dibutuhkan agar aplikasi bisa terhubung ke Firebase.

Comments
Post a Comment