A simple and scalable React Native application to browse movie details using The Movie Database (TMDB) API. This project follows a Clean Architecture approach to ensure maintainability and testability.
- Fetch and display movie details
- Scalable API integration using Axios
- Clean and modular project structure
- Centralized API handling
- Optimized network calls with Axios interceptors
- Pagination support for smooth movie browsing
git clone https://github.com/Coderkube-App/react-native-api-integration.git# Using npm
npm install
# OR using Yarn
yarn installnpx react-native startnpx react-native run-androidnpx react-native run-iosThis project uses TMDB API.
- You must add your own API key before running the project.
- Create an account on TMDB
- Generate your API key
- Open the file:
src/core/network/ApiEndpoints.ts
- Add your API key:
export class ApiEndpoints {
static readonly baseUrl = 'https://api.themoviedb.org/3';
static readonly apiKey = 'YOUR_API_KEY_HERE';
}- React Native (0.81+)
- TypeScript
- Axios (HTTP client)
- React Navigation (Stack Navigation)
src/
├── core/ # Network clients, themes, constants
├── domain/ # Business logic (Entities, Repository Interfaces)
├── data/ # Data layer (Models, Repository Implementations, Providers)
├── modules/ # Feature-based UI (Views, ViewModels/Hooks)
└── routes/ # Navigation configuration
- MVVM Pattern: Separation of UI and logic using custom Hooks (ViewModels).
- Clean Architecture: Separation of concerns between Data, Domain, and UI layers.
- Axios Interceptors: Global request/response handling.
- Modular Codebase: Each feature is isolated in the
modulesdirectory.
- Search movies
- Favorites or Watchlist
- Movie trailers
- Dark mode support
- Feel free to fork and improve this project
- Pull requests are welcome