sunshinejr / Demo

Online/offline demo app.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Demo

This one is a demo project for handling online/offline states of application.
Current status is still WIP (Work In Progress).

Launching

Environment: Xcode 9 beta 6, Swift 4.0 for the app and Swift 3.2 for libraries.
To handle libraries I've used CocoaPods. Process:

  1. Clone the repo.
  2. Install dependencies (pod install) & open Demo.xcworkspace.
  3. Have fun!

Also iOS 10 was chosen as a base iOS deployment target just because of Core Data updates (more below).

Technology Stack

  • Moya 8 for networking
  • Core Data for persistence (using container/multiple contexts instead of parent/child)
  • RxSwift/RxCocoa 3.6 for Reactive Programming
  • Quick 7 / Nimble 1.1 for BDD-ish testing (with given/when/then aliases)
  • RxTest 3.6 for stream/events testing

TODO:

  • Simplify NetworkModel -> Model -> CDModel conversion
  • Use Sourcery for some parts of the app (like Equatable etc.)
  • Relationships to entities: Post/Comments/Author
  • Move authors/comments to its own data controllers?
  • Better loading stage for details (loader for only part of the screen?)
  • Better error messages
  • Think about reloading the whole post maybe while in it?

About

Online/offline demo app.


Languages

Language:Swift 97.9%Language:Ruby 2.1%