⚠️ Work in Progress — This project is currently under active development and is built for learning purposes.
A mobile Pokédex app built with React Native and Expo, featuring a Pokémon browser with details and a classic "Who's That Pokémon?" guessing game.
Who's That Pokémon? — Hidden
- 📋 Pokédex List — Infinite scroll list of all Pokémon, loading 20 at a time
- 🔍 Pokémon Details — Type-colored bottom sheet with stats, abilities, height, weight and animated stat bars
- 🎮 Who's That Pokémon? — Guessing game with Gen 1 Pokémon (1–151), black silhouette revealed on answer
- 🌐 Cross-platform — Runs on iOS, Android and Web
| Technology | Version | Purpose |
|---|---|---|
| React Native | 0.81.5 | Mobile UI framework |
| React | 19.1.0 | UI library (with concurrent rendering) |
| Expo | ~54.0.33 | Development platform & SDK |
| Expo Router | ~6.0.23 | File-based navigation |
| TypeScript | ~5.9.2 | Type safety |
| React Navigation | ^7 | Stack + Bottom Tabs navigator |
| React Native Reanimated | ~4.1.1 | Advanced animations |
| React Native Gesture Handler | ~2.28.0 | Gesture support |
| React Native SVG | ^15.15.3 | SVG rendering (Pokeball) |
| PokéAPI | — | Free public Pokémon REST API |
pokedex/
├── app/
│ ├── _layout.tsx # Root Stack navigator
│ ├── details.tsx # Pokémon detail screen (modal bottom sheet)
│ ├── (tabs)/
│ │ ├── _layout.tsx # Bottom tab navigator
│ │ ├── index.tsx # Pokédex list screen
│ │ └── who-is-that-pokemon.tsx # Guessing game screen
│ └── components/
│ ├── PokemonCard.tsx # List card with type colors
│ ├── StatsChart.tsx # Animated stat bars
│ ├── LoadingPokeball.tsx # Spinning Pokeball loader
│ └── PokeballSvg.tsx # SVG Pokeball component
├── hooks/
│ ├── usePokemon.ts # Paginated list fetching
│ └── usePokemonDetails.ts # Single Pokémon detail fetching
└── package.json
# Clone the repo
git clone <your-repo-url>
cd pokedex
# Install dependencies
npm install
# Start the development server
npx expo startThen scan the QR code with Expo Go (Android) or the Camera app (iOS).
All Pokémon data is fetched from PokéAPI — a free, open Pokémon REST API. No API key required.
MIT License




