Skip to content

eby8zevin/testAndroid-Brighton

Repository files navigation

testAndroid-Brighton

Ini adalah proyek Android yang menunjukkan penggunaan arsitektur MVVM (Model-View-ViewModel) bersama dengan komponen arsitektur Android modern. Proyek ini menyediakan titik awal yang terstruktur untuk membangun aplikasi Android yang mudah dimaintenance, dapat ditest, dan dapat dikembangkan lebih lanjut.

Project Overview

Proyek TestAndroid-Brighton dirancang untuk menampilkan pola arsitektur MVVM dalam pengembangan Android, yang menggabungkan praktik terbaik dalam manajemen data, pemisahan UI, dan library eksternal. Proyek ini menggunakan beberapa library untuk mempermudah pemuatan gambar, permintaan jaringan, dan pengelolaan library sehingga menghasilkan fondasi yang kuat dan efisien.

Technologies and Libraries Used

  • Kotlin: Bahasa pemrograman utama untuk pengembangan Android.
  • ViewBinding: Menghasilkan kelas binding untuk file layout XML sehingga mempermudah binding komponen view.
  • Glide: Pustaka pemuatan gambar yang cepat dan efisien untuk Android.
  • Retrofit: HTTP client yang aman untuk membuat permintaan jaringan.
  • OkHttp Logging Interceptor: Melacak permintaan dan respons jaringan untuk mempermudah debugging.
  • Activity KTX: Ekstensi untuk AndroidX Activity yang menyediakan API Kotlin.
  • Lifecycle ViewModel: Mengelola data UI yang mengikuti siklus hidup komponen.
  • LiveData: Kelas penyimpan data yang dapat diamati untuk menangani data komponen UI.
  • DataStore Preferences: Memberikan mekanisme penyimpanan key-value sederhana sebagai alternatif dari SharedPreferences.
  • Material Favorite Button: Tombol yang dapat dikustomisasi dengan status favorit/tidak favorit.

Screenshot

Project Structure

  • Pola MVVM: Memisahkan manajemen data, UI, dan logika bisnis.
    • Model: Mengelola data dan logika bisnis.
    • View: Merender komponen UI berdasarkan data yang diterima dari ViewModel.
    • ViewModel: Mengelola komunikasi data antara View dan Model.

Features

  • Arsitektur MVVM: Memberikan pemisahan tanggung jawab yang jelas.
  • Permintaan Jaringan dengan Retrofit: Mempermudah komunikasi dengan layanan web.
  • Pemuatan Gambar dengan Glide: Mengelola pemuatan dan caching gambar secara efisien.
  • Penyimpanan Data dengan DataStore: Mempermudah penyimpanan dan pengambilan data.
  • ViewBinding: Mengurangi kode boilerplate dan meningkatkan keterbacaan.

~ ありがとう

Surabaya, November 11, 2024