Skip to content

c5inco/compose-pokedexer

Repository files navigation

Compose Pokedexer

License-MIT

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.

PokeAPI

Compose Pokedexer uses the PokeAPI GraphQL API to load all data and images pertaining to Pokémon.

Features

  • 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

Notable Technical Choices

  • KMP shared module: Room database, Apollo GraphQL client, data models, and repositories shared between Android and iOS
  • Jetpack Compose Navigation 3: NavDisplay with rememberNavBackStack and 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

Screenshots

Screenshots of app

Building

Android

./gradlew assembleDebug

iOS

Open 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:linkReleaseFrameworkIosSimulatorArm64

Original design

Adapted 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

Disclaimer

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.,

License

All the code available under the MIT license. See LICENSE.

About

Pokedex app written in Compose, powered by PokeAPI.co

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors