A React Native app built with Expo for finding the best deals across suppliers for household items.
- Node.js (v18 or later) - ✅ Installed
- npm - ✅ Installed
- Xcode (for iOS development) - ✅ Installed
- Expo CLI - ✅ Installed globally
- iOS Simulator - ✅ Available
# Install dependencies and iOS pods
npm run setup
# Or manually:
npm install
cd ios && pod install && cd ..# Start Expo development server
npm start
# Or start directly with iOS simulator
npm run start:ios
# For development client (recommended for native modules)
npm run dev:ios# Build and run on iOS simulator
npm run ios:simulator
# Or use Expo CLI directly
expo run:ios --simulator| Command | Description |
|---|---|
npm start |
Start Expo development server |
npm run start:ios |
Start with iOS simulator |
npm run dev:ios |
Start with dev client for iOS |
npm run ios:simulator |
Build and run on iOS simulator |
npm run setup |
Install dependencies and pods |
npm run clean |
Clear Expo cache |
npm run clean:ios |
Clean iOS build cache |
- iPhone 15 simulator is currently booted and ready
- Available simulators: iPhone 15 Pro, iPhone 15 Pro Max, iPhone 16 series
- Bundle identifier:
com.shopiq.app - iOS deployment target: 17.0
- Start the development server:
npm run dev:ios - The app will automatically reload when you make changes
- Use Expo Dev Tools for debugging and performance monitoring
- Hot reloading is enabled by default
This project uses:
- expo-sqlite - Local database storage
- react-native-mmkv - Fast key-value storage
- expo-dev-client - Development client for native modules
ShopIQ/
├── app/ # Expo Router app directory
│ ├── inventory/ # Inventory management screens
│ ├── suppliers/ # Supplier management screens
│ └── offers.tsx # Offers listing
├── src/
│ ├── components/ # Reusable UI components
│ ├── storage/ # Data layer (SQLite, MMKV)
│ └── constants/ # App constants
├── ios/ # iOS native code
├── e2e/ # End-to-end tests
└── assets/ # Images and icons
# Unit tests
npm test
# Watch mode
npm run test:watch
# Coverage
npm run test:coverage
# E2E tests
npm run test:e2e:iosMetro bundler issues:
npm run clean
npm startiOS build issues:
npm run clean:ios
cd ios && pod install && cd ..
npm run ios:simulatorPod installation issues:
cd ios
pod deintegrate
pod install
cd ..Simulator not found:
# List available simulators
xcrun simctl list devices available
# Boot a specific simulator
xcrun simctl boot "iPhone 15 Pro"- Use the development client (
npm run dev:ios) for better native module support - Enable Fast Refresh in the Expo Dev Tools for instant updates
- Use the iOS Simulator for consistent testing environment
- Check the Metro bundler logs for any build issues
- Expo SDK 53 - Latest stable version
- React Native 0.79.5 - With new architecture enabled
- React 19.0.0 - Latest React version
- expo-router - File-based routing
- expo-sqlite - Local database
- react-native-mmkv - Fast storage
- formik - Form handling
- zod - Schema validation
This setup provides:
- ✅ Real-time code reloading
- ✅ iOS simulator integration
- ✅ Native module support
- ✅ TypeScript support
- ✅ ESLint and Prettier
- ✅ Jest testing
- ✅ E2E testing with Maestro
For development issues:
- Check the troubleshooting section above
- Review Expo documentation: https://docs.expo.dev/
- Check React Native documentation: https://reactnative.dev/
Happy coding! 🚀