weather 0.1.3 weather: ^0.1.3 copied to clipboard
A weather plugin for fetching current weather and forecasting via the OpenWeatherMap API. Works for both Android and iOS.
weather #
This package uses the OpenWeatherMAP API to get the current weather status as well as weather forecasts.
Install (Flutter) #
Add weather
as a dependency in pubspec.yaml
.
For help on adding as a dependency, view the pubspec documenation.
Permissions #
The package uses your location to fetch weather data, therefore location tracking must be enabled.
Android #
Add the following entry to your manifest.xml
file, in the Android project of your application:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
In addition, it is recommended to set your minimum SDK version to 21.
iOS #
- Open the XCode project of your app, named
Runner.xcodeproj
- Locate the
info.plist
file in theRunner
directory. - Right click
info.plist
and chooseOpen as > Source Code
. - Add the following entries inside the
<dict></dict>
tags`:
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app uses location to forecast the weather.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>This app uses location to forecast the weather.</string>
Known issues
There is an issue with the location
plugin which this package depends on, where an error with the following message
The use of Swift 3 @objc inference in Swift 4 mode is deprecated
may be thrown. For a solution, check the following stack overflow question: https://stackoverflow.com/questions/44379348/the-use-of-swift-3-objc-inference-in-swift-4-mode-is-deprecated
Usage #
First and foremost you need an API key from OpenWeatherMap, which can be acquired for free here.
WeatherStation weatherStation = new WeatherStation("YOUR_API_KEY");
Query current weather #
For api documentation on the current weather API, see the OpenWeatherMap weather API docs.
Weather weather = await weatherStation.getCurrentWeather();
For a complete list of all the properties of the Weather class, check the documentation
Get current temperature
The Temperature class holds a temperature and can output the temperature in Celsius, Fahrenheit, and Kelvin:
double celsius = weather.temperature.celsius;
double fahrenheit = weather.temperature.celsius;
double kelvin = weather.temperature.kelvin;
Query 5 day forecast #
For API documentation on the forecast API, see the OpenWeatherMap forecast API docs.
List<Weather> forecasts = await weatherStation.getFiveDayForecast();