Swift Open Weather Map API is a wrapper around OpenWeatherAPI
You can use CocoaPods to install SwiftOpenWeatherMapAPI
adding it to your Podfile:
pod 'SwiftOpenWeatherMapAPI'
Then, run the following command:
$ pod install
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.
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)
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.
The following methods are available at this time:
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)
forecast by city name:
public func forecastWeatherByCityNameAsJson(cityName: String, data: (WeatherResult) -> Void)
forecast by coordinate:
public func forecastWeatherByCoordinatesAsJson(coordinates: CLLocationCoordinate2D, data: (WeatherResult) -> Void)
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 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)