Pokedex Compose XR is an open-source project that blends the charm of the Pokédex with cutting-edge Extended Reality (XR) experiences, powered by Jetpack Compose. Built on top of the early-access AndroidX XR library, it showcases how immersive Pokémon data visualization can work across AR and VR devices.
- Immersive Pokémon Browsing: View Pokémon models, stats, and details in a fully spatial environment.
- Compose-Driven UI: Leverage the power of Jetpack Compose to create responsive, dynamic XR layouts.
- Interaction Experiments: Test gesture controls, spatial navigation, and XR-native interface patterns.
- Extensible Architecture: Designed to be easily adapted for other 3D catalog experiences by replacing datasets or integrating new XR hardware.
Pokedex Compose XR is both a showcase and a playground for developers interested in building XR apps with the AndroidX XR library, offering real-world examples to accelerate experimentation and learning.
To run and experiment with Pokedex Compose XR, you’ll need:
- The latest Canary build of Android Studio (e.g., Android Studio Narwhal 3 Feature Drop | 2025.1.3 Canary 4).
- XR System Images for the Android Emulator to simulate an Extended Reality environment without physical hardware.
- Clone this repository, open it in Android Studio, and select an XR Emulator device profile to launch the app.
This setup ensures you can explore the project as intended in a full virtual XR environment.
This project is built using modern, recommended technologies for creating spatial and immersive Android experiences.
-
UI & Spatialization:
- Jetpack Compose for XR: A declarative UI toolkit for building native, spatial user interfaces in XR.
- Palette API: Extracts prominent colors from Pokémon images to dynamically theme UI components.
- Coil: A lightweight, modern image loading library for Android backed by Kotlin Coroutines.
-
Core Architecture & Language:
- Kotlin: The primary programming language, offering concise, safe, and modern syntax.
- Coroutines & KTX: For managing background threads and writing more expressive code.
- MVVM Architecture: A clear separation of concerns between the UI, business logic, and data layers using a Repository pattern.
- UI State Management: Manages UI state for loading, loaded, and error conditions.
-
Data & Networking:
- Retrofit: A type-safe HTTP client for fetching data from the remote server.
- Room Database: Provides an abstraction layer over SQLite for robust offline data access.
-
Dependency Injection & Build Tools:
- Hilt: A dependency injection library that reduces the boilerplate of manual dependency injection.
- KSP (Kotlin Symbol Processing): An API for creating lightweight, high-performance compiler plugins in Kotlin.
- R8: A code shrinker that reduces your app's size by removing unused code and resources.
-
Custom Components:
- PercentageWithAnimation: A custom Compose component built by @NicosNicolaou16 to animate and display Pokémon stats.
- XR Compose version:
1.0.0-alpha10 - XR Runtime version:
1.0.0-alpha10 - Material3 XR Compose version:
1.0.0-alpha14 - XR Extensions version:
1.2.0 - Target SDK:
36 - Minimum SDK:
29 - Kotlin Version:
2.3.10 - Gradle Version:
9.0.0


