💥 Weather forecast cross-platform mobile application based on React Native with Expo Managed workflow 💥
https://1drv.ms/u/s!Ajq4XZm81_iYgZcAtWMcejVA8hqjVQ?e=Jks2Ff
🔥 Dark mode is preferable for iOS. 🔥
The below Snack is for portfolio purposes only.
https://snack.expo.dev/@iammar7/forecastware_v44
- Device's current location 📌
- Location tracker using device's background location service 📌
- Temperature check on every 10000 meters location change 👾
- Notification on temperature change 🌌
- Background fetch job that runs after every 15 minutes to update the current location weather and display the notification ⏲️
- Task manager to handle Background Fetch jobs 🥷
- SQLite to store multiple locations data 🏪
- Mobile battery level monitor. The app will display a pop-up and close if the battery level goes down to 20% 🔋
- Screenshot taker icon on different screens 📸
- Weather map using Google Maps with different layouts for precipitation, clouds, pressure, temperature, and wind 🗺️
- Barometer service to display the device's surrounding atmospheric pressure 🌡️
- In app web browser using expo-web for external links 🕸️
- Sentry integration for crash report and performance monitoring 🔗
- Snack integration for testing on different platforms 🔗
- Search locations feature both for map and weather 🔍
- Combined custom theme using React Native Paper and React Native Navigation 🔥
- Dark mode feature using Material Design practices 🔥
- The design of this app is inspired by Android Weather Application 📱
- Enabling the app theme color by user's mobile theme preference 🤳
- Store user preferences in AsyncStorage 🏬
- Temperature unit change feature; current support for Celsius, Fahrenheit, and Kelvin. 🔥
- Custom hooks 😻
- Custom lodash-like utility functions 😻
- Custom animation using Animatable library 😻
- Custom expo configuration for different platoforms 🔌
- For state management, this app is using React Context API 🧰
- The location data is being fetched from the Open Weather API 🧰
- git clone
- yarn install
- add .env
API_KEY={YOUR_OPEN_WEATHER_API_KEY} SENTRY_AUTH_TOKEN={YOUR_SENTRY_AUTH_TOKEN} (only needed for sentry branch)
- yarn start