Boowie is a modern, feature-rich audiobook player built with React Native and Expo. It combines a premium "Fantasy Nature" aesthetic (stone, gold, ivy) with powerful playback controls and AI-enhanced library management. Later re-write in Kotlin.
- Format Support: Plays MP3, AWB, M4A, AAC, WAV, OGG.
- Sleep Timer: Fall asleep to your favorite stories with a customizable timer (5, 10, 15, 30, 45, 60 mins).
- Variable Speed: Adjust playback speed from 0.5x to 2.0x.
- Background Playback: Continue listening while using other apps or when the screen is off.
- Smart Progress: Automatically saves your position for every book.
- Interactive Controls: Smooth slider for seeking, skip forward/backward buttons.
- Easy Import: Import audiobooks directly from your device's file system.
- Metadata Editing: Edit book titles, authors, and descriptions.
- Format Detection: Automatically detects and displays file formats (MP3, AWB, etc.).
- Progress Tracking: Visual progress bars for each book in your library.
- Fantasy Nature Theme: A unique visual style inspired by ancient stone, warm gold, and organic greens.
- Smart Covers: Automatically generates cover art based on book titles using keyword analysis (powered by Unsplash).
- Gemini AI Integration: Optional advanced cover generation using Google's Gemini API.
- Premium UI: Smooth animations, gradients, and glassmorphism effects using
expo-linear-gradientandreact-native-reanimated.
- React Native - Cross-platform development
- Expo SDK 54 - Modern development workflow
- TypeScript - Type-safe code
- expo-audio - Next-gen audio API
- expo-file-system - Local file management
- AsyncStorage - Data persistence
- Lucide React Native - Beautiful vector icons
- @google/generative-ai - AI integration
-
Clone the repository
git clone https://github.com/yourusername/boowie.git cd boowie -
Install dependencies
npm install
-
Start the app
npx expo start
- Tap the
+button on the Home screen. - Select an audio file from your device.
- The app will automatically generate a cover and add the book to your library.
- Open the player for any book.
- Tap the Timer icon in the header.
- Select a duration (e.g., 15 minutes).
- The timer will count down and stop playback automatically.
To enable advanced AI cover generation with Gemini:
- Get an API key from Google AI Studio.
- Open
src/services/CoverGenerationService.ts. - Replace
YOUR_GEMINI_API_KEY_HEREwith your key.
Boowie/
├── src/
│ ├── constants/ # Theme colors, mock data
│ ├── hooks/ # Custom hooks (useAudioPlayer)
│ ├── navigation/ # Stack navigator configuration
│ ├── screens/ # Home, Player, EditBook screens
│ ├── services/ # Audio, Storage, AI services
│ └── utils/ # Helper functions
├── App.tsx # Root component
└── app.json # Expo configuration
MIT License - feel free to use and modify!
Happy Listening! 📖🎧