The Pokedex - Pokemon app is a Flutter project that applies technologies recommended by the Flutter Community. It demonstrates a clean architecture and a fluid user interface.
Important
A similar project is also available in Kotlin for Android! 👉 Pokedex_Compose 👈
- State Management: Utilizes the BLoC Pattern with a single state approach for predictable and maintainable UI logic.
- Offline First: Caches Pokémon data using the Drift (Moor) SQL toolkit, allowing the app to be fully functional offline.
- Efficient Networking: Fetches data from the PokéAPI using the powerful Dio HTTP client.
- Dependency Injection: Implements GetIt for service locator-based dependency injection, promoting decoupled and testable code.
- Smooth Animations: Leverages the Hero Widget for beautiful shared element transitions between screens.
- Image Caching: Uses CachedNetworkImage to efficiently load and cache images for offline availability.
This project is built with Dart and the Flutter framework, utilizing a variety of modern libraries:
- Networking: Dio
- Database & Offline Storage: Drift
- State Management: flutter_bloc
- Image Handling: cached_network_image
- Dependency Injection: get_it
- UI & Animations: Hero Widget
- Custom Components: percentages_with_animation for displaying Pokémon stats, built by @NicosNicolaou16.
- Flutter SDK Version: 3.31.2
- Dart Version: 3.11.0
- Primary API: PokéAPI (pokeapi.co)
- Image Sprites: PokeAPI/sprites on GitHub
- UI/UX Design Inspiration: Dribbble - Pokedex App by Alexandr (Note: Used as inspiration, not a direct copy).
- App Icon: Derived from Fandom Ideas Wiki.
If you enjoy this project, please give it a star! Check out all the stargazers here: Stargazers on GitHub
This library is actively maintained. Feedback, bug reports, and feature requests are welcome! Please feel free to open an issue or submit a pull request.




