Swiftpack.co - workingDog/OWOneCall as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by workingDog.
workingDog/OWOneCall 1.3.2
SwiftUI OpenWeather One Call API library
⭐️ 3
🕓 11 weeks ago
iOS macOS macCatalyst
.package(url: "https://github.com/workingDog/OWOneCall.git", from: "1.3.2")

SwiftUI OpenWeather One Call API library

One Call API 2.5 and One Call API 3.0

"Make just one API call and get all your essential weather data for a specific location with our new OpenWeather One Call API."

OWOneCall is a small Swift library to connect to the One Call API 2.5 and One Call API 3.0 and retrieve the chosen weather data. Made easy to use with SwiftUI.

Provides for current, forecast and historical weather data through a single function call.

Usage

Weather data from OpenWeather One Call API is accessed through the use of a OWProvider, with a single function getWeather, eg:

let weatherProvider = OWProvider(apiKey: "your key")  // default One Call API 2.5
@State var weather = OWResponse()
...

// using a binding
weatherProvider.getWeather(lat: 35.661991, lon: 139.762735, weather: $weather, options: OWOptions.current())
...
Text(weather.current?.weatherInfo() ?? "")

// or using the async style, eg with `.task {...}`
if let results = await weatherProvider.getWeather(lat: 35.661991, lon: 139.762735, options: OWOptions.dailyForecast(lang: lang)) {
        weather = results
}

// or using the callback style, eg with `.onAppear {...}`
weatherProvider.getWeather(lat: 35.661991, lon: 139.762735, options: OWOptions.current()) { response in
       if let theWeather = response {
          self.weather = theWeather
       }
}

See the following for example uses:

Options

Options available:

Create an options object such as this, to retrieve the current weather data:

let myOptions = OWOptions(excludeMode: [.daily, .hourly, .minutely], units: .metric, lang: "en")

Additional convenience options to retrieve current and forecast weather data:

  • OWOptions.current(lang: String = "en")
  • OWOptions.dailyForecast(lang: String = "en")
  • OWOptions.hourlyForecast(lang: String = "en")

Additional convenience options to retrieve past historical weather data:

  • OWHistOptions.yesterday(lang: String = "en")
  • OWHistOptions.daysAgo(day: Double, lang: String = "en")

Use the lang options parameter to chose the language of the results, default "en".

Installation

Include the files in the ./Sources/OWOneCall folder into your project or preferably use Swift Package Manager.

Swift Package Manager (SPM)

Create a Package.swift file for your project and add a dependency to:

dependencies: [
  .package(url: "https://github.com/workingDog/OWOneCall.git", from: "1.3.2")
]

Using Xcode

Select your project > Swift Packages > Add Package Dependency...
https://github.com/workingDog/OWOneCall.git

Then in your code:

import OWOneCall

References

Requirement

Requires a valid OpenWeather key, see:

License

MIT

GitHub

link
Stars: 3
Last commit: 6 weeks ago
Advertisement: IndiePitcher.com - Cold Email Software for Startups

Release Notes

Cater for API 3.0
11 weeks ago

Can also use OpenWeather One Call API 3.0, default API 2.5

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics