lib/
Ini adalah direktori utama dari proyek Flutter, tempat semua file Dart dan kode Flutter berada.
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.
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.
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.
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.
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.
https://dribbble.com/shots/24512667-Home-fitness-app
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
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
daniconPath
untuk menyimpan nama kategori dan ikon.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()
, ataugetWorkoutDetails()
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()
, dansaveUserProgress()
untuk menyimpan informasi terkait pengguna.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
, danuserProgress
, 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.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.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.main.dart
sering mengaturProvider
atauMultiProvider
untuk menyediakan ViewModel ke views.runApp()
dipanggil di sini, membungkus aplikasi dalam widget yang mengelola status dan menyediakan akses ke ViewModel.