Submission project untuk kelas Belajar Fundamental Aplikasi Flutter.
Aplikasi ini menampilkan daftar informasi restoran yang diambil dari Dicoding Restaurant API.
Beberapa fitur yang tersedia meliputi pencarian restoran, manajemen favorit, pengaturan tema (dark/light), hingga notifikasi harian.
Desain UI aplikasi ini diadaptasi dari desain komunitas Figma:
👉 Restaurant Finder App (Figma) karya Kirtika Arora.
Halaman Home menampilkan daftar restoran populer dari API.
- Daftar restoran ditampilkan dalam bentuk list dengan gambar, nama, rating, dan kota.
- Data otomatis diambil dari API saat aplikasi pertama kali dijalankan.
- Jika tidak ada koneksi internet, aplikasi menampilkan pesan error/informasi yang sesuai.
Halaman Search Restaurants memungkinkan pengguna mencari restoran berdasarkan kata kunci.
- Pencarian dilakukan secara real-time menggunakan API.
- Jika kata kunci tidak ditemukan, aplikasi menampilkan pesan bahwa restoran tidak tersedia.
- Input pencarian ditangani menggunakan Provider agar UI dapat otomatis ter-update.
Halaman Favorit menyimpan daftar restoran yang dipilih pengguna sebagai favorit.
- Data favorit disimpan secara lokal menggunakan SQLite (sqflite) sehingga tetap tersimpan meski aplikasi ditutup.
- Pengguna dapat menambahkan/menghapus favorit melalui tombol di halaman detail restoran.
Halaman Settings menyediakan dua pengaturan utama:
- Tema Aplikasi → pengguna dapat memilih mode Dark atau Light.
- Daily Notification → pengguna dapat mengaktifkan notifikasi harian yang akan muncul setiap pukul 11.00 AM.
Halaman detail menampilkan informasi lengkap dari restoran yang dipilih.
Fitur yang tersedia di halaman ini:
- Informasi Lengkap: gambar, nama, rating, deskripsi, alamat, kategori, daftar menu makanan, minuman, dan daftar review.
- Favorit: tombol favorit untuk menambahkan atau menghapus restoran dari daftar favorit.
- Review: tombol review untuk navigasi ke halaman review
Halaman Review memungkinkan pengguna menambahkan ulasan untuk restoran tertentu.
- Input berupa nama & review pengguna.
- Review baru akan dikirim ke server API dan ditampilkan di halaman detail restoran.
- Clone repository ini:
git clone https://github.com/bayutp/dicoding-flutter-fundamental.git cd dicoding-flutter-fundamental - Install dependency Flutter
flutter pub get
- Jalankan aplikasi di emulator atau perangkat fisik
flutter run
http→ Mengambil data dari Dicoding Restaurant API.provider→ State management untuk mengatur data & UI.shared_preferences→ Menyimpan preferensi pengguna (contoh: tema & notification).sqflite→ Database lokal untuk menyimpan data restoran favorit.flutter_timezone→ Menentukan setup zona waktu untuk notifikasi agar sesuai dengan perangkat pengguna.flutter_local_notifications→ Menampilkan notifikasi harian.workmanager→ Menjadwalkan background task (notifikasi otomatis).
Aplikasi ini mencakup tiga jenis testing:
- Unit Test → Menguji fungsi di dalam provider (list, search, detail).
- Widget Test → Menguji UI komponen saat aplikasi pertama kali dijalankan.
- Integration Test → Menguji alur aplikasi (navigasi bottom navigation, interaksi favorit, dll).
Source code ini bebas digunakan untuk belajar dan referensi pribadi. Namun, dilarang mengirimkan ulang proyek ini secara langsung (tanpa modifikasi signifikan) sebagai submission di kelas Belajar Fundamental Aplikasi Flutter di Dicoding.
Silakan gunakan sebagai inspirasi dan kembangkan sesuai gaya & ide kreatifmu sendiri.











