MV Design Pattern in iOS - Build SwiftUI Apps Apple's Way
What you'll learn
- Writing SwiftUI apps using MV pattern
- Learn to build SwiftUI apps based on Apple's recommendations
- Learn how MVVM might be adding unnecessary code to your SwiftUI apps
- Learn to write end-to-end tests for your application
- Apply MV pattern for client/server applications
- Learn to build Core Data apps and @FetchRequest and @Environment property wrappers
Requirements
- Knowledge of SwiftUI framework is required
- Knowledge of Swift language is required
- Understanding of MVVM pattern is recommended
- Xcode
- Mac
Description
MVVM is the default pattern when building SwiftUI applications. I have been personally using the MVVM pattern since the inception of SwiftUI in 2019.
After building hundreds of demos and prototypes, I started to notice issues with using MVVM patterns for SwiftUI applications. These issues resulted in adding needless complexity and constantly fighting the SwiftUI framework.
In this course, I will explain a different pattern for building SwiftUI apps. This pattern is used by Apple to build their SwiftUI applications. The pattern is called the MV pattern, where M stands for Model and V is for View.
Let’s check out the contents of the course:
Understanding MV Pattern
In this section you will learn the thinking behind the MV pattern and how it is different from the MVVM pattern. We will compare SwiftUI with WPF and conclude that in SwiftUI, the View is also the View Model.
Validation
In this section, you will learn how to perform validation using MV pattern. These validation techniques are inspired from the React framework. You will learn how to perform simple validation, inline validation and even validation summary.
Coffee Order - [Project Time]
In this section, you will be building a complete Coffee Ordering application integrated with a JSON API. You will learn how to create an aggregate root model and webservice layer, which allows the app to consume and present data. You will also learn how to write end-to-end tests for your application.
Budget App - [Project Time]
In this section, you will learn how to build a SwiftUI app using MV pattern, which uses Core Data to persist information on the device. You will learn to use property wrappers including @FetchRequest and @Environment, which makes working with Core Data a breeze.
Who is this course for?
Developers who wants to learn Apple’s way of building SwiftUI applications
Developers who wants to stop fighting the SwiftUI framework and start building iOS apps
Developers who wants to start using all the power and flexibility provided by the SwiftUI framework
Developers who wants to write less code to achieve more
This course will serve as an eye opener to many developers and will provide a lot of information on a different and easier way for building SwiftUI applications.
After this course, you will be ready to start building your apps using the MV pattern.
Let’s get started.
Who this course is for:
- Developers who wants to learn how to build SwiftUI apps using MV pattern
- Developers who wants to learn how to Apple constructs their SwiftUI applications
- Developers who wants to stop fighting the SwiftUI framework and start being productive
Instructor
My name is Mohammad Azam and I have been programming in iOS for the last 10+ years. Currently, I am teaching Full Stack Development at DigitalCrafts. Before joining DigitalCrafts I worked as a lead mobile developer for many large companies including Schlumberger, Baker Hughes, AIG and Valic. Currently, I am a senior developer at Blinds Dot Com, a Home Depot company. Before iPhone development I was leading projects in Microsoft ASP technology. I was also awarded the Microsoft MVP award five years in a row due to my contributions in the community.
I have also published several of my personal apps to the App Store including Vegetable Tree which was featured by Apple as the most beautiful gardening app on the App Store. I am a frequent speaker at local and national conferences and have authored many articles for many different development magazines.