https://github.com/iammar7/forecastware
Weather forecast cross-platform mobile application
https://github.com/iammar7/forecastware
expo google-map open-weather-api react-native react-navigation sentry snack
Last synced: about 2 months ago
JSON representation
Weather forecast cross-platform mobile application
- Host: GitHub
- URL: https://github.com/iammar7/forecastware
- Owner: iAmmar7
- Created: 2021-11-22T18:50:52.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-01-06T17:32:23.000Z (over 3 years ago)
- Last Synced: 2025-01-13T20:18:16.304Z (3 months ago)
- Topics: expo, google-map, open-weather-api, react-native, react-navigation, sentry, snack
- Language: JavaScript
- Homepage: https://1drv.ms/u/s!Ajq4XZm81_iYgZcAtWMcejVA8hqjVQ?e=Jks2Ff
- Size: 3.31 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# forecastware
:boom: Weather forecast cross-platform mobile application based on React Native with Expo Managed workflow :boom:## APK
https://1drv.ms/u/s!Ajq4XZm81_iYgZcAtWMcejVA8hqjVQ?e=Jks2Ff:fire: Dark mode is preferable for **iOS**. :fire:
## Snack
The below Snack is for portfolio purposes only.https://snack.expo.dev/@iammar7/forecastware_v44
## Few cool features
- Device's **current location** :pushpin:
- Location tracker using device's **background location** service :pushpin:
- Temperature check on every 10000 meters location change :space_invader:
- **Notification** on temperature change :milky_way:
- **Background fetch** job that runs after every 15 minutes to update the current location weather and display the notification :timer_clock:
- **Task manager** to handle Background Fetch jobs :ninja:
- **SQLite** to store multiple locations data :convenience_store:
- Mobile **battery level monitor**. The app will display a pop-up and close if the battery level goes down to 20% :battery:
- **Screenshot taker** icon on different screens :camera_flash:
- **Weather map** using Google Maps with different layouts for precipitation, clouds, pressure, temperature, and wind :world_map:
- **Barometer** service to display the device's surrounding atmospheric pressure :thermometer:
- In app web **browser** using expo-web for external links :spider_web:
- **Sentry** integration for crash report and performance monitoring :link:
- **Snack** integration for testing on different platforms :link:
- **Search locations** feature both for map and weather :mag:
- Combined **custom theme** using React Native Paper and React Native Navigation :fire:
- **Dark mode** feature using Material Design practices :fire:
- The design of this app is inspired by **Android Weather Application** :iphone:
- Enabling the app theme color by user's mobile theme preference :selfie:
- Store user preferences in **AsyncStorage** :department_store:
- Temperature unit change feature; current support for Celsius, Fahrenheit, and Kelvin. :fire:
- Custom hooks :heart_eyes_cat:
- Custom lodash-like utility functions :heart_eyes_cat:
- Custom **animation** using Animatable library :heart_eyes_cat:
- Custom **expo configuration** for different platoforms :electric_plug:
- For state management, this app is using **React Context API** :toolbox:
- The location data is being fetched from the **Open Weather API** :toolbox:## Technologies
- React Native![]()
- Expo CLI![]()
- React Navigation![]()
- Open Weather API![]()
- React Native Paper![]()
- Sentry![]()
- Snack## How to run
- 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