Skip to content

Latest commit

 

History

History
81 lines (58 loc) · 3.21 KB

ReadMe.md

File metadata and controls

81 lines (58 loc) · 3.21 KB

Swift-Weather

An iOS weather app built in Swift.

Introduction

Swift-Weather is an iOS weather app powered by Dark Sky. The app provides current conditions, minute-by-minute rainfall predictions for the next hour and hour-by-hour forecasts for the next week. Originally written in Swift 2, the project has been updated for Swift 4.

Screenshots


Weather-Screenshots-1

Weather-Screenshots-2

Features

  • Dark Sky API integration.
  • Google Places Autocomplete API integration.
  • JSON Parsing.
  • Custom UI Drawing and Animations.
  • Today Extension (Notification Center Widget).
  • Embedded Framework usage for code shared between app and widget.
  • Core Data.
  • Core Location.
  • Unit Tests.
  • FontAwesome and Weather Icons usage.

Requirements

  • iOS 10+
  • Xcode 9
  • Swift 4

Project Setup

  1. Clone this repository.
$ git clone https://github.com/jsh8w/Swift-Weather.git
  1. The project contains a podfile listing the Pods used in the app. Simply navigate to the project directory and run the following from Terminal:
$ pod install
  1. Open Weather.xcworkspace
  2. Head to Dark Sky, sign-up and get an API key.
  3. Head to the Google Places API, sign-up and get an API key.
  4. Open Constants.swift under WeatherKit replace the strings with your API keys.
public static let darkSkyAPIKey = "ENTER_YOUR_DARK_SKY_KEY"
public static let googleAPIKey = "ENTER_YOUR_GOOGLE_PLACES_KEY"
  1. Build the project and either run in a simulator or device.

Developer Notes

This project is an old app that used to be on the App Store. I have decided to make it open-source. The majority of custom views are drawn out and manipulated programmatically - this has made certain logic long and complex. In hindsight, it would have been better to have further utilised storyboards and xibs to handle this custom view drawing. This is a potential improvement to the project.

Have any suggestions for improvements to the app? Please create an issue or pull request.

License

This project is licensed under the MIT License, see the License.md for more details.

Acknowledgements