Skip to content

A conference/event-style iOS app written in Swift using Google Firestore

License

Notifications You must be signed in to change notification settings

regentcollege/summer-swift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

120 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Regent College Summer App

Experience summer at Regent College

Swift Version License PRs Welcome

Screenshots

Today Courses Events EventsDetail

TodayiPad EventsiPad

Features

  • Course and lecturer details
  • FAQ
  • Events
  • What's happening today
  • Multiple sessions per event/course
  • Add events to calendar
  • Directions
  • Search and filter events
  • Search and filter courses
  • Announcements
  • Share to social media
  • Today extension for lock screen
  • WatchKit
  • Internationalization and localization

Architecture

MVC/MVVM

"Isolate complexity" - Steve McConnell, Code Complete

  • Model: Data, including the means to instantiate from source; in this case it is Firestore NSDictionary.
  • ViewModel: Data formed for specific view purposes. Only show data from the model that the view actually needs. Combine and massage fields with presentation logic.
  • DocumentStore (aka repository): Data CRUD (create, read, update, delete). This service is injected into the ViewControllers, sets them as its delegate, and tells them when it has updates with documentsDidUpdate().
  • DetailViewControllers and TableViewCells: A view with injected ViewModel(s).
  • ViewController: Everything else. Use extensions to separate concerns.

Requirements

  • iOS 10.3+
  • Xcode 9.3

Installation

  1. Clone
  2. run 'pod install'
  3. Get a GoogleServices-Info.plist from the Firestore Setup
  4. Populate Firestore with some courses and lecturers
  5. Customize Settings.swift
  6. Build

Contribute

Check the LICENSE file for more info on contributing to summer-swift.

Meta

Cam Tucker – ctucker@regent-college.edu

Distributed under the MIT license. See LICENSE for more information.

About

A conference/event-style iOS app written in Swift using Google Firestore

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published