Pokedex App is a native Android app built with Kotlin, Jetpack Compose, and the Navigation component. It lets users search for a Pokemon by name, view detailed information from the PokeAPI, and create a simple camera composite by overlaying the selected Pokemon's sprite onto a captured photo.
- Search for Pokemon by name
- Fetch Pokemon details and species data from PokeAPI
- View artwork, types, flavor text, and abilities
- Navigate through a simple multi-screen flow:
- Search
- Detail
- Camera
- Remember the last successful Pokemon search locally
- Capture a photo and save a sprite-overlay composite to the device gallery
Search: enter a Pokemon name and submit a lookupDetail: view the selected Pokemon's artwork, type badges, description, and abilitiesCamera: launch the device camera and save a photo with the current Pokemon sprite overlaid
Example screenshots captured from the emulator are available in artifacts/screenshots.
- Kotlin
- Android SDK 36
- Jetpack Compose
- AndroidX Navigation
- Retrofit
- Moshi
- Coil
- SharedPreferences
app/src/main/java/com/example/pokedexapp/
├── MainActivity.kt
├── PokemonSearchFragment.kt
├── PokemonDetailFragment.kt
├── PokemonCameraFragment.kt
├── PokemonCameraScreen.kt
├── CameraFeature.kt
├── data/
│ ├── PokeApiService.kt
│ ├── PokemonRepository.kt
│ ├── Pokemon.kt
│ ├── PokemonSpecies.kt
│ ├── LoadingStatus.kt
│ └── UserPreferencesRepository.kt
└── ui/
├── PokemonViewModel.kt
├── home/HomeScreen.kt
├── detail/DetailScreen.kt
└── theme/
- The user enters a Pokemon name on the home screen.
PokemonViewModelrequests both:/pokemon/{name}/pokemon-species/{name}
PokemonRepositoryreturns the results asResultobjects.- On success, the app stores the last search in
SharedPreferencesand navigates to the detail screen. - From the detail screen, the user can open the camera flow and create a saved composite image.
- Android Studio
- Android SDK installed
- JDK 11
- An Android emulator or physical Android device
- Internet access for PokeAPI requests
- Open the project folder in Android Studio.
- Let Gradle sync finish.
- Start an emulator or connect an Android device.
- Click
Runon theappconfiguration.
Build the debug APK:
./gradlew assembleDebugInstall it on a connected device or emulator:
adb install -r app/build/outputs/apk/debug/app-debug.apkLaunch the app:
adb shell am start -n com.example.pokedexapp/.MainActivityThe app requests:
INTERNETfor PokeAPI requestsCAMERAfor photo captureWRITE_EXTERNAL_STORAGEon older Android versions for saving images
- The app restores the last successful search when reopened.
- Camera behavior depends on emulator or device camera support.
- The composite image is saved to the device gallery under
Pictures/PokedexAppon supported Android versions.
- Add favorites or a search history screen
- Improve error handling and loading feedback
- Add automated UI tests
- Support more Pokemon data such as stats, height, weight, and evolution chains
- Refine the camera composite layout and scaling
This project was created for a course final project. Add a license here if you plan to distribute or reuse it outside the course context.