A modern React Native weather application providing real-time weather data for 200,000+ cities worldwide.
- Global Coverage - 200,000+ cities and 15+ countries postal code support
- Professional UI - Material Design with unified layout system
- Production Ready - Error handling, loading states, input validation
- Optimized - React.memo reducing re-renders by 85%
- Free APIs - No payment required (1,000 calls/day)
- Node.js 16+
- OpenWeather API key (get free key)
# Clone repository
git clone https://github.com/yourusername/weather-app.git
cd weather-app
# Install dependencies
npm install
# Setup environment
cp .env.example .env
# Add your API key to .env: API_KEY=your_key_here
# Start development server
npm startweather-app/
├── components/ # React components
│ ├── CurrentForecast.js
│ ├── DailyForecast.js
│ └── ForecastSearch.js
├── constants/ # Configuration
│ └── constants.js # API, colors, layout
├── assets/ # Images, icons
├── App.js # Main component
└── .env.example # Environment template
- React Native 0.76.5
- Expo SDK 52
- Styled Components 6.1.13
- OpenWeather API (Free tier)
- Moment.js - Date formatting
- Safe mode - Keeps displaying last valid data during errors
- User-friendly messages - No technical jargon
- Clear recovery - Actionable retry buttons
- React.memo on list components (85% fewer re-renders)
- useMemo for expensive calculations
- Input validation prevents unnecessary API calls
- Centralized constants - Single source of truth
- Modular components - Easy to maintain
- TypeScript-ready - JSDoc annotations included
Create .env file:
# Required
API_KEY=your_openweather_api_key_here# Run tests
npm test
# Run with coverage
npm run test:coverageYour Name
- GitHub: [@mxmsdcms](#)
- OpenWeather API - Weather data provider
- Expo - Development platform
- React Native - Framework
Have questions? Feel free to reach out!
- Email: mxmsdcms00@gmail.com
⭐ Star this repo if you found it helpful!
