/IRShowcase

Showcase with architecture and coding style

Primary LanguageSwift

Showcase

Build Status

Showcase of a native app fetching random posts list and the full post details (with comments) after clicking on a specific post. The feed data is being grabbed from here.

  • Persists the posts, poster details and comments for availability when using the app without network
  • ReactiveSwift, MVVM, coordinators
  • State structure inspired by Redux Three Principles concept
  • AsyncDisplayKit for performance
  • Unit tests and snapshot tests

Uses

  • Swift
  • CoreData
  • AsyncDisplayKit/Texture
  • ReactiveSwift
  • Nimble
  • Quick
  • SwiftyMocky
  • ios-snapshot-test-case
  • SwiftLint

Getting started

If you're not using swift5, switch to the swift4.2 branch (or tag 1.0.1)

Install Carthage and run:

carthage bootstrap --platform ios --use-ssh --new-resolver --cache-builds

Install Swiftlint:

brew install swiftlint

Then you can open the IRShowcase.xcodeproj project.

To run unit tests: SwiftyMocky:

Run the script get_sourcery.sh on the root of the project.

chmod +x get_sourcery.sh
./get_sourcery.sh