A modern weather application built with Expo and React Native that provides real-time weather information and city search functionality.
- City search with autocomplete suggestions
- Current location weather
- Detailed weather information including:
- Temperature
- Feels like temperature
- Humidity
- Wind speed
- Sunrise/Sunset times
- Hourly forecast
- Temperature unit switching (Celsius/Fahrenheit)
- Clean and intuitive UI with smooth animations
Before running the application, make sure you have the following installed:
- Node.js (v16 or later)
- npm (v8 or later)
- Expo CLI (
npm install -g expo-cli) - iOS Simulator (for iOS development)
- Android Studio and Android SDK (for Android development)
- Expo Go app on your physical device (optional)
- Install Xcode from the Mac App Store
- Install iOS Simulator through Xcode
- Install Android Studio
- Install Android SDK (minimum SDK version 21)
- Configure Android environment variables
- Create and configure an Android Virtual Device (AVD)
-
Clone the repository:
git clone <repository-url> cd weather-app
-
Install dependencies:
npm install
-
Start the development server:
npx expo start
After starting the development server, you have several options to run the app:
- Install Expo Go on your iOS/Android device
- Scan the QR code shown in the terminal with:
- iOS: Camera app
- Android: Expo Go app
- iOS (macOS only):
npx expo start --ios
- Android:
npx expo start --android
For a native development build:
npx expo run:ios
# or
npx expo run:androidCommon issues and solutions:
-
Metro bundler issues:
npx expo start --clear
-
Dependencies issues:
npm install --force
-
Cache issues:
npx expo start --clear-cache
weather-app/
├── app/ # Main application screens
│ └── (tabs)/ # Tab-based navigation screens
│ ├── index.tsx # Search screen
│ ├── weather.tsx # Weather details screen
│ ├── settings.tsx # Settings screen
│ └── _layout.tsx # Tab navigation layout
├── src/
│ ├── store/ # Redux store configuration # Store configuration
│ ├── utils/ # Utility functions
│ └── styles/ # Shared styles
├── components/ # Reusable components
│ ├── weather/ # Weather Screen related components
│ ├── settings/ # Settings Screen related components
└── assets/ # Static assets
└── constants/ # Constants
- Expo
- React Native
- TypeScript
- Redux Toolkit
- Gluestack UI
- OpenWeatherMap API
https://mega.nz/file/kRtXBRKQ#N6YMboMuyxIn_vDt3_3rIZFDcBavo1bHq2rbXj0IzeI