An open API service indexing awesome lists of open source software.

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

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 ReactNative
- Expo CLI Expo
- React Navigation ReactNavigation
- Open Weather API OpenWeather
- React Native Paper paper
- Sentry sentry
- Snack 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