{"id":21236043,"url":"https://github.com/simpleboilerplates/ios","last_synced_at":"2025-06-19T23:33:37.825Z","repository":{"id":41486999,"uuid":"169271382","full_name":"SimpleBoilerplates/iOS","owner":"SimpleBoilerplates","description":"A sample project demonstrating MVVM, RxSwift, Coordinator Pattern, Dependency Injection","archived":false,"fork":false,"pushed_at":"2021-01-09T03:39:39.000Z","size":2308,"stargazers_count":90,"open_issues_count":0,"forks_count":22,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-05T15:51:13.156Z","etag":null,"topics":["coordinator-pattern","dependency-injection","ios","moya","mvvm","rxswift","swift","swinject"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SimpleBoilerplates.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-02-05T16:18:50.000Z","updated_at":"2025-03-28T13:42:42.000Z","dependencies_parsed_at":"2022-09-09T14:40:37.392Z","dependency_job_id":null,"html_url":"https://github.com/SimpleBoilerplates/iOS","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/SimpleBoilerplates/iOS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimpleBoilerplates%2FiOS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimpleBoilerplates%2FiOS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimpleBoilerplates%2FiOS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimpleBoilerplates%2FiOS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SimpleBoilerplates","download_url":"https://codeload.github.com/SimpleBoilerplates/iOS/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SimpleBoilerplates%2FiOS/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260851012,"owners_count":23072547,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coordinator-pattern","dependency-injection","ios","moya","mvvm","rxswift","swift","swinject"],"created_at":"2024-11-21T00:06:01.005Z","updated_at":"2025-06-19T23:33:32.811Z","avatar_url":"https://github.com/SimpleBoilerplates.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Boilerplates\n\nThis is a very simple Boilerplate application, this has following features.\n\n  - User can Sign In and Up\n  - After signing in he can see a list of items\n  \n  * I didn't add many functionality and didn't polish UI intentionally, tried to keep it barebone as much as possible \n  \n  ### Same implementation in other platforms\n   - [Android](https://github.com/simpleboilerplates/BooksDemoAndroid) \n   - [Flutter](https://github.com/SimpleBoilerplates/Flutter) \n   - [React Native](https://github.com/SimpleBoilerplates/React-Native) \n   - [NodeJS backend](https://github.com/simpleboilerplates/BooksDemoNode) \n\n \n# With\n\n  - MVVM\n  - [RxSwift](https://github.com/ReactiveX/RxSwift)\n  - [Coordinator Pattern](https://www.raywenderlich.com/158-coordinator-tutorial-for-ios-getting-started)\n  - Dependency Injection with [Swinject](https://github.com/Swinject/Swinject)\n  - [Moya](https://github.com/Moya/Moya) for API call\n  - Project by feature not by layer\n\n\n### MVVM Tutorials\n  * [MVVM pattern with Swift application](http://swiftyjimmy.com/mvvm-with-swift-application-part1/)\n  * [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)\n  * [Introduction to MVVM](https://www.appcoda.com/mvvm-vs-mvc/)\n  * [Design Patterns by Tutorials: MVVM](https://www.raywenderlich.com/34-design-patterns-by-tutorials-mvvm)\n  * [ An Introduction to the MVVM Design Pattern](https://www.toptal.com/ios/swift-tutorial-introduction-to-mvvm)\n  * [Fantastic iOS Architecture](https://github.com/onmyway133/fantastic-ios-architecture)\n  * [How to use RxSwift with MVVM](http://swiftyjimmy.com/category/how-to-use-rxswift/)\n  * [MVVM with RxSwift](https://academy.realm.io/posts/slug-max-alexander-mvvm-rxswift/)\n  * [MVVM + RxSwift on iOS](https://hackernoon.com/mvvm-rxswift-on-ios-part-1-69608b7ed5cd)\n\n### RxSwift\n  * [Getting Started With RxSwift and RxCocoa](https://www.raywenderlich.com/1228891-getting-started-with-rxswift-and-rxcocoa)\n  * [Learn \u0026 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)\n\n### Dependency Injection\n* [Swinject Tutorial for iOS: Getting Started Raywenderlich](https://www.raywenderlich.com/17-swinject-tutorial-for-ios-getting-started)\n* [Dependency Injection with Swinject](https://itnext.io/dependency-injection-with-swinject-73f3144b20f0)\n* [Dependency Injection Strategies in Swift](https://quickbirdstudios.com/blog/swift-dependency-injection-service-locators/)\n\n### Unit Test\n* [Behavior-Driven Testing Tutorial for iOS with Quick \u0026 Nimble](https://www.raywenderlich.com/135-behavior-driven-testing-tutorial-for-ios-with-quick-nimble)\n* [Using Quick and Nimble for testing in iOS](https://blog.pusher.com/quick-nimble-testing-ios/)\n* [Test Driven Development (TDD) in Swift with Quick and Nimble](https://www.appcoda.com/tdd-quick-nimble/)\n\n\n### Coordinator Pattern\n  * [How to implement flow coordinator pattern](https://medium.com/@pavlepesic/flow-coordination-pattern-5eb60cd220d5)\n  * [Flow coordinator pattern on steroids](https://medium.com/flawless-app-stories/flow-coordinator-pattern-on-steroids-a52021e31bfe)\n  * [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)\n  * [Coordinators Essential tutorial](https://medium.com/blacklane-engineering/coordinators-essential-tutorial-part-i-376c836e9ba7)\n\n### Moya Tutorials\n\n* [Moya Tutorial for iOS](https://www.raywenderlich.com/5121-moya-tutorial-for-ios-getting-started)\n* [Getting Started with Moya](https://medium.com/flawless-app-stories/getting-started-with-moya-f559c406e990)\n\n### Project \n\n* [Is package by feature approach good?](https://stackoverflow.com/questions/11733267/is-package-by-feature-approach-good)\n* [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)\n\n### Tools\n* [Swiftlint](https://github.com/realm/SwiftLint) A tool to enforce Swift style and conventions. \n* [SwiftFormat](https://github.com/nicklockwood/SwiftFormat) A code library and command-line formatting tool for reformatting Swift code.\n* [Xiblint](https://github.com/lyft/xiblint) A tool for linting storyboard and xib files\n* [Sonar Qube](https://www.sonarqube.org/) Continuous Code Quality\n* [Periphery](https://github.com/peripheryapp/periphery) Eliminate Unused Swift Code.\n* [XcodeGen](https://github.com/yonaskolb/XcodeGen) A Swift command line tool for generating your Xcode project\n* [JSONExport](https://github.com/Ahmed-Ali/JSONExport) JSONExport is an application for MacOS to generate class from JSON.\n* [Synx](https://github.com/venmo/synx) A command-line tool that reorganizes your Xcode project folder to match your Xcode groups\n* [Postman](https://www.getpostman.com) Faster, easier API development\n* [Insomnia](https://insomnia.rest/) Finally, a REST client you'll love, also works with GraphQL\n* [danger](https://github.com/danger/danger) Formalize your Pull Request etiquette.\n* [Fastlane](https://github.com/fastlane/fastlane) Automate building and releasing your iOS and Android app\n\n### Installation\n\nThis project requires [Cocoapods](https://cocoapods.org//) to start.\n\nInstall the dependencies .\n\n```sh\n$ cd iOS\n$ pod install\n```\n\n\n### TODO\n- Updating it on daily basis as much as possible, work in progess[WIP].\n\n### Found this project useful :heart:\n* Support by clicking the :star: button on the upper right of this page. :v:\n\n### Contact - Let's become friend\n- [LinkedIn](https://www.linkedin.com/in/sadmansamee/)\n- [Github](https://github.com/Sadmansamee)\n- [Dev.To](https://dev.to/sadmansamee)\n- [Medium](https://medium.com/@sadmansamee)\n- [Facebook](https://www.facebook.com/sameesadman)\n- [Twitter](https://twitter.com/SameeSadman)\n\n## License\n[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](https://creativecommons.org/publicdomain/zero/1.0/)\n\n\n## Contributing\n\nYour contributions are always welcome! Just follow the following format: `[reference name](link) - Description.` If you like it , give a star to this project\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimpleboilerplates%2Fios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimpleboilerplates%2Fios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimpleboilerplates%2Fios/lists"}