Skip to content

iAmmar7/forecastware

Repository files navigation

forecastware

💥 Weather forecast cross-platform mobile application based on React Native with Expo Managed workflow 💥

APK

https://1drv.ms/u/s!Ajq4XZm81_iYgZcAtWMcejVA8hqjVQ?e=Jks2Ff

🔥 Dark mode is preferable for iOS. 🔥

Snack

The below Snack is for portfolio purposes only.

https://snack.expo.dev/@iammar7/forecastware_v44

Few cool features

  • 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 🧰

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