Netflix UI Clone with Expo
November 8, 2024 ยท View on GitHub
A high-fidelity Netflix mobile UI clone built with React Native and Expo, featuring advanced animations and gesture interactions.

Key Features
Profile Management
- ๐ฅ Animated profile selection screen with staggered loading
- ๐ Smooth profile switching transitions
- ๐ต Sound effects and haptic feedback
Navigation & Animations
- ๐ Custom tab navigation with sliding animations
- ๐ซ Gesture-based content interactions
- ๐ Shared element transitions between screens
- ๐ฑ iOS-style modal presentations
- ๐จ Dynamic blur effects and scaling
- ๐ Tilt animations for featured content
Content Screens
- ๐ Animated home screen with featured content
- ๐ฅ "New & Hot" section with Netflix-style layout
- ๐ฎ Mobile games showcase
- ๐ Dynamic search with instant results
- โฌ๏ธ Downloads management
- ๐บ Teaser Video player
- ๐ Expandable categories list
- ๐ค Custom font
Performance
- โก Optimized animations using Reanimated
- ๐ Efficient list rendering [wip]
- ๐ฏ Native gesture handling
- ๐ Smart transition management
Tech Stack
- Expo - React Native development platform
- Expo Router - File-based routing
- React Native Reanimated - Smooth animations
- React Native Gesture Handler - Native gestures
- Expo Haptics - Haptic feedback
- Expo AV - Audio/video playback
Implementation Details
Animation System
- Custom tab screen wrapper for consistent transitions
- Worklet-based animations for optimal performance
- Shared element transitions for content previews
- Gesture-based modal interactions
State Management
- Context-based profile management
- Animation state coordination
- Tab navigation state handling
UI Components
- Reusable animated components
- Custom Netflix-style icons and layouts
Project Structure
project-root/
โโโ app/
โ โโโ (tabs)/
โ โ โโโ (profile)/ # Profile section
โ โ โโโ index.tsx # Home screen
โ โ โโโ new.tsx # New & Hot screen
โ โโโ movie/
โ โโโ _layout.tsx # Root layout
โ โโโ search.tsx # Search functionality
โโโ components/
โ โโโ MovieList/ # Movie listings
โ โโโ GameList/ # Games section
โ โโโ FeaturedContent/ # Featured content
โ โโโ BottomSheet/ # Bottom sheets
โ โโโ navigation/ # Navigation components
โ โโโ WhoIsWatching/ # Profile selection
โโโ hooks/
โ โโโ useCachedResources.ts
โ โโโ useColorScheme.ts
โ โโโ useDeviceMotion.ts
โ โโโ useOverlayView.ts
โโโ data/
โ โโโ movies.json # Movie data
โ โโโ new.json # New content data
โ โโโ users.json # User profiles
โโโ contexts/ # App-wide state management
TODO
- Shared transition on modal navigation
- Bug: Disable shift animation on back (fixed on branch router-4 (React Navigation 7))
- X-Ray style content details
- Full screen video player
- Color extraction from images for dynamic theming
Contributing
- Fork the repository
- Create a feature branch
- Submit a pull request
License
MIT License