iMark21 / iOSSampleApp

Sample iOS app demonstrating Coordinators, Dependency Injection, MVVM, Binding

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

iOS Sample App

Travis CI codecov License: MIT Platforms Swift Version Twitter

Sample iOS app written the way I write iOS apps because I cannot share the app I currently work on.

Shown concepts

Architecture concepts

Other concepts

  • Localization to 2 languages with safer string usage and checking for missing translations
  • Continuous integration
  • Unit testing, including testing view controllers for leaks
  • Using (multiple) Storyboards just as glorified XIBs
  • Creating a view controller in code when Storyboard cannot be used
  • Using static UITableView cells in a typed way with enums
  • Image literals
  • Automated AppStore screenshots taking in multiple languages
  • Adding custom reactive properties

Getting started

Prerequisites

Bootstraping the project

To get started with the project run

sh ./bootstrap.sh` 

to install Carthage, SwifLint, SwiftGen, Fastlane and build all the Carthage dependencies.

If you already have Carthage installed and do not want or need the other tools, just run carthage bootstrap --platform iOS to build all the Carthage dependencies.

This need to be done just once for the initial setup.

Built With

  • RxSwift - Reactive Programming in Swift
  • RxSwiftExt - A collection of Rx operators & tools not found in the core RxSwift distribution
  • Swinject - Dependency injection framework for Swift
  • SwinjectStoryboard - Swinject extension for automatic dependency injection via Storyboard
  • CleanroomLogger - CleanroomLogger provides an extensible Swift-based logging API that is simple, lightweight and performant
  • Reusable - A Swift mixin for reusing views easily and in a type-safe way
  • Nuke - A powerful image loading and caching system
  • RxNuke - RxSwift extensions for Nuke
  • FeedKit - An RSS, Atom and JSON Feed parser written in Swift
  • CRToast - A modern iOS toast view that can fit your notification needs
  • Defaults - Swifty and modern UserDefaults
  • SimulatorStatusMagic - Clean up your status bar for taking screenshots on the iOS simulator
  • SpecLeaks - Unit Tests Memory Leaks in Swift. Write readable tests for mem leaks easily with these Quick and Nimble extensions

Author

Igor Kulman - igor@kulman.sk

License

This project is licensed under the MIT License - see the LICENSE file for details

About

Sample iOS app demonstrating Coordinators, Dependency Injection, MVVM, Binding

License:MIT License


Languages

Language:Swift 88.2%Language:HTML 6.9%Language:Ruby 4.6%Language:Shell 0.3%