myaasiinh / Mobile-Programming-2024-2025

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

MUH, AKHYARUL INSAN HOME FITNESS APP 32602200094- Kelas Reguler #101

Open akhyar2442 opened 3 weeks ago

akhyar2442 commented 3 weeks ago

https://dribbble.com/shots/24512667-Home-fitness-app image

lib/ ├── models/ │ ├── workout_model.dart │ ├── user_model.dart │ └── category_model.dart ├── services/ │ ├── workout_service.dart │ └── user_service.dart ├── viewmodels/ │ ├── main_viewmodel.dart │ ├── workout_detail_viewmodel.dart │ └── category_list_viewmodel.dart ├── views/ │ ├── main_view.dart │ ├── workout_detail_view.dart │ └── user_profile_view.dart └── main.dart

  1. lib/ Ini adalah direktori utama dari proyek Flutter, tempat semua file Dart dan kode Flutter berada.
  2. models/ Direktori models berisi model data, yang merupakan struktur data yang digunakan di seluruh aplikasi. Setiap model biasanya adalah sebuah kelas Dart dengan properti dan metode terkait dengan tipe data tertentu.

    • workout_model.dart: Mendefinisikan struktur untuk data latihan (workout), seperti judul latihan, durasi, kalori yang terbakar, dan tingkat kesulitan. Model ini mungkin berisi properti seperti title, duration, caloriesBurned, dan metode untuk mengelola logika spesifik latihan.

    • user_model.dart: Mendefinisikan struktur untuk data pengguna, seperti nama pengguna, tujuan, dan progres saat ini. Model ini mungkin berisi properti seperti name, currentProgress, goals, dan metode untuk mengelola data terkait pengguna.

    • category_model.dart: Mewakili kategori latihan, seperti "Kekuatan" atau "Kardio." Model ini mungkin memiliki properti seperti name dan iconPath untuk menyimpan nama kategori dan ikon.

  3. services/ Folder services berisi file-file yang menangani logika bisnis dan operasi data. Layanan ini berinteraksi dengan database, API, atau penyimpanan lokal untuk melakukan operasi CRUD (Create, Read, Update, Delete).

    • workout_service.dart: File layanan ini menangani pengambilan data, penyimpanan, dan pembaruan data untuk latihan. Misalnya, memiliki metode seperti fetchWorkouts(), saveWorkoutProgress(), atau getWorkoutDetails() yang berinteraksi dengan API atau database lokal.

    • user_service.dart: Mengelola data yang terkait dengan pengguna, seperti mengambil dan memperbarui detail pengguna dan preferensi mereka. Misalnya, metode seperti getUser(), updateUser(), dan saveUserProgress() untuk menyimpan informasi terkait pengguna.

  4. viewmodels/ Direktori viewmodels berisi kelas ViewModel, yang bertindak sebagai perantara antara view dan model. Setiap ViewModel mengelola data dan status untuk tampilan tertentu, menyediakan data ke tampilan dan menangani perubahan data yang perlu diperbarui di UI.

    • main_viewmodel.dart: Menangani data dan status untuk layar utama, yang bisa termasuk memuat ringkasan latihan, progres pengguna, dan kategori latihan. ViewModel ini mungkin memiliki properti seperti workouts, categories, dan userProgress, serta metode untuk memuat dan menyegarkan data ini.

    • workout_detail_viewmodel.dart: Mengelola data untuk layar detail latihan, termasuk informasi rinci tentang latihan tertentu yang dipilih oleh pengguna. ViewModel ini menyediakan properti seperti selectedWorkout dan metode untuk mengambil data latihan secara detail.

    • category_list_viewmodel.dart: Menangani status untuk layar daftar kategori, menyediakan daftar kategori latihan. Mungkin mencakup properti seperti categories dan metode untuk memuat dan memfilter kategori latihan.

  5. views/ Folder views berisi komponen UI atau layar dalam aplikasi. Setiap layar dalam aplikasi memiliki file tampilan sendiri yang terhubung ke ViewModel tertentu. Views bertanggung jawab untuk menampilkan data dan interaksi pengguna; mereka mendengarkan perubahan dari ViewModel yang terkait untuk memperbarui UI.

    • main_view.dart: Mewakili layar utama atau beranda aplikasi. Layar ini mungkin menampilkan progres kebugaran pengguna, saran latihan, kategori, dan opsi navigasi lainnya. Data diambil dari MainViewModel.

    • workout_detail_view.dart: Menampilkan informasi rinci untuk latihan yang dipilih, seperti durasi, kalori yang terbakar, dan tingkat kesulitan. Layar ini mendengarkan WorkoutDetailViewModel untuk pembaruan data latihan.

    • user_profile_view.dart: Menampilkan profil pengguna, termasuk tujuan, progres, dan pengaturan pribadi. Layar ini terhubung ke UserProfileViewModel, yang menangani pengambilan dan pembaruan data spesifik pengguna.

  6. main.dart File main.dart adalah titik masuk dari aplikasi Flutter. File ini menginisialisasi aplikasi dan mengatur konfigurasi awal, termasuk tema, rute, dan injeksi dependensi.

    • Setup Providers: main.dart sering mengatur Provider atau MultiProvider untuk menyediakan ViewModel ke views.
    • Define Routes: Mengatur rute yang dinamai untuk navigasi antar layar.
    • RunApp: Fungsi runApp() dipanggil di sini, membungkus aplikasi dalam widget yang mengelola status dan menyediakan akses ke ViewModel.