davemess / Seater

A sample app demonstrating usage of the SeatGeek api.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Swift Carthage compatible License: MIT Platform Version

Seater

A sample app demonstrating usage of the SeatGeek api.

Requirements

  • Xcode 10.1 (beta 2)
  • iOS 12.1
  • Swift 4.2 
  • Carthage (current version 0.31.1)

Links


Features

  • Event Search against SeatGeek API

  • Mark Events as Favorites

  • Persistent Favorites


Usage

Setup

  1. Clone the repo.
git clone git@github.com:davemess/Seater.git
  1. REQUIRED: Update Carthage dependencies. There is one required, third-party dependency for image fetching and caching.
carthage update --platform iOS
  1. REQUIRED: This app requires a SeatGeek client ID which is supplied by a Keys.swift file. For security purposes, that file is not included in the public repository. Email the repo owner for that file. The project will not compile without the Keys file.
  2. Open using Xcode. Build and run the Development scheme. There are multiple schemes (Development, Staging, etc.) included with the project.

Branching

Gitflow is the guiding branch strategy. In addition to feature and bug branches, there are long-lived branches:

  • develop bleeding-edge development and merge-branch for feature work
  • master App Store distribution; releases should be marked with tags

Configurations

User-defined configuration settings can be found in the xcconfig files in Configurations directory.


Architecture

This app is fully modularized. The following describes each component:
  • Seater: The Xcode project hosting the main app.

    • Seater: The main app.
    • SeaterKit: A module which defines functionality the app adopts. This can be reused in application extensions. This also defines an abstract EventService for supplying Event data which can be provided by any vendor.
    • SeatGeekSDK: A concrete implementation of an EventService which hits the SeatGeek API. Built on top of RemoteServices framework.
  • SeaterAppKit: A collection of useful utilities, modularized to improve performance and code reuse.

    • AppAnalytics: Defines generic analytics recording.
    • AppConfiguration: Used to identify the specific build configuration.
    • AppTheme: Defines app theming utilities.
    • AppUI: Various UI utilities.
    • Cache: Defines memory and disk caching utilities.
    • RemoteServices: A system for defining and performing remote service interaction.
    • Results: Wraps response types.
  • External Dependencies:

    • Kingfisher: A Swift library for downloading and caching.

License

Seater is available under the MIT license. See the LICENSE file for more info.

Acknowledgements

Powered by


About

A sample app demonstrating usage of the SeatGeek api.

License:MIT License


Languages

Language:Swift 96.0%Language:Objective-C 4.0%