An iOS template project using SwiftUI, Combine and MVVM-C software architecture
A template project that uses SwiftUI for UI, Combine for event handling, MVVM-C for software architecture.
I have done some small projects using SwiftUI. It is really cool, simple and fast, but also have some thing need to be improved, that surely will be improved by Apple in the future. After that, I have been improving the project structure little by little, restructure it with the MVVM-C architecture, what I have used in most UIKit projects before. Today, I am publishing a simple project, that conclude what I have learned, used in my SwiftUI projects.
If you are using UIKit, this is UIKit version: https://github.com/huynguyencong/UIKit-MVVM-C
The project uses the GitHub API to load a repo list of a user, show repo details when users tap on a repo. You can also tap on the top right icon to see user’s profile. In this project, it is showing my repos. You can change it in the username
static constant in ContentView
view.
The project uses MVVM-C (aka Model - View - ViewModel - Coordinator). Why is there Coordinator here? The Coordinator is an additional part for the MVVM, that help to separate navigation handling code to a different place, instead of putting it in the View (or View Controller in UIKit). It makes the view (or view controller in UIKit) more reusable, smaller. In my SwiftUI projects, Coordinator is a View, but only for handling navigation event purpose.
Copyright huynguyencong, Licensed under the MIT license.