swi

SwiftOpenWeatherMapAPI

Swift Open Weather Map API is a wrapper around OpenWeatherAPI

Showing:

Popularity

Downloads/wk

0

GitHub Stars

37

Maintenance

Last Commit

6yrs ago

Contributors

2

Package

Dependencies

2

License

MIT

Categories

Readme

Swift Open Weather Map API

Swift Open Weather Map API is a wrapper around OpenWeatherAPI

Platform CocoaPods Compatible Carthage compatible

Requirements

  • iOS 8.0+ / Mac OS X 10.9+
  • Xcode 7

Installation

CocoaPods

You can use CocoaPods to install SwiftOpenWeatherMapAPI adding it to your Podfile:

pod 'SwiftOpenWeatherMapAPI'

Then, run the following command:

$ pod install

Carthage

Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

To integrate Alamofire into your Xcode project using Carthage, specify it in your Cartfile:

github "filippotosetto/SwiftOpenWeatherMapAPI"

Run carthage update to build the framework and drag the built Alamofire.framework, SwiftyJSON.framework and SwiftOpenWeatherMapAPI.framework into your Xcode project.

Initialization

Include the header:

import SwiftOpenWeatherMapAPI

Setup the api:

// Setup weather api
let weatherAPI = WAPIManager(apiKey: "YOUR_API_KEY")

// Setup weather api with temperature format
let weatherAPI = WAPIManager(apiKey: "YOUR_API_KEY", temperatureFormat: .Celsius)

// Setup weather api with temperature format and language
let weatherAPI = WAPIManager(apiKey: "YOUR_API_KEY", temperatureFormat: .Celsius, lang: .English)

Getting data

The api is at this time just simple wrapper for the http-api.

weatherAPI.currentWeatherByCityNameAsJson("London") { (result) -> Void in
    //Do something with the data
}

The result is a WeatherResult emum

public enum WeatherResult {
    case Success(JSON)
    case Error(String)
}

In case of success the associated object is of type JSOM coming from mapping the api data using SwiftyJSON.

In case of error the associated type is a String describing the failure.

Usage

The following methods are available at this time:

Current Weather

Current weather by city name:

public func currentWeatherByCityNameAsJson(cityName: String, data: (WeatherResult) -> Void)

Current weather by coordinate:

public func currentWeatherByCoordinatesAsJson(coordinates: CLLocationCoordinate2D, data: (WeatherResult) -> Void)

Forecasts (3 hour intervals)

forecast by city name:

public func forecastWeatherByCityNameAsJson(cityName: String, data: (WeatherResult) -> Void)

forecast by coordinate:

public func forecastWeatherByCoordinatesAsJson(coordinates: CLLocationCoordinate2D, data: (WeatherResult) -> Void)

Daily Forecasts

daily forecast by city name:

public func dailyForecastWeatherByCityNameAsJson(cityName: String, data: (WeatherResult) -> Void)

daily forecast by coordinates:

public func dailyForecastWeatherByCoordinatesAsJson(coordinates: CLLocationCoordinate2D, data: (WeatherResult) -> Void)

Historic Data

historic data by city name:

public func historicDataByCityNameAsJson(cityName: String, start: NSDate, end: NSDate?, data: (WeatherResult) -> Void)

historic data by coordinates:

public func historicDataByCoordinatesAsJson(coordinates: CLLocationCoordinate2D, start: NSDate, end: NSDate?, data: (WeatherResult) -> Void)

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100