https://github.com/igorkulman/iossampleapp
Sample iOS app demonstrating Coordinators, Dependency Injection, MVVM, Binding
https://github.com/igorkulman/iossampleapp
binding carthage coordinator-pattern coordinators dependency-injection ios mvvm mvvm-architecture mvvm-c mvvm-coordinator rxswift swift travis
Last synced: 8 days ago
JSON representation
Sample iOS app demonstrating Coordinators, Dependency Injection, MVVM, Binding
- Host: GitHub
- URL: https://github.com/igorkulman/iossampleapp
- Owner: igorkulman
- License: mit
- Created: 2017-10-03T08:26:16.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2025-04-12T13:25:27.000Z (10 days ago)
- Last Synced: 2025-04-14T04:08:49.983Z (8 days ago)
- Topics: binding, carthage, coordinator-pattern, coordinators, dependency-injection, ios, mvvm, mvvm-architecture, mvvm-c, mvvm-coordinator, rxswift, swift, travis
- Language: Swift
- Homepage:
- Size: 73.1 MB
- Stars: 897
- Watchers: 18
- Forks: 92
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Support: support/bootstrap.sh
Awesome Lists containing this project
README
# iOS Sample App
Sample iOS app written the way I write iOS apps because I cannot share the app I currently work on.
**SwiftUI**: I created a SwiftUI version of this sample app, using a bit defferent concepts: https://github.com/igorkulman/SwiftUISampleApp
## Shown concepts
### Architecture concepts
* [Coordinators](https://blog.kulman.sk/architecting-ios-apps-coordinators/)
* Dependency Injection
* MVVM
* [Data Binding](https://blog.kulman.sk/using-data-binding-in-ios/)
* Dependencies management### Other concepts
* Localization to 2 languages with String catalogs
* Continuous integration with Github Actions
* Unit testing, including testing view controllers for leaks
* Creating a view controller in code with dependency injection
* Using static UITableView cells in a typed way with enums
* Creating simple cells with UIListContentConfiguration
* Automated AppStore screenshots taking in multiple languages
* Adding custom reactive properties
* Basic Dark mode support
* Custom operator for simple UI code
* Structured logging
* Xcode build plugins
* Xcode previews for UIKit## Getting started
### Prerequisites
* Xcode 16
* [Fastlane](https://fastlane.tools/) (optional)## Built with
- [RxSwift](https://github.com/ReactiveX/RxSwift) - Reactive Programming in Swift
- [RxSwiftExt](https://github.com/RxSwiftCommunity/RxSwiftExt) - A collection of Rx operators & tools not found in the core RxSwift distribution
- [Swinject](https://github.com/Swinject/Swinject) - Dependency injection framework for Swift
- [Reusable](https://github.com/AliSoftware/Reusable) - A Swift mixin for reusing views easily and in a type-safe way
- [Nuke](https://github.com/kean/Nuke) - A powerful image loading and caching system
- [FeedKit](https://github.com/nmdias/FeedKit) - An RSS, Atom and JSON Feed parser written in Swift
- [NotificationBanner](https://github.com/Daltron/NotificationBanner) - The easiest way to display highly customizable in app notification banners in iOS
- [SwifLint](https://github.com/realm/SwiftLint) - A tool to enforce Swift style and conventions## Author
Igor Kulman - [email protected]
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details