A modern, cross-platform Recipe App built with Expo and React Native. Discover delicious recipes from TheMealDB, watch cooking tutorials, and save your favorites with a beautiful, intuitive interface.
- 🍽️ Recipe Discovery: Browse and search thousands of recipes from TheMealDB
- 📖 Rich Recipe Details: View ingredients, instructions, cook time, servings, and cuisine origin
- 🎥 Video Tutorials: Watch embedded YouTube cooking tutorials directly in the app
- 🔐 Authentication: Secure sign-in/sign-up with Clerk
- ❤️ Favorites: Save and manage your favorite recipes with backend sync
- 🎨 Modern UI: Beautiful gradients, smooth animations, and intuitive navigation
- 📱 Cross-Platform: Works on iOS, Android, and Web
- Expo - React Native development platform
- React Native - Cross-platform mobile development
- TypeScript - Type-safe JavaScript
- Expo Router - File-based routing system
- React Navigation - Tab navigation and screen transitions
- React Native Gesture Handler - Smooth touch interactions
- TanStack Query - Server state management and caching
- React Hook Form - Form handling and validation
- Zod - Schema validation
- Clerk - User authentication and session management
- Expo Secure Store - Secure token storage
- Expo Image - High-performance image loading
- Expo Vector Icons - Icon library (Ionicons)
- Expo Linear Gradient - Beautiful gradient effects
- React Native WebView - Embedded video playback
- React Native Toast Message - In-app notifications
- Expo Haptics - Tactile feedback
- NativeWind - Utility-first CSS framework
- Tailwind CSS - Design system
- ESLint - Code linting
- Prettier - Code formatting
- Node.js (v18 or higher)
- npm or yarn
- Expo CLI
- iOS Simulator (for iOS development)
- Android Studio (for Android development)
-
Clone the repository
git clone <repository-url> cd recipe-app/mobile
-
Install dependencies
npm install
-
Environment Setup
- Create a
.envfile in the mobile directory - Add your Clerk publishable key:
EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_key_here
- Create a
-
Start the development server
npx expo start
-
Run on your preferred platform
- Press
ifor iOS Simulator - Press
afor Android Emulator - Press
wfor Web browser - Scan QR code with Expo Go app on your device
- Press
mobile/
├── app/ # File-based routing
│ ├── (auth)/ # Authentication screens
│ ├── (tabs)/ # Main tab navigation
│ └── recipe/ # Recipe detail screens
├── components/ # Reusable UI components
├── services/ # API services and utilities
├── constants/ # App constants and configurations
├── assets/ # Images, fonts, and styles
└── types/ # TypeScript type definitions
npm start- Start the Expo development servernpm run android- Run on Android emulatornpm run ios- Run on iOS simulatornpm run web- Run in web browsernpm run lint- Run ESLint
- TheMealDB - Recipe data and images
- YouTube - Embedded video tutorials
- Custom Backend - Favorites management
Add screenshots of your app here
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- TheMealDB for recipe data
- Expo for the amazing development platform
- Clerk for authentication
- React Native community
Made with ❤️ using Expo and React Native