lupuandrei / OpenWeatherMapKit

🌦 OpenWeatherMapKit is a small and simple framework written in Swift that gives you access to all features of the OpenWeatherMap service's APIs right in your iOS / macOS / watchOS/ tvOS application. β˜”οΈ

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status codecov Badge w/ Version || Swift Badge w/ Platform

OpenWeatherMapKit

OpenWeatherMapKit is a small and simple framework written in Swift that gives you access to all features of the OpenWeatherMap service's APIs right in your iOS / macOS / watchOS/ tvOS application.

How to install:

πŸ₯₯ Cocoapods

Just add following line to your Podfile:

pod 'OpenWeatherMapKit'

and run following command in your Terminal from project's root folder:

pod update

How to use:

Prerequisites

To normal working OpenWeatherMapKit must be initialized with your API token.

You can use following method to initialize OpenWeatherMapKit. Just replace [YOUR API TOKEN] by your own API token which can be retrieved from https://home.openweathermap.org/api_keys:

 OpenWeatherMapKit.initialize(withAppId: "[YOUR API TOKEN]")

Usage

Use OpenWeatherMapKit class to retrieve weather data. It is a singleton and access to it's instance can be done through instance variable.

πŸŒ‡ Get weather by City

You can retrieve weather data for specific city by it's name:

OpenWeatherMapKit.instance.currentWeather(forCity: "Samara") { (forecast, error) in
    ...
}

or event by city name and country code:

OpenWeatherMapKit.instance.currentWeather(forCity: "Samara", withCountryCode: "ru") { (forecast, error) in
    ...
}
🌍 Get weather by geo coordinates

You can retrieve weather data for specific geo location by it's coordinates:

OpenWeatherMapKit.instance.currentWeather(forCoordiante: (latitude: 53.2610313, longitude: 50.0579958)) { (forecast, error) in
    ...
}
πŸ“† Get weather forecast for next 5 days

You can retrieve weather data for next five days for specific city by it's name and country code:

OpenWeatherMapKit.instance.weatherForecastForFiveDays(forCity: "Samara", withCountryCode: "ru") { (forecast, error) in
...
}

or for specific geo location by it's coordinates:

OpenWeatherMapKit.instance.weatherForecastForFiveDays(forCoordiante: (latitude: 53.2610313, longitude: 50.0579958)) { (forecast, error) in
...
}
🌀 WeatherItem

All operations for getting current weather data return special object of WeatherItem type. WeatherItem is a simple struct that contains temperature data on the board. Here are fields you can access on it:

/// Weather item's temperature values in Kelvin
public let kelvin: (currentTemp: Double, maxTemp: Double, minTemp: Double)
/// Weather item's temperature values in Celsius
public let celsius: (currentTemp: Double, maxTemp: Double, minTemp: Double)
/// Weather item's temperature values in Fahrenheit
public let fahrenheit: (currentTemp: Double, maxTemp: Double, minTemp: Double)

For example, if you want to get information on current weather in celsius you achieve that using following statement:

weatherItem.celsius.currentTemp

WeatherItem can be accessed from instances of ForecastItem. Here is example:

forecast.main.celsius.currentTemp

πŸ›£ Roadmap

Please find project's roadmap below:

Version ETA Feature
βœ… v0.1   January 2018 Current weather forecast by city & geo coordinates + support of different units (Celsius, Kelvin, Fahrenheit)
βœ… v0.2 April 2018 Weather forecast for 5 days / 3 hour by city & geo coordinates.
v0.3 ??? 16 day daily forecast by city & geo coordinates.

⚠️ Support of other platforms (like watchOS, macOS & tvOS) will be introduced later

About

🌦 OpenWeatherMapKit is a small and simple framework written in Swift that gives you access to all features of the OpenWeatherMap service's APIs right in your iOS / macOS / watchOS/ tvOS application. β˜”οΈ

License:MIT License


Languages

Language:Swift 77.5%Language:Ruby 17.8%Language:Objective-C 4.7%