Swift Open Weather Map API is a wrapper around OpenWeatherAPI
- iOS 8.0+ / Mac OS X 10.9+
- Xcode 7
You can use CocoaPods to install SwiftOpenWeatherMapAPI adding it to your Podfile:
pod 'SwiftOpenWeatherMapAPI'Then, run the following command:
$ pod installCarthage 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 carthageTo 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 SwiftOpenWeatherMapAPISetup 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)