A React Native music streaming app built with Expo that allows users to search, play, and manage their favorite tracks.
- Audio Playback: Play music previews with a custom audio player
- Favorites Management: Save and manage favorite tracks locally
- Expo - React Native framework for cross-platform development
- Expo Router - File-based routing system
- React Native - Mobile app development framework
- Deezer API - Music streaming and search API
- TanStack Query - Data fetching and caching
- Axios - HTTP client for API requests
- SQLite - Local database for storing favorite tracks
- Drizzle ORM - Type-safe database queries and migrations
- Expo SQLite - SQLite integration for Expo
- React Native Track Player - Advanced audio playback capabilities
- Expo Image - Optimized image loading and caching
- Node.js: v20.19.4
- pnpm: 10.14.0
-
Install dependencies
pnpm install # or pnpm i -
Start the development server
pnpm expo start
-
Run on your preferred platform
- iOS Simulator: Press
iin the terminal - Android Emulator: Press
ain the terminal - Web: Press
win the terminal - Physical Device: Scan the QR code with Expo Go
- iOS Simulator: Press
# Generate migration
pnpm drizzle-kit generate
# Run migrations
pnpm drizzle-kit pushpnpm run lintThe app uses SQLite with Drizzle ORM to store:
- Favorite Tracks: User's saved tracks with metadata
- Track Details: Cached track information for offline access
- Preview Playback: 30-second track previews
- Background Playback: Continues playing when app is backgrounded
- Media Controls: Lock screen and notification controls
- Progress Tracking: Real-time playback progress