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:
- Clone the repo.
- Install dependencies (
pod install
) & openDemo.xcworkspace
. - 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?