A modern React Native weather application built with Expo Router, featuring real-time weather data and beautiful UI.
- 🌍 City Search with Autocomplete - Smart city suggestions as you type
- 🌤️ Real-time Weather Data - Current weather conditions from WeatherAPI
- 📱 Modern UI - Clean, intuitive design with floating tab bar
- 🎨 Cross-platform Icons - SF Symbols on iOS, Material Icons on Android
- 📊 Detailed Weather Info - Temperature, humidity, wind, pressure, UV index, visibility
- 🚀 Smooth Navigation - Auto-redirect to weather details after city selection
- City search with live autocomplete
- Floating modern tab bar
- Comprehensive weather information
- Visual weather parameter cards with icons
- Responsive design for all screen sizes
- React Native - Cross-platform mobile framework
- Expo Router - File-based navigation
- TypeScript - Type-safe development
- WeatherAPI - Real-time weather data
- Space Grotesk Font - Modern typography
- SF Symbols / Material Icons - Platform-specific icons
-
Clone the repository
git clone <repository-url> cd rn-weather-app
-
Install dependencies
npm install
-
Setup Environment Variables
cp .env.example .env.local
Edit
.env.localand add your WeatherAPI key:API_URL=http://api.weatherapi.com/v1/current.json? API_KEY=your_api_key_here -
Get WeatherAPI Key
- Sign up at WeatherAPI.com
- Get your free API key
- Add it to
.env.local
-
Start the development server
npx expo start
npm start- Start Expo development servernpm run android- Run on Android device/emulatornpm run ios- Run on iOS device/simulatornpm run web- Run in web browsernpm run lint- Run ESLint
app/
├── (tabs)/
│ ├── index.tsx # Home screen with city search
│ ├── weather.tsx # Weather details screen
│ └── _layout.tsx # Tab layout with floating bar
components/
├── ui/
│ ├── icon-symbol.tsx # Cross-platform icons
│ └── icon-symbol.ios.tsx # iOS-specific icons
types/
└── env.d.ts # Environment variables types
search.json- City autocomplete suggestionscurrent.json- Current weather data
- Current temperature (°C)
- Weather condition
- Feels like temperature
- Humidity percentage
- Wind speed and direction
- Atmospheric pressure
- Visibility distance
- UV index
- Cloud coverage
# Build for production
eas build --platform all
# Preview build
eas build --platform all --profile preview# Submit to app stores
eas submit --platform allMake sure to have:
- Node.js 18+
- Expo CLI
- Valid WeatherAPI key
- Fork the repository
- Create your 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.
- WeatherAPI for providing weather data
- Expo for the amazing development platform
- SF Symbols for iOS icons
- Material Icons for Android icons