https://github.com/simpleboilerplates/ios
A sample project demonstrating MVVM, RxSwift, Coordinator Pattern, Dependency Injection
https://github.com/simpleboilerplates/ios
coordinator-pattern dependency-injection ios moya mvvm rxswift swift swinject
Last synced: 9 months ago
JSON representation
A sample project demonstrating MVVM, RxSwift, Coordinator Pattern, Dependency Injection
- Host: GitHub
- URL: https://github.com/simpleboilerplates/ios
- Owner: SimpleBoilerplates
- Created: 2019-02-05T16:18:50.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2021-01-09T03:39:39.000Z (about 5 years ago)
- Last Synced: 2025-04-05T15:51:13.156Z (12 months ago)
- Topics: coordinator-pattern, dependency-injection, ios, moya, mvvm, rxswift, swift, swinject
- Language: Swift
- Homepage:
- Size: 2.2 MB
- Stars: 90
- Watchers: 3
- Forks: 22
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Boilerplates
This is a very simple Boilerplate application, this has following features.
- User can Sign In and Up
- After signing in he can see a list of items
* I didn't add many functionality and didn't polish UI intentionally, tried to keep it barebone as much as possible
### Same implementation in other platforms
- [Android](https://github.com/simpleboilerplates/BooksDemoAndroid)
- [Flutter](https://github.com/SimpleBoilerplates/Flutter)
- [React Native](https://github.com/SimpleBoilerplates/React-Native)
- [NodeJS backend](https://github.com/simpleboilerplates/BooksDemoNode)
# With
- MVVM
- [RxSwift](https://github.com/ReactiveX/RxSwift)
- [Coordinator Pattern](https://www.raywenderlich.com/158-coordinator-tutorial-for-ios-getting-started)
- Dependency Injection with [Swinject](https://github.com/Swinject/Swinject)
- [Moya](https://github.com/Moya/Moya) for API call
- Project by feature not by layer
### MVVM Tutorials
* [MVVM pattern with Swift application](http://swiftyjimmy.com/mvvm-with-swift-application-part1/)
* [How not to get desperate with MVVM implementation](https://medium.com/flawless-app-stories/how-to-use-a-model-view-viewmodel-architecture-for-ios-46963c67be1b)
* [Introduction to MVVM](https://www.appcoda.com/mvvm-vs-mvc/)
* [Design Patterns by Tutorials: MVVM](https://www.raywenderlich.com/34-design-patterns-by-tutorials-mvvm)
* [ An Introduction to the MVVM Design Pattern](https://www.toptal.com/ios/swift-tutorial-introduction-to-mvvm)
* [Fantastic iOS Architecture](https://github.com/onmyway133/fantastic-ios-architecture)
* [How to use RxSwift with MVVM](http://swiftyjimmy.com/category/how-to-use-rxswift/)
* [MVVM with RxSwift](https://academy.realm.io/posts/slug-max-alexander-mvvm-rxswift/)
* [MVVM + RxSwift on iOS](https://hackernoon.com/mvvm-rxswift-on-ios-part-1-69608b7ed5cd)
### RxSwift
* [Getting Started With RxSwift and RxCocoa](https://www.raywenderlich.com/1228891-getting-started-with-rxswift-and-rxcocoa)
* [Learn & Master ⚔️ the Basics of RxSwift in 10 Minutes](https://medium.com/ios-os-x-development/learn-and-master-%EF%B8%8F-the-basics-of-rxswift-in-10-minutes-818ea6e0a05b)
### Dependency Injection
* [Swinject Tutorial for iOS: Getting Started Raywenderlich](https://www.raywenderlich.com/17-swinject-tutorial-for-ios-getting-started)
* [Dependency Injection with Swinject](https://itnext.io/dependency-injection-with-swinject-73f3144b20f0)
* [Dependency Injection Strategies in Swift](https://quickbirdstudios.com/blog/swift-dependency-injection-service-locators/)
### Unit Test
* [Behavior-Driven Testing Tutorial for iOS with Quick & Nimble](https://www.raywenderlich.com/135-behavior-driven-testing-tutorial-for-ios-with-quick-nimble)
* [Using Quick and Nimble for testing in iOS](https://blog.pusher.com/quick-nimble-testing-ios/)
* [Test Driven Development (TDD) in Swift with Quick and Nimble](https://www.appcoda.com/tdd-quick-nimble/)
### Coordinator Pattern
* [How to implement flow coordinator pattern](https://medium.com/@pavlepesic/flow-coordination-pattern-5eb60cd220d5)
* [Flow coordinator pattern on steroids](https://medium.com/flawless-app-stories/flow-coordinator-pattern-on-steroids-a52021e31bfe)
* [How to implement delegation pattern using MVVM and flow coordinators](https://medium.com/@pavlepesic/how-to-implement-delegation-pattern-using-mvvm-and-flow-coordinators-d1f6c3fcbe6)
* [Coordinators Essential tutorial](https://medium.com/blacklane-engineering/coordinators-essential-tutorial-part-i-376c836e9ba7)
### Moya Tutorials
* [Moya Tutorial for iOS](https://www.raywenderlich.com/5121-moya-tutorial-for-ios-getting-started)
* [Getting Started with Moya](https://medium.com/flawless-app-stories/getting-started-with-moya-f559c406e990)
### Project
* [Is package by feature approach good?](https://stackoverflow.com/questions/11733267/is-package-by-feature-approach-good)
* [Uncle Bob's clean architecture approach - what is recommended package structure?](https://stackoverflow.com/questions/46884449/uncle-bobs-clean-architecture-approach-what-is-recommended-package-structure)
### Tools
* [Swiftlint](https://github.com/realm/SwiftLint) A tool to enforce Swift style and conventions.
* [SwiftFormat](https://github.com/nicklockwood/SwiftFormat) A code library and command-line formatting tool for reformatting Swift code.
* [Xiblint](https://github.com/lyft/xiblint) A tool for linting storyboard and xib files
* [Sonar Qube](https://www.sonarqube.org/) Continuous Code Quality
* [Periphery](https://github.com/peripheryapp/periphery) Eliminate Unused Swift Code.
* [XcodeGen](https://github.com/yonaskolb/XcodeGen) A Swift command line tool for generating your Xcode project
* [JSONExport](https://github.com/Ahmed-Ali/JSONExport) JSONExport is an application for MacOS to generate class from JSON.
* [Synx](https://github.com/venmo/synx) A command-line tool that reorganizes your Xcode project folder to match your Xcode groups
* [Postman](https://www.getpostman.com) Faster, easier API development
* [Insomnia](https://insomnia.rest/) Finally, a REST client you'll love, also works with GraphQL
* [danger](https://github.com/danger/danger) Formalize your Pull Request etiquette.
* [Fastlane](https://github.com/fastlane/fastlane) Automate building and releasing your iOS and Android app
### Installation
This project requires [Cocoapods](https://cocoapods.org//) to start.
Install the dependencies .
```sh
$ cd iOS
$ pod install
```
### TODO
- Updating it on daily basis as much as possible, work in progess[WIP].
### Found this project useful :heart:
* Support by clicking the :star: button on the upper right of this page. :v:
### Contact - Let's become friend
- [LinkedIn](https://www.linkedin.com/in/sadmansamee/)
- [Github](https://github.com/Sadmansamee)
- [Dev.To](https://dev.to/sadmansamee)
- [Medium](https://medium.com/@sadmansamee)
- [Facebook](https://www.facebook.com/sameesadman)
- [Twitter](https://twitter.com/SameeSadman)
## License
[](https://creativecommons.org/publicdomain/zero/1.0/)
## Contributing
Your contributions are always welcome! Just follow the following format: `[reference name](link) - Description.` If you like it , give a star to this project