All Projects → comyar → Jupiter

comyar / Jupiter

Licence: MIT license
🌞 The Swift Weather Framework

Programming Languages

swift
15916 projects
objective c
16641 projects - #2 most used programming language
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Jupiter

MMM-forecast-io
Forecast.io Module for MagicMirror
Stars: ✭ 58 (+314.29%)
Mutual labels:  weather, forecast, darksky
darksky
Forecast.io API wrapper in Go (Golang)
Stars: ✭ 74 (+428.57%)
Mutual labels:  weather, forecast, darksky
Darkskylib
Python wrapper for the Dark Sky API
Stars: ✭ 112 (+700%)
Mutual labels:  weather, forecast
Getme
CLI utility for everyday tasks. With getme you get weather, forecast, currency rate, upload files, IP address, word definitions, text translations, internet speed, do google searches, get inspirational quotes and get Chuck Norris jokes
Stars: ✭ 118 (+742.86%)
Mutual labels:  weather, forecast
epaper-clock-and-more
e-paper clock + weather + AQI + traffic delays - using Waveshare 2.7inch & 4.2inch eink displays running on Raspberry Pi
Stars: ✭ 34 (+142.86%)
Mutual labels:  weather, darksky
DarkSkyKit
DarkSky.net API client written in Swift.
Stars: ✭ 33 (+135.71%)
Mutual labels:  weather, darksky
Dark Sky Api
PHP Library for the Dark Sky API.
Stars: ✭ 70 (+400%)
Mutual labels:  weather, forecast
Good Weather
Open source weather app for Andorid
Stars: ✭ 198 (+1314.29%)
Mutual labels:  weather, forecast
Wego
weather app for the terminal
Stars: ✭ 6,918 (+49314.29%)
Mutual labels:  weather, forecast
Weather
Weather Android App using apixu API https://www.apixu.com
Stars: ✭ 48 (+242.86%)
Mutual labels:  weather, forecast
solar-weather
React Native Weather App w. Realm, Redux, ReasonReact & Forecast.io
Stars: ✭ 13 (-7.14%)
Mutual labels:  weather, forecast
Weacast
Weacast demo application
Stars: ✭ 55 (+292.86%)
Mutual labels:  weather, forecast
Weather
A module for obtaining weather information
Stars: ✭ 54 (+285.71%)
Mutual labels:  weather, forecast
Darksky
Python API wrapper for the DarkSky (async&sync)
Stars: ✭ 81 (+478.57%)
Mutual labels:  weather, forecast
Node Forecastio
A node.js client for Forecast.io API
Stars: ✭ 32 (+128.57%)
Mutual labels:  weather, forecast
Forecastr
A simple, asynchronous Objective-C wrapper for the Forecast.io API
Stars: ✭ 143 (+921.43%)
Mutual labels:  weather, forecast
weatherBot
⛈ A Twitter bot for weather
Stars: ✭ 20 (+42.86%)
Mutual labels:  weather, darksky
Temps
Simple menubar application based on Electron with actual weather information and forecast.
Stars: ✭ 553 (+3850%)
Mutual labels:  weather, forecast
mpxday
mpxday是基于mpx开发的天气预报微信小程序
Stars: ✭ 3 (-78.57%)
Mutual labels:  weather, forecast
temps-lite
A smart, good-looking little app which tries to speak your language the way you are used to.
Stars: ✭ 40 (+185.71%)
Mutual labels:  weather, forecast

Platforms [License](https://raw.githubusercontent.com/Comyar Zaheri/Jupiter/master/LICENSE) CocoaPods compatible

Usage

Supported Weather APIs:

Dark Sky

Forecast Request

A default Request.send function is provided that simply uses the shared URLSession in your app:

import Jupiter

let api = DarkSkyAPI(key: "<API_KEY>")
api.forecast(latitude: 47.6062, longitude: -122.3321).send { result -> Void in
  switch result {
  case .success(let response):
    // The response here is queryable for any key available in the docs except for "flags"
    print(response)
  case .error(let error):
    print(error)
  }
}

However if you'd like to use your own networking stack, you can simply create a DarkSkyForecastRequest and use the generated URL directly:

import Jupiter

let api = DarkSkyAPI(key: "<API_KEY>")
let request = api.forecast(latitude: 47.6062, longitude: -122.3321)

/// Creating without the convenience API also works:
/// let request = DarkSkyForecastRequest(key: "<API_KEY>", latitude: 47.6062, longitude: -122.3321)

/// Configure the request
request.excludes = [.minutely, .hourly]
request.lang = .russian
request.units = .si

/// Get the URL
let url: URL = request.url!

/// Pass URL to networking layer 

/// Get raw data from networking layer
let data: Data = ...

/// Parse data and bind to response object
let response = DarkSkyForecastRequest.toResponse(data: data)

Climacons

Jupiter has first-class support for Climacons, a beautiful set of pictographs designed by Adam Whitcroft. All icon-related fields on response models will be bound to the Climacon enum defined in Jupiter, whose raw values map directly to the Climacons-Font bundled by Christian Naths.

Installation

CocoaPods

CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:

$ gem install cocoapods

CocoaPods 1.1.0+ is required to build Jupiter 0.0.1+.

To integrate Jupiter into your Xcode project using CocoaPods, specify it in your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!

pod 'Jupiter', '~> 0.0.2'

Then, run the following command:

$ pod install

Carthage

Carthage is a decentralized dependency manager that automates the process of adding frameworks to your Cocoa application.

You can install Carthage with Homebrew using the following command:

$ brew update
$ brew install carthage

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

github "comyar/Jupiter" ~> 0.0.2

License

Jupiter is released under the MIT license. See LICENSE for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].