π₯ 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