Tugas 11 PPB G 2025 - Farhan Dwi Putra 5025211093

Nama : Farhan Dwi Putra

NRP : 5025211093

Kelas : Pemrograman Perangkat Bergerak (G)


Tugas Pertemuan 11

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.

Plugin Gradle:

  • 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.


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.



Hasil :



Source Code :
 Github

Comments

Popular posts from this blog

EAS PPB G 2025 - Kelompok Doa Ibu

EAS PPB G 2025 - Farhan Dwi Putra 5025211093