Skip to content

React-native based iOS mobile app that displays weather information on multiple cities

Notifications You must be signed in to change notification settings

eburhansjah/WeatherApp

Repository files navigation

This is a new React Native project, bootstrapped using @react-native-community/cli.

Overview

About

This react native project is built and developed with macOS and iOS simulator.

Its a weather mobile application that allows the user to select one of the cities in the US, and displays its corresponding current weather information, as well as a 5-day forecast.

For more details on project contributions, please read CONTRIBUTIONS.md.

Features

  1. Drop down menu to select other major cities in US

  2. Displaying current weather information:

    • Weather icon
    • Weather condition and description
    • Current temperature
    • Minimum and maximum temperature
    • Feels like temperature
  3. Displaying 5-day forecast weather information:

    The weather predicted for each day is according to the most prevalent condition on that day.

    • Weather icon
    • Weather description
    • Minimum and maximum temperature
  4. Display of the app dims at night time

  5. Interactive switch that allows users to toggle unit of temperature between Celsius and Fahrenheit

  6. Dynamic animated backgrounds according to the current weather condition:

    • Clouds
    • Rain
    • Drizzle
    • Thunderstorm
    • Snow
    • Clear

Getting Started

After cloning this repo on local device, do the following:

Requirements to set up your environment

For the following,

  • Development OS: macOS

  • Taget OS: iOS

Installing dependencies

  1. Install Node and Watchman with Homebew in a terminal before installing the below with Homebrew:

    • brew install node
    • brew install watchman
  2. Install Xcode from the Mac App Store

    Install the iOS simulator and other tools to build iOS app.

    a) Install the Xcode Command Line Tools

    Open Xcode -> Settings (or Preferences) -> Locations panel -> Select most recent version of Command Line Tools from the drop down menu

    b) Install iOS Simulator in Xcode

    Open Xcode -> Settings (or Preferences) -> Platforms (or Components) tab -> click "+" icon -> Select simulator that you wish to use

  3. Install CocoaPods

    • sudo gem install cocoapods

Note: Make sure you have completed the React Native - Environment Setup instructions till "Creating a new application" step, before proceeding.

Step 1: Start the Metro Server

First, you will need navigate to the root directory of this project, then start Metro, the JavaScript bundler that ships with React Native.

To start Metro, run the following command from the root of your React Native project:

# using npm
npm start

# OR using Yarn
yarn start

Step 2: Start your Application

Let Metro Bundler run in its own terminal. Open a new terminal from the root of your React Native project. Run the following command to start your Android or iOS app:

For Android

# using npm
npm run android

# OR using Yarn
yarn android

For iOS

# using npm
npm run ios

# OR using Yarn
yarn ios

If everything is set up correctly, you should see your new app running in your Android Emulator or iOS Simulator shortly provided you have set up your emulator/simulator correctly.

This is one way to run your app — you can also run it directly from within Android Studio and Xcode respectively.

Congratulations! 🎉

You've successfully run the React Native App. 🥳

Now what?

Troubleshooting

When there are errors or that the app has failed to build, it helps to remove cache and re-build the application:

Removing cache: npx react-native start --reset-cache

Rebuild project:

  • cd ios
  • pod install
  • cd ..
  • npx react-native run-ios

If you can't get this to work, see the Troubleshooting page.

Learn More

To learn more about React Native, take a look at the following resources:

About

React-native based iOS mobile app that displays weather information on multiple cities

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published