Sample iOS app written the way I write iOS apps because I cannot share the app I currently work on.
- Coordinators
- Dependency Injection
- MVVM
- Data Binding
- Dependencies management
- Localization to 2 languages with safer string usage and checking for missing translations
- Continuous integration with Github Actions and Danger
- 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
- Basic Dark mode support
To get started with the project run
sh support/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 --no-use-binaries --cache-builds
in the Sources
directory to build all the Carthage dependencies.
This need to be done just once for the initial setup.
- 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
- 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
- SpecLeaks - Unit Tests Memory Leaks in Swift. Write readable tests for mem leaks easily with these Quick and Nimble extensions
- Quick - The Swift (and Objective-C) testing framework
- Nimble - A Matcher Framework for Swift and Objective-C
Igor Kulman - igor@kulman.sk
This project is licensed under the MIT License - see the LICENSE file for details