GithubHelp home page GithubHelp logo

joshdhenry / rainorshine Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 1.0 20.16 MB

Vista Weather - An iOS app built with Swift that shows the weather forecast and crowd-sourced pictures of a specified place.

Home Page: http://www.VistaWeatherApp.com

License: GNU General Public License v3.0

Swift 99.78% Ruby 0.22%

rainorshine's Introduction

Vista Weather v1.02

aka Project RainOrShine

Vista Weather on the App Store

VistaWeatherApp.com

Synopsis

Vista Weather is a Swift iPhone/iPad app, written in XCode entirely by myself.

Vista Weather is a beautiful and super-accurate weather app for iPhone and iPad. Check the local weather forecast or select any city in the world using the Forecast.io API. Get the five-day forecast to plan your week.

In addition to weather conditions, Vista Weather also beautifully displays photos crowd-sourced from your location using the Google Places API. Utilize the amazing Night Stand Mode and turn your device into a digital picture to turn Vista Weather into a gorgeous bed-side slide-show picture frame with up-to-date weather.

Main languages and technologies used: Swift, Core Location, RESTful web services, Google Places API, Forecast.io API, MVVM design pattern, In-App Purchasing, UIKit, Cocoa Pods, Xcode, Photoshop

Installation

This project uses the following Cocoapods:

  • GooglePlaces - Used to load place names and place photos.
  • SwiftyJSON - Used to parse JSONs returned from web API's.
  • ForecastIO - Used to retrieve weather data.
  • Firebase/Core - For analytics. Integrated with Google AdMob.
  • Firebase/AdMob - For analytics. Integrated with Google AdMob.

To run this on your own machine, download the project, then install the Cocoapods from the command line using pod install. The files GoogleService-Info.plist (used for Ads) and APIKeys (keys for all APIs) are not included in this Git. You will need to generate your own. See below for more information about the API keys used by Vista Weather.

Important things to know

When running tests in the simulator, it is crucial that you set the simulator location to Apple by going to Debug -> Location -> Apple. Doing this will ensure some of the location-specific tests will pass.

UserDefaults

These are the names of the UserDefaults used in the app and what they are used for.

  • useDefaultPhotos - Whether to use default photos when no location photos are available.
  • temperatureUnit - Whether to use celcius or fahrenheit.
  • updateWeatherInterval - How often to reload the weather.
  • changePhotoInterval - How often to change display to the next photo in the set.
  • nightStandModeOn - Whether Night Stand Mode is on or off.
  • removeAdsPurchased - Whether the user has purchased the removal of ads.

API Keys

The real API keys are not included in this Git since high usage can cost me money. You will need to generate your own API keys and plug them in.

All APIKeys

  • TestGoogleMobileAdsAdUnitID - used for testing Ads. Not for use in the live app.
  • GoogleMobileAdsApplicationID - the application ID used by Google AdMob.
  • GoogleMobileAdsAdUnitID - the ad unit ID used by the banner in WeatherViewController.
  • DarkSkyAPIKey - used to retrieve forecasts from Dark Sky/Forecast.io.
  • GooglePlacesAPIKeyiOS - used for loading exact addresses and location images and attributions.
  • GooglePlacesAPIKeyWeb - used for extracting the general locale from an exact location.

Author

Josh Henry - Big Smash Software

Based loosely on the Objective-C "SMWheelControl" CocoaPod written by Cesare Rocchi and Simone Civetta found here.

License

GNU General Public License v3.0

rainorshine's People

Contributors

joshdhenry avatar

Stargazers

Kyle Howells avatar clearbrian avatar

Watchers

 avatar

Forkers

productinfo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.