Skip to content

NicosNicolaou16/Pokedex_Compose

Repository files navigation

Pokedex Compose Pokédex App

Linktree Site X LinkedIn Medium Mastodon Bluesky Dev.to blog YouTube Google Developer Profile

A modern Pokédex app for Android built with the latest technologies recommended by Google. This project showcases a clean, scalable architecture and a fluid user interface using Jetpack Compose.

Important

A similar project is also available in Flutter (Dart)!
👉 Pokedex_Flutter 👈

✨ Features

  • Modern UI: Built entirely with Jetpack Compose for a declarative and intuitive UI.
  • Dynamic Theming: Extracts prominent colors from Pokémon images using the Palette API to create dynamic and immersive detail screens.
  • Seamless Transitions: Implements the new Shared Element Transition for smooth navigation between the list and detail views.
  • Offline Support: Caches Pokémon data using Room Database, allowing the app to work offline.
  • Efficient Networking: Fetches data from the PokéAPI using Retrofit.
  • Optimized Performance: Leverages Coroutines for asynchronous operations, KSP for faster annotation processing, and R8 for code shrinking.
  • Scalable Architecture: Follows the MVVM pattern with a repository, ensuring a clean separation of concerns and maintainable code.
  • Navigation: Leverages Navigation 3 and its Type Safety features for robust, compile-time checked, and error-free navigation.

📸 Screenshots & Demos

Pokemon List Screen Pokemon Detail Screen Pokemon Stats List to Detail Transition Scrolling and Searching

Landscape Detail View   Landscape to Portrait Transition

🛠️ Tech Stack & Libraries

This project is built with Kotlin and utilizes a variety of modern Android libraries and tools:

🔧 Versioning

  • Target SDK: 36
  • Minimum SDK: 29
  • Kotlin Version: 2.3.10
  • Gradle Version: 9.0.1

📚 APIs & References

Data Sources

Articles & Inspiration

⭐ Stargazers

If you enjoy this project, please give it a star! Check out all the stargazers here: Stargazers on GitHub

🙏 Support & Contributions

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.