myaasiinh / Mobile-Programming-2024-2025

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

Gilang Setiawan - Mobile App - Agriculture - 32602200068 - Kelas Reguler #57

Open Gilangs1 opened 1 week ago

Gilangs1 commented 1 week ago

https://dribbble.com/shots/23122226-Mobile-App-Agriculture original-bcd070232fa76bfe0e036bdf1b5c2cf8

Struktur MVVM untuk Mobile App Agriculture

farming_weather_app/ │ ├── models/ │ ├── weather.dart
│ ├── demand.dart
│ ├── community_post.dart
│ ├── commodity.dart
│ └── user.dart
│ ├── viewmodels/ │ ├── weather_viewmodel.dart
│ ├── demand_viewmodel.dart
│ ├── community_viewmodel.dart
│ └── commodity_viewmodel.dart
│ ├── views/ │ ├── home_page.dart
│ ├── weather_page.dart
│ ├── demand_page.dart
│ ├── community_page.dart
│ └── profile_page.dart
│ ├── services/ │ ├── weather_service.dart
│ ├── demand_service.dart
│ ├── community_service.dart
│ └── commodity_service.dart
│ ├── resources/ │ ├── images/ │ │ ├── weather_icons/
│ │ ├── user_profile_placeholder.png │ └── icons/ │ ├── weather_icon.png │ └── community_icon.png │ ├── helpers/ │ ├── navigation_helper.dart
│ └── format_helper.dart
│ ├── app.dart
└── pubspec.yaml

  1. Models Folder models/ berisi berbagai file model yang merepresentasikan data dalam aplikasi.

weather.dart:

Menyimpan struktur data cuaca yang diperoleh dari API, seperti location (lokasi), temperature (suhu), humidity (kelembapan), dan condition (kondisi cuaca seperti berawan atau cerah). Model ini mengimplementasikan fungsi fromJson() untuk mempermudah konversi dari data JSON ke objek Weather. demand.dart:

Menyimpan data permintaan pembeli harian, seperti jumlah permintaan produk pertanian. Berfungsi untuk menampilkan data di bagian permintaan pembeli pada UI. community_post.dart:

Menyimpan struktur data untuk postingan komunitas, seperti author, content, timestamp, dan jumlah like atau komentar. Digunakan untuk menampilkan konten diskusi di komunitas. commodity.dart:

Menyimpan informasi tentang komoditas pertanian (misalnya, ayam, beras, jagung), termasuk nama, harga, dan jumlah ketersediaan. Berguna untuk menampilkan data produk pertanian. user.dart:

Menyimpan informasi pengguna seperti nama, ID, dan gambar profil. Digunakan untuk mengelola data pengguna di dalam aplikasi.

  1. Services Folder services/ berisi logika jaringan untuk mengambil data dari API atau sumber eksternal lainnya. weather_service.dart:

Berisi metode fetchWeather() yang mengambil data cuaca dari API eksternal berdasarkan lokasi. File ini menggunakan package http untuk mengirim permintaan ke API cuaca, mendekode respon JSON, dan mengembalikan objek Weather. demand_service.dart:

Berfungsi mengambil data permintaan pembeli dari API atau basis data lain. Misalnya, menyediakan fungsi fetchDemand() yang mengembalikan data permintaan harian untuk produk tertentu. community_service.dart:

Berisi logika untuk mengambil dan mengirimkan data postingan komunitas. Menyediakan metode untuk mengirim komentar baru, mendapatkan daftar postingan, atau meng-like postingan. commodity_service.dart:

Bertugas mengambil informasi mengenai produk pertanian dari API. Misalnya, menyediakan fungsi untuk mendapatkan harga terbaru dan jumlah ketersediaan dari berbagai komoditas.

  1. ViewModels Folder viewmodels/ berisi file ViewModel yang bertanggung jawab untuk mengelola status dan logika bisnis dari aplikasi.

weather_viewmodel.dart:

Mengelola status data cuaca. Mengambil data dari WeatherService dan menyimpannya dalam variabel _weather. Mengelola status loading untuk menampilkan loading indicator selama proses pengambilan data. Memanggil notifyListeners() untuk memperbarui tampilan jika ada perubahan data cuaca. demand_viewmodel.dart:

Mengelola data permintaan pembeli, seperti mengakses jumlah produk yang diminta. Bisa mengakses DemandService untuk mengambil atau memperbarui data permintaan, dan menampilkan data yang diperbarui ke tampilan UI. community_viewmodel.dart:

Mengelola logika untuk postingan di komunitas, termasuk fungsi untuk menambah, menghapus, atau memperbarui postingan. Menggunakan CommunityService untuk mengambil dan mengirimkan data komunitas. commodity_viewmodel.dart:

Mengelola data komoditas, seperti harga dan ketersediaan. Memungkinkan tampilan UI untuk mendapatkan data komoditas dari CommodityService.

  1. Views Folder views/ berisi tampilan UI yang berhubungan langsung dengan pengguna.

home_page.dart:

Halaman utama aplikasi yang mungkin menampilkan ringkasan cuaca, data permintaan harian, dan daftar komoditas. Menggunakan ViewModels seperti WeatherViewModel dan DemandViewModel untuk mendapatkan data dan memperbarui tampilan sesuai status aplikasi. weather_page.dart:

Halaman yang menampilkan detail cuaca, termasuk informasi lengkap tentang suhu, kelembapan, dan kondisi cuaca untuk beberapa hari ke depan. Mengambil data dari WeatherViewModel dan memperbarui tampilan ketika data berubah. demand_page.dart:

Halaman khusus yang menampilkan detail permintaan pembeli. Menggunakan DemandViewModel untuk mendapatkan data terbaru dan menampilkannya dalam format yang mudah dibaca. community_page.dart:

Halaman komunitas untuk melihat postingan atau berdiskusi dengan anggota komunitas. Mengambil data postingan dari CommunityViewModel dan memungkinkan pengguna untuk berinteraksi dengan postingan, misalnya dengan like atau komentar. profile_page.dart:

Halaman profil pengguna yang menunjukkan informasi akun dan data pribadi pengguna. Mengambil data dari User model dan menampilkan nama, foto profil, dan informasi tambahan lainnya.

  1. Helpers Folder helpers/ menyimpan fungsi-fungsi utilitas yang sering digunakan di berbagai bagian aplikasi.

navigation_helper.dart:

Menyediakan fungsi untuk navigasi antar halaman. Misalnya, navigateTo() digunakan untuk mempermudah berpindah halaman tanpa harus menulis ulang kode navigasi setiap kali dibutuhkan. format_helper.dart:

Mengandung fungsi untuk memformat data seperti tanggal, waktu, atau suhu. Misalnya, fungsi formatDate() untuk mengubah tanggal dalam format yang lebih mudah dibaca oleh pengguna.

  1. App Entry Point app.dart:

File ini berfungsi sebagai entry point dari aplikasi. Di dalamnya, kita bisa menginisialisasi providers dan mengatur routing aplikasi. Biasanya file ini akan menentukan halaman utama aplikasi, misalnya HomePage, dan menghubungkan semua Provider yang diperlukan. app.dart mungkin juga memuat pengaturan tema aplikasi dan konfigurasi awal lainnya. pubspec.yaml:

File konfigurasi untuk proyek Flutter yang berisi daftar dependencies atau library yang digunakan (misalnya http untuk panggilan API atau provider untuk state management). Menyertakan pengaturan asset seperti gambar, ikon, dan font yang akan digunakan di aplikasi.

Gilangs1 commented 6 hours ago

mas ini udah di benarkan mvvm nya kemaren kliru. tolong di cek ulang sama nilainya @myaasiinh

myaasiinh commented 3 hours ago

harap lgsg fokus ke tubes 1 uts ya, hrp teman - teman disampaikan, karena saya selama 1 minggu ini hingga kedepan lg fokus bikin modul praktikum

Pada Sen, 28 Okt 2024 pukul 11.31 Gilangs1 @.***> menulis:

mas ini udah di benarkan mvvm nya kemaren kliru. tolong di cek ulang sama nilainya @myaasiinh https://github.com/myaasiinh

— Reply to this email directly, view it on GitHub https://github.com/myaasiinh/Mobile-Programming-2024-2025/issues/57#issuecomment-2440528719, or unsubscribe https://github.com/notifications/unsubscribe-auth/AM6BJ5677WBLJCXNFAVPHNLZ5W4YNAVCNFSM6AAAAABP7PWK7SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINBQGUZDQNZRHE . You are receiving this because you were mentioned.Message ID: @.***>