iOS
iOS copied to clipboard
A sample project demonstrating MVVM, RxSwift, Coordinator Pattern, Dependency Injection
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
With
- MVVM
- RxSwift
- Coordinator Pattern
- Dependency Injection with Swinject
- Moya for API call
- Project by feature not by layer
MVVM Tutorials
- MVVM pattern with Swift application
- How not to get desperate with MVVM implementation
- Introduction to MVVM
- Design Patterns by Tutorials: MVVM
- An Introduction to the MVVM Design Pattern
- Fantastic iOS Architecture
- How to use RxSwift with MVVM
- MVVM with RxSwift
- MVVM + RxSwift on iOS
RxSwift
Dependency Injection
- Swinject Tutorial for iOS: Getting Started Raywenderlich
- Dependency Injection with Swinject
- Dependency Injection Strategies in Swift
Unit Test
- Behavior-Driven Testing Tutorial for iOS with Quick & Nimble
- Using Quick and Nimble for testing in iOS
- Test Driven Development (TDD) in Swift with Quick and Nimble
Coordinator Pattern
- How to implement flow coordinator pattern
- Flow coordinator pattern on steroids
- How to implement delegation pattern using MVVM and flow coordinators
- Coordinators Essential tutorial
Moya Tutorials
Project
- Is package by feature approach good?
- Uncle Bob's clean architecture approach - what is recommended package structure?
Tools
- Swiftlint A tool to enforce Swift style and conventions.
- SwiftFormat A code library and command-line formatting tool for reformatting Swift code.
- Xiblint A tool for linting storyboard and xib files
- Sonar Qube Continuous Code Quality
- Periphery Eliminate Unused Swift Code.
- XcodeGen A Swift command line tool for generating your Xcode project
- JSONExport JSONExport is an application for MacOS to generate class from JSON.
- Synx A command-line tool that reorganizes your Xcode project folder to match your Xcode groups
- Postman Faster, easier API development
- Insomnia Finally, a REST client you'll love, also works with GraphQL
- danger Formalize your Pull Request etiquette.
- Fastlane Automate building and releasing your iOS and Android app
Installation
This project requires Cocoapods to start.
Install the dependencies .
$ 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
License
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