This is a SwiftUI project that applies Modular Architect & Clean Architect. For the presentation layer, I'm using MVVM-C.
Supports iOS 16+
The purpose I developing this project is I want it to be used as a reference for large scale production apps. Because of that, I don't spend too much efforts in building UI, so the UI is not fancy 😛
- Presentation layer: SwiftUI + MVVM-C + Modern concurrency
- Clean architecture: Decoupled Presentation, Business Logic, and Data Access layers
- Modular architecture
- Navigation using
NavigationStack
- Dependency Injection using
CompositionRoot
approach,DIContainer
& constructor injection to support testing. - Cover with unit tests, snapshot testing
- Designed for scalability. It can be used as a reference for building large production apps
- Use Swift Macros to remove duplicate codes
For Clean Architecture, theoratically we should have UseCaseInterface
and UseCaseImplementation
. However, at this point I feel like bringing Usecase
as an extra layer is unncessary.
If we feel like need Usecase
layer in future, we will add it.
Please read this great article from @Michael Long. I pretty much agreed with his thoughts.
After clone the project, navigate to the project directory, then run this command:
make
And that's all you need to do to set up the project 🚀
Feel free to contribute for the project if you want. Here is the figma & api reference:
There are some ways you can contribute to the project:
- I've created some tasks under
Issues
tab. There are bugs, features, ... there. If you want to pick a task, just need to comment on the issue. - If you want to work on a new issue, you can go to
Issues
tab, and create a new issue to describe what you want to do.
These are articles I've written about the process building this project:
These are articles that I used as references while developing this project: