- 📱 Features
- 🚀 Tech Stack
- 🧠 Architecture Overview
- 📂 Project Structure Highlights
- 🛠️ Setup & Usage
- 🧪 Notes
- 📸 Screenshots
- 📝 Future Improvements
- 📄 License
- 📍 Auto-detects device location using permissions
- 🏙️ Supports static city selection from
cities.json - 🌦️ Shows:
- Current weather conditions
- 24-hour hourly forecast
- 7-day forecast
- 🎨 Theme support (orange, blue, green)
- 💾 SQLite-based settings storage (theme, temperature unit, accuracy)
- 🎞 Animated transitions using Moti
- Expo
- React Native
- Moti
- expo-location
- expo-sqlite
- TypeScript
The app revolves around the Index screen which:
- Initializes app state
- Loads saved settings from SQLite
- Requests and handles location permissions
- Loads weather data from local dummy data or (optionally) an API
- Renders:
- Current weather (
<Today />) - Weather details (
<TodaysInfo />) - Hourly forecast (
<Hourly />) - Weekly forecast (
<Day />)
- Current weather (
.
├── assets/
│ ├── images/icons/ # Weather icons
│ └── cities.json # City coordinates map
├── components/
│ ├── Today.tsx
│ ├── TodaysInfo.tsx
│ ├── Hourly.tsx
│ └── Day.tsx
├── hooks/
│ └── useTabAnimation.ts
├── utils/
│ ├── api.ts
│ ├── dayStringMap.ts
│ ├── weatherCodes.ts
│ └── dummyData.ts
└── index.tsx # Main screen logic
- Node.js
- Expo CLI
git clone https://github.com/yourusername/weather-app.git
cd weather-app
npm install
npx expo start- Ensure your emulator or mobile device has location services enabled
- The local SQLite database (
myApp.db) should contain aSettingstable
-
Weather data is loaded from
utils/dummyData.tsYou can replace
M_FetchWeather()logic to call a real API (like OpenWeatherMap) -
If location access is denied, the app falls back to manually selected cities
(Add screenshots here if available) For example:
- 🌐 Replace dummy data with real-time API integration
- 🧭 Fallback handling if location services fail
- 🛠 Add user-facing Settings screen
- 🌍 Multi-language (i18n) support
This project is licensed under the MIT License.

