
A modern React Native movie discovery app built with Expo, featuring TMDB API integration, beautiful UI, and smooth navigation.
A modern React Native movie discovery app built with Expo, featuring TMDB API integration, beautiful UI, and smooth navigation.
Clone the repository
git clone https://github.com/AhmedQeshta/movies-app
cd movies-appInstall dependencies
npm install
# or
yarn installSet up environment variables. Create a .env file in the root directory:
EXPO_PUBLIC_TMDB_API_KEY=your_tmdb_api_key_here
EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_key_hereGet TMDB API Key
.env fileStart the development server
npm start
# or
yarn startRun on device/simulator
i for iOS simulatora for Android emulatormovies-app/
├── app/ # Expo Router pages
│ ├── (app)/ # Authenticated app routes
│ │ ├── (tabs)/ # Tab navigation
│ │ │ ├── index.tsx # Home page
│ │ │ └── profile/ # Profile page
│ │ └── movie/ # Movie details
│ │ └── [id].tsx # Dynamic movie page
│ └── _layout.tsx # Root layout
├── components/ # Reusable components
│ ├── movies/ # Movie-related components
│ │ ├── Movies.tsx # Main movies component
│ │ ├── MovieCard.tsx # Individual movie card
│ │ └── MovieSection.tsx # Movie category sections
│ └── SplashScreen.tsx # App splash screen
├── hooks/ # Custom React hooks
│ ├── data/ # Data fetching hooks
│ │ ├── usePopularMovies.ts
│ │ ├── useTopRatedMovies.ts
│ │ ├── useNowPlayingMovies.ts
│ │ └── useUpcomingMovies.ts
│ └── useFetchData.ts # Generic data fetching hook
├── libs/ # API and utilities
│ └── data/
│ └── movies.ts # TMDB API functions
├── types/ # TypeScript type definitions
│ ├── movie.ts # Movie-related types
│ └── data.ts # Data fetching types
└── constants/
├── Colors.ts # App color scheme
└── Api.ts # API configuration/movie/popular - Popular movies/movie/top_rated - Top rated movies/movie/now_playing - Currently playing/movie/upcoming - Upcoming releases/movie/{id} - Movie details/movie/{id}/credits - Cast and crew#1a1a2e to #16213e)#6849a7)npm start# iOS
npx expo build:ios
# Android
npx expo build:androidConfigure app.json with proper bundle identifiers
Build production version
Submit to respective app stores
This project is licensed under the MIT License - see the LICENSE file for details.
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
For support and questions:
Made with ❤️ for movie lovers everywhere

