myaasiinh / Mobile-Programming-2024-2025

Repository untuk mata kuliah mobile programming dan praktikum bertanya materi dan fixing bug
0 stars 0 forks source link

Muhamad Miftahul Huda-Fashion-Commerce-App-32602200095-Kelas Reguler #82

Open miftahulhuda00 opened 1 month ago

miftahulhuda00 commented 1 month ago

https://dribbble.com/shots/21195926-Fashion-Commerce-App

huda

lib : ├── core: │ ├── config: │ │ └── app_config.dart │ ├── utils : │ │ └── route_utils.dart │ └── global_component : │ ├── string_constants.dart │ ├── image_constants.dart │ └── color_constants.dart ├── features : │ ├── movies : │ │ ├── models : │ │ │ ├── movie_model.dart │ │ │ └── genre_model.dart │ │ ├── view_models : │ │ │ ├── movie_list_view_model.dart │ │ │ └── movie_detail_view_model.dart │ │ └── views : │ │ ├── movie_list_view.dart │ │ └── movie_detail_view.dart │ ├── favorites : │ │ ├── models : │ │ │ └── favorite_model.dart │ │ ├── view_models : │ │ │ └── favorites_view_model.dart │ │ └── views : │ │ └── favorites_view.dart │ └── profile : │ ├── models : │ │ └── user_model.dart │ ├── view_models : │ │ └── profile_view_model.dart │ └── views : │ └── profile_view.dart ├── data : │ └── repositories : │ └── movie_repository.dart ├── api : │ └── movie_api.dart ├── local_storage : │ └── shared_preferences_helper.dart └── main.dart

Pemetaan Algoritma perFile

Core

  1. core/config/app_config.dart Langkah 1: Definisikan variabel untuk URL API, tema aplikasi, dan pengaturan lainnya. Langkah 2: Buat kelas statis untuk menyimpan pengaturan ini agar mudah diakses di seluruh aplikasi. Langkah 3: Ekspor kelas ini agar dapat digunakan di file lain.
  2. core/utils/route_utils.dart Langkah 1: Definisikan semua rute untuk layar, seperti '/movieList', '/movieDetail', dan '/favorites'. Langkah 2: Buat fungsi untuk melakukan navigasi menggunakan Navigator.push dan Navigator.pop. Langkah 3: Ekspor fungsi navigasi ini agar mudah diakses di seluruh aplikasi.
  3. core/global_component/string_constants.dart Langkah 1: Buat konstanta string untuk teks yang digunakan di UI, seperti judul layar dan tombol. Langkah 2: Ekspor konstanta ini untuk digunakan di berbagai tampilan aplikasi. Langkah 3: Pastikan untuk menggunakan konstanta ini di tempat yang sesuai dalam tampilan.
  4. core/global_component/image_constants.dart Langkah 1: Definisikan jalur untuk gambar yang digunakan di UI, seperti logo dan ikon. Langkah 2: Ekspor jalur gambar ini agar dapat digunakan di seluruh aplikasi. Langkah 3: Tambahkan fallback untuk gambar jika gagal dimuat dari URL.
  5. core/global_component/color_constants.dart Langkah 1: Buat konstanta warna untuk palet aplikasi, seperti warna latar belakang, teks, dan tombol. Langkah 2: Ekspor konstanta warna ini untuk menjaga konsistensi dalam desain. Langkah 3: Gunakan warna ini di seluruh widget aplikasi. Features
  6. features/movies/models/movie_model.dart Langkah 1: Definisikan kelas model untuk data film dengan atribut seperti id, title, posterUrl, dan releaseDate. Langkah 2: Implementasikan metode untuk mengonversi objek JSON menjadi objek Dart. Langkah 3: Ekspor model ini agar dapat digunakan di repositori dan ViewModel.
  7. features/movies/models/genre_model.dart Langkah 1: Buat kelas model untuk genre film dengan atribut seperti id dan name. Langkah 2: Implementasikan metode untuk mengonversi objek JSON menjadi objek Dart. Langkah 3: Ekspor model ini untuk digunakan di dalam aplikasi.
  8. features/movies/view_models/movie_list_view_model.dart Langkah 1: Buat kelas untuk ViewModel yang mengelola daftar film. Langkah 2: Implementasikan metode fetchMovies untuk mengambil data film dari repositori. Langkah 3: Gunakan notifyListeners untuk memberi tahu tampilan ketika data diperbarui.
  9. features/movies/view_models/movie_detail_view_model.dart Langkah 1: Buat kelas untuk ViewModel yang mengelola detail film. Langkah 2: Implementasikan metode fetchMovieDetail untuk mengambil detail film berdasarkan ID. Langkah 3: Gunakan notifyListeners untuk memperbarui tampilan ketika data detail film diambil.
  10. features/movies/views/movie_list_view.dart Langkah 1: Buat tampilan daftar film menggunakan ListView. Langkah 2: Ambil data film dari MovieListViewModel dan tampilkan dalam daftar. Langkah 3: Tambahkan logika navigasi ke layar detail film saat item dipilih.
  11. features/movies/views/movie_detail_view.dart Langkah 1: Buat tampilan detail film menggunakan Scaffold untuk struktur dasar. Langkah 2: Ambil data dari MovieDetailViewModel dan tampilkan informasi lengkap film. Langkah 3: Tambahkan tombol untuk menandai film sebagai favorit.
  12. features/favorites/models/favorite_model.dart Langkah 1: Definisikan model untuk film favorit dengan atribut yang diperlukan. Langkah 2: Implementasikan metode untuk mengonversi objek JSON menjadi objek Dart. Langkah 3: Ekspor model ini agar dapat digunakan di dalam fitur favorit.
  13. features/favorites/view_models/favorites_view_model.dart Langkah 1: Buat kelas untuk ViewModel yang mengelola daftar film favorit. Langkah 2: Implementasikan metode untuk menambah dan menghapus film dari daftar favorit. Langkah 3: Gunakan notifyListeners untuk memperbarui tampilan ketika daftar favorit berubah.
  14. features/favorites/views/favorites_view.dart Langkah 1: Buat tampilan untuk menampilkan daftar film favorit menggunakan ListView. Langkah 2: Ambil data favorit dari FavoritesViewModel dan tampilkan dalam daftar. Langkah 3: Tambahkan logika untuk menghapus film dari daftar favorit.
  15. features/profile/models/user_model.dart Langkah 1: Buat kelas model untuk menyimpan data pengguna seperti username dan email. Langkah 2: Implementasikan metode untuk mengonversi objek JSON menjadi objek Dart. Langkah 3: Ekspor model ini agar dapat digunakan dalam pengelolaan profil pengguna.
  16. features/profile/view_models/profile_view_model.dart Langkah 1: Buat kelas untuk ViewModel yang mengelola informasi profil pengguna. Langkah 2: Implementasikan metode untuk mengambil dan memperbarui data pengguna. Langkah 3: Gunakan notifyListeners untuk memperbarui tampilan ketika data profil diambil atau diubah.
  17. features/profile/views/profile_view.dart Langkah 1: Buat tampilan untuk menampilkan informasi profil pengguna. Langkah 2: Ambil data pengguna dari ProfileViewModel dan tampilkan di UI. Langkah 3: Tambahkan opsi untuk memperbarui informasi profil. Data
  18. data/repositories/movie_repository.dart Langkah 1: Buat kelas repositori untuk mengelola pengambilan data film. Langkah 2: Implementasikan metode untuk mengambil daftar film dan detail film dari API. Langkah 3: Ekspor repositori ini agar dapat diakses oleh ViewModel. API
  19. api/movie_api.dart Langkah 1: Buat kelas untuk menangani semua permintaan API terkait film. Langkah 2: Implementasikan metode untuk melakukan panggilan HTTP dan mengembalikan data film. Langkah 3: Tangani kesalahan dan ekspos metode ini agar bisa dipanggil dari repositori. Local Storage
  20. local_storage/shared_preferences_helper.dart Langkah 1: Buat kelas helper untuk mengelola penyimpanan lokal menggunakan SharedPreferences. Langkah 2: Implementasikan metode untuk menyimpan dan mengambil data favorit pengguna. Langkah 3: Ekspor helper ini agar dapat digunakan di ViewModel untuk mengelola data lokal