A Kotlin Multiplatform Pokedex app with native Android (Jetpack Compose) and iOS (SwiftUI) frontends, sharing a common data layer.
Adapted fork of original compose-pokedex project.
Compose Pokedexer uses the PokeAPI GraphQL API to load all data and images pertaining to Pokémon.
- Explore the full Pokedex with fast, visual browsing
- Dive into rich detail pages with stats, evolutions, moves, and abilities
- Discover moves and items in their own dedicated catalogs
- Understand type matchups quickly with a built-in type chart
- Find what you want instantly with unified search
- Narrow the world by generation, type, or your favorites
- Make it yours with favorites and dynamic type-based theming
- Consistent experience across Android and iOS with a shared data layer
- KMP shared module: Room database, Apollo GraphQL client, data models, and repositories shared between Android and iOS
- Jetpack Compose Navigation 3:
NavDisplaywithrememberNavBackStackand type-safe serializable routes - Metro DI: Dependency injection with assisted injection for ViewModels requiring runtime parameters
- SKIE: Kotlin Flow to Swift AsyncSequence interop for iOS
- RuntimeShader: Pager color transitions on API 33+ devices
- Material Kolor: Seed-based dynamic color generation across platforms
- Coil: Image loading with GIF support
- DataStore: User preferences (favorites) storage
./gradlew assembleDebugOpen iosApp/PokedexerApp.xcodeproj in Xcode and build for a simulator or device (iOS 18.0+).
The shared KMP framework is built automatically by the Xcode build phase, or manually:
./gradlew :shared:linkReleaseFrameworkIosSimulatorArm64Adapted from Pokedex App design by Saepul Nahwan.
Notable additions:
- Dark theme
- Designs for all tabs on details screen
- Designs for Move, Abilities, and Items screens
- Designs for search
This sample app is not affiliated or endorsed by the creators, distributors, or the copyright or trademark holders of the series of games Compose Pokedexer relates to. The character names and information are trademarks of Nintendo. No copyright infringement is intended, this sample app is a fair-use reference for their works.,
All the code available under the MIT license. See LICENSE.
