FP PPB Yusuf Hasan Nazila
Analisis Detail Aplikasi Android Task Manager: EventSync
Analisis Detail Aplikasi
EventSync merupakan sebuah aplikasi pengelola tugas yang dikembangkan untuk platform Android. Dibangun menggunakan teknologi perangkat lunak modern, bertujuan untuk menyediakan antarmuka yang intuitif bagi pengguna untuk mengelola urusan harian mereka. Selain fungsionalitas pengelolaan tugas, aplikasi ini juga dilengkapi dengan sistem autentikasi pengguna yang lengkap, mencakup proses pendaftaran, login, dan verifikasi.
Teknologi inti yang digunakan adalah bahasa pemrograman Kotlin dan Jetpack Compose untuk membangun seluruh antarmuka pengguna (UI). Pendekatan ini memastikan kode UI yang lebih ringkas, kuat, dan mudah dipelihara dibandingkan dengan sistem berbasis XML tradisional.
Arsitektur Aplikasi
Struktur proyek ini dirancang dengan cermat mengikuti prinsip-prinsip Clean Architecture, yang memisahkan logika aplikasi ke dalam beberapa lapisan independen. Pendekatan ini secara signifikan meningkatkan keterbacaan, skalabilitas, dan kemudahan pengujian (testability) kode.
Lapisan-lapisan utama dalam arsitektur aplikasi ini adalah:
- Lapisan Model (model): Berisi definisi objek data inti aplikasi.
- Lapisan Data (data): Bertanggung jawab atas persistensi data, yaitu bagaimana data disimpan dan diambil.
- Lapisan Antarmuka Pengguna (ui): Mengelola semua aspek visual dan interaksi dengan pengguna. Di dalam lapisan ini, diterapkan pola arsitektur Model-View-ViewModel (MVVM) untuk memisahkan logika tampilan dari data.
Deskripsi Komponen dan Fungsionalitas
Berikut adalah rincian fungsionalitas dari setiap komponen utama dalam struktur proyek:
1. Lapisan Model (/model)
Task.kt: File ini mendefinisikan data class Task, yang merupakan cetak biru (blueprint) untuk sebuah entitas tugas. Setiap objek Task memiliki atribut-atribut penting seperti ID unik, judul tugas (title), tenggat waktu (deadline), dan status penyelesaian (isDone).
2. Lapisan Data (/data)
TaskStorage.kt: Komponen ini berfungsi sebagai repository atau abstraksi untuk penyimpanan data tugas. TaskStorage menangani logika internal untuk menyimpan daftar tugas ke memori perangkat (misalnya ke dalam file atau database lokal) dan memuatnya kembali saat aplikasi dibuka. Dengan adanya lapisan ini, komponen lain seperti ViewModel tidak perlu mengetahui detail teknis dari proses penyimpanan data.
3. Lapisan Antarmuka Pengguna (/ui)
Lapisan ini berisi semua layar (screen) dan logika terkait tampilan.
Komponen Inti UI:
MainActivity.kt: Merupakan titik masuk utama aplikasi. Dalam arsitektur Compose, MainActivity berfungsi sebagai host yang menampung dan mengatur seluruh komponen UI, termasuk controller navigasi.Navigation.kt: File krusial yang mendefinisikan seluruh alur navigasi aplikasi. Di dalamnya, setiap rute (misal, "login", "home") dipetakan ke fungsi Composable (Screen) yang sesuai, memungkinkan perpindahan yang terstruktur antar layar.
Fitur Autentikasi (/auth):
LoginScreen.kt: Menyediakan antarmuka bagi pengguna untuk masuk ke aplikasi menggunakan kredensial yang ada.SignUpScreen.kt: Menyediakan formulir pendaftaran bagi pengguna baru untuk membuat akun.OTPScreen.kt: Menangani antarmuka untuk verifikasi menggunakan One-Time Password (OTP), yang kemungkinan digunakan untuk validasi nomor telepon saat pendaftaran atau sebagai lapisan keamanan tambahan.
Fitur Manajemen Tugas:
TaskManagerScreen.kt: Ini adalah layar utama aplikasi setelah pengguna berhasil login. Layar ini menampilkan daftar tugas yang dikelompokkan berdasarkan status (terlewat, aktif, selesai), menyediakan tombol untuk menambah tugas baru (Floating Action Button), serta opsi untuk mengurutkan daftar tugas.TaskViewModel.kt: Merupakan komponen ViewModel yang menjadi "otak" dari TaskManagerScreen. TaskViewModel mengelola state UI (seperti daftar tugas dan mode urutan), menangani semua logika bisnis (menambah, menghapus, mengubah status tugas), dan berkomunikasi dengan TaskStorage untuk sinkronisasi data.
Komponen Pendukung UI:
/splash: BerisiSplashScreen.kt, layar pembuka yang ditampilkan saat aplikasi pertama kali dimuat./welcome: BerisiWelcomeScreen.kt, sebuah layar perkenalan atau onboarding./theme: Paket ini mendefinisikan identitas visual aplikasi, termasuk palet warna (Color.kt), tipografi (Type.kt), dan tema keseluruhan (Theme.kt).
Alur Kerja Aplikasi (User Workflow)
Secara garis besar, alur interaksi pengguna dengan aplikasi adalah sebagai berikut:
- Pengguna meluncurkan aplikasi dan akan melihat SplashScreen untuk inisialisasi.
- Aplikasi memeriksa status autentikasi pengguna.
- Jika pengguna belum login, aplikasi akan mengarahkannya ke alur autentikasi, dimulai dari WelcomeScreen atau langsung ke LoginScreen. Pengguna memiliki opsi untuk mendaftar melalui SignUpScreen.
- Jika pengguna sudah login, aplikasi akan langsung mengarahkannya ke layar utama.
- Setelah autentikasi berhasil, pengguna tiba di TaskManagerScreen.
- Di layar ini, pengguna dapat melihat, menambah, menyelesaikan, dan menghapus tugas. Setiap tindakan pengguna akan diproses oleh TaskViewModel, yang kemudian memperbarui state UI dan menyimpan perubahan data secara persisten.
- Seluruh navigasi antar layar diatur secara terpusat oleh
Navigation.kt.
Secara keseluruhan, aplikasi ini merupakan implementasi yang solid dari sebuah aplikasi Android modern, dengan struktur yang rapi, arsitektur yang kuat, dan fungsionalitas yang terdefinisi dengan baik.
Tampilan Aplikasi
Komentar
Posting Komentar