The Scavenger mobile app provides iOS and Android users with a native interface to participate in the recycling platform.
- Welcome message with participant name and role
- Quick statistics (total waste, rewards earned)
- Quick action buttons for common tasks
- Navigation to detailed statistics
- Submit waste materials with type and weight
- Real-time validation
- Confirmation feedback
- History of submissions
- Transfer waste to other participants
- Search for recipient participants
- Add transfer notes
- Track transfer status
- View participant information
- Update profile details
- Manage notification preferences
- View account settings
- Total waste submitted
- Total rewards earned
- Waste breakdown by type
- Monthly trends
- Leaderboard position
- Install Xcode 14+
- Run
npm run ios - App opens in iOS Simulator
- Install Android Studio
- Set up Android emulator or connect device
- Run
npm run build:android - Install APK on device
Create .env file in mobile directory:
REACT_APP_API_URL=http://localhost:8080
REACT_APP_CONTRACT_ID=your_contract_id
REACT_APP_NETWORK=testnet
Uses Zustand for global state:
- Participant information
- Statistics
- Cached data
Axios-based API client with:
- Automatic error handling
- Request/response interceptors
- Timeout management
React Navigation with:
- Bottom tab navigation
- Stack navigation for screens
- Deep linking support
- Camera (for QR code scanning)
- Location (for waste submission)
- Notifications
- CAMERA
- ACCESS_FINE_LOCATION
- ACCESS_COARSE_LOCATION
- POST_NOTIFICATIONS
- Lazy loading of screens
- Image optimization
- Efficient state updates
- Minimal re-renders
npm testRun specific test:
npm test -- HomeScreen.test.tsxEnable debug mode:
REACT_APP_DEBUG=true npm startView logs:
npx react-native log-ios
npx react-native log-android- Clear cache:
npm start -- --reset-cache - Reinstall dependencies:
rm -rf node_modules && npm install
- Check API_URL in .env
- Verify backend is running
- Check network connectivity
- Clear build cache:
npm run clean - Update dependencies:
npm update - Check Node.js version (16+)
npm run build:ios
# Upload to App Store Connectnpm run build:android
# Upload to Google Play ConsoleFor issues and feature requests, visit the main project repository.