π§© Flutter PokΓ©dex
A beautifully crafted Flutter application that displays PokΓ©mon data with features such as favorites, search/filter, and persistent local storage. This project utilizes modern Flutter development tools including provider, auto_route, injectable, and hive, with full support for dark and light themes.
β¨ Features
- βοΈ Modular structure for better scalability and maintainability
- π Light and Dark Theme support
- π§© State Management using
provider - π¦ Route management via
auto_route - π Dependency Injection with
injectable - πΎ Local data persistence with
hive - π§ Offline capability for favorite PokΓ©mon and recent filters
πΈ Screenshots
Here are some screenshots of the app:
<p align="center"> <img src="screenshots/Screenshot_1748367750.png" width="200" /> <img src="screenshots/Screenshot_1748367753.png" width="200" /> <img src="screenshots/Screenshot_1748367759.png" width="200" /> <img src="screenshots/Screenshot_1748367765.png" width="200" /> <img src="screenshots/Screenshot_1748367770.png" width="200" /> <img src="screenshots/Screenshot_1748367773.png" width="200" /> <img src="screenshots/Screenshot_1748367777.png" width="200" /> <img src="screenshots/Screenshot_1748367781.png" width="200" /> <img src="screenshots/Screenshot_1748367783.png" width="200" /> <img src="screenshots/Screenshot_1748367787.png" width="200" /> <img src="screenshots/Screenshot_1748367794.png" width="200" /> <img src="screenshots/Screenshot_1748367802.png" width="200" /> <img src="screenshots/Screenshot_1748367807.png" width="200" /> <img src="screenshots/Screenshot_1748367812.png" width="200" /> <img src="screenshots/Screenshot_1748368581.png" width="200" /> <img src="screenshots/Screenshot_1748368585.png" width="200" /> <img src="screenshots/Screenshot_1748368589.png" width="200" /> </p>π Getting Started
-
Clone the repository
git clone https://github.com/AkhmadRamadani/pokedex.git cd pokedex -
Install dependencies
flutter pub get -
Generate files (routes, injection)
flutter pub run build_runner build --delete-conflicting-outputs -
Run the app
flutter run
π Folder Structure
lib/
βββ core/ # Core utilities and shared configuration
β βββ assets/ # Static assets and generated files
β βββ config/ # Route and DI configuration
β βββ constants/ # Global constants (e.g. API)
β βββ databases/ # Hive-related models and services
β βββ extensions/ # Dart/Flutter extension methods
β βββ helpers/ # Utility helpers (e.g. error handling)
β βββ services/ # Low-level services like network
β βββ shared/ # Shared models and widgets
β βββ state/ # UI state definition using Freezed
β βββ themes/ # Light/Dark themes and color config
βββ modules/ # Feature-based modules (Pokedex, Favorite, etc)
β βββ splash/ # Splash screen
β βββ home/ # Home view
β βββ pokedex/ # Pokedex feature
β βββ favorite/ # Favorite PokΓ©mon feature
β βββ detail/ # PokΓ©mon detail feature
βββ main.dart # App entry point
βββ pokedex\_app.dart # Root widget of the app
βββ pokedex\_provider.dart # Root provider setup
βββ hive\_registrar.g.dart # Hive adapter registrations
π¦ Hive Boxes
- PokΓ©mon List
- Favorite PokΓ©mon
π Theme Support
App will automatically switch between light and dark themes based on system settings. You can also customize themes within the app.
π Notes
- Ensure you run
build_runnerevery time you change route or injectable-related files. - Hive adapters are already registered via the injectable DI setup.
π License
MIT License Β© Akhmad Ramadani