MVVM Design Pattern in iOS Using SwiftUI (Udemy.com)
Covers consuming JSON, Client-Server MVVM architecture, Screen-View Pattern
Created by: Mohammad Azam
Last updated October 2022
Our take
Based on the ratings of 675 students, a sample of their written reviews and the syllabus, as the course stood in October 2022. No course pays to be reviewed.
This is a seven hour course from Mohammad Azam that teaches MVVM in SwiftUI by building things. It opens with a short theory section and a counter app, then moves to a movie search app using the OMDB API, a bank app with a NodeJS and Express backend hosted on Glitch, and a weather app. The syllabus shows 73 lectures across 14 sections, with no quizzes or coding exercises. It is labeled All Levels, but the requirements recommend Swift and SwiftUI knowledge first.
Reviewers like the clear explanations and the practical, real-world examples, and one says Azam knows the subject and explains most things well. The complaints are consistent. The course was last updated in October 2022, and recent reviewers say the SwiftUI syntax and the asynchronous code feel dated. Some find the API calls repetitive and the bank backend a distraction from MVVM, and one says fixing Node problems is slow if JavaScript is new. A few also mention awkward subtitles, small audio slips and starter projects.
The rating is 4.6 from 675 reviews, and 399 of them are five stars, so most people come away happy. The two lowest reviews pull in opposite directions: one says it is too advanced for all levels, the other says it is too basic. The reviews suggest it fits developers who have built a few SwiftUI screens and want some structure. It is a solid pick for the core idea, less so if you want up-to-date asynchronous code.
Pros
- Short MVVM explainer up front, which reviewers say lays out how the pattern works right away
- Four apps, including a client-server bank app, show MVVM beyond a toy counter
- Azam's explanations are described as clear, deep and easy to follow
- Only about seven hours, so the core idea is reachable in a weekend or two
Cons
- Last updated in 2022, and reviewers flag older SwiftUI syntax and async code
- The Node and Express backend for the bank app can be slow to debug without JavaScript
- Repetitive API calls and starter projects that some reviewers dislike
An interesting introduction to MVVM with practical, real-world examples. I appreciated the clear explanations and the clean, maintainable code.
Suits developers who already know Swift and SwiftUI basics, despite the All Levels label.
What you will learn
- Understanding the MVVM design pattern
- Consuming a JSON API in SwiftUI application
- Building SwiftUI applications using MVVM design pattern
- Building server using NodeJS, ExpressJS using JavaScript
Course content
14 sections · 73 lectures · 7 hours of video 4 articles
- 1Introduction 2 free previews3 lectures · 6 min
- 2What is MVVM Design Pattern? 3 free previews5 lectures · 8 min
- 3Getting Started with MVVM in SwiftUI Apps 3 free previews6 lectures · 28 min
- 4Movies App - Getting Started6 lectures · 17 min
- 5Movies App - Consuming JSON API4 lectures · 23 min
- 6Movies App - Displaying Movies4 lectures · 38 min
- 7Movies App - Movie Details4 lectures · 22 min
- 8Bank App - Getting Started6 lectures · 15 min
- 9Bank App - Listing All Accounts5 lectures · 48 min
- 10Bank App - Creating Account7 lectures · 1 hour
- 11Bank App - Transferring Funds10 lectures · 1.4 hours
- 12Good Weather App - Displaying the Weather8 lectures · 52 min
- 13Good Weather App - Temperature Unit Conversion3 lectures · 18 min
- 14Conclusion2 lectures · 2 min
Who it is for
The instructor says it suits
- Developers curious about how to build SwiftUI apps using MVVM Design Pattern
- Developers who wants to create more maintainable SwiftUI applications
- Developers who wants to create client/server applications in iOS
What you need before you start
- Swift Language Knowledge is recommended
- SwiftUI knowledge is recommended
- NodeJS, ExpressJS and JavaScript is recommended but not required
- Xcode 11.5 or above
Course Description
SwiftUI is Apple’s new declarative framework for building applications for any Apple device. Although you can use any design pattern to build your SwiftUI apps, MVVM pattern is preferred due to the declarative nature of the SwiftUI framework.
In this course, you will learn how to build practical real world SwiftUI apps using MVVM Design Pattern. You will also learn how MVVM patterns behave in client/server applications.
What is MVVM Design Pattern?
In this section you will learn the basics of MVVM Design Pattern. You will learn the purpose and need for MVVM and what problems it solves when developing SwiftUI applications.
Getting Started with MVVM in SwiftUI Apps
In this section you will get started with building SwiftUI applications using MVVM framework. We will start slowly by building a simple counter application with some business rules. This section will set the foundation for the rest of the course.
Movies App
The Movies App spans over multiple sections of the course. You will learn how to build a Movie app, which allows you to search movies using OMDB API. The app will showcase how to write a service layer, which fetches JSON from an API. The app will also demonstrate how to show the detail screen of the movie when selected.
Bank App
The Bank App consists of multiple sections of the course. In this section you will be responsible for building the complete backend using NodeJS, ExpressJS and JavaScript hosted on Glitch platform. This app will showcase how MVVM pattern is implemented for SwiftUI app in a distributed environment.
I am super excited for this course and I am 100% confident that you will enjoy the course.
Thanks and happy coding!
Instructor Details
- 4.6 Rating
675 Reviews
Mohammad Azam
Mohammad Azam is a seasoned iOS developer, educator, and speaker with over a decade of experience building mobile applications and mentoring developers. He is the founder of AzamSharp School, a learning platform offering 150+ hours of iOS development content and live workshops that have helped thousands of students level up their skills. As an instructor at DigitalCrafts and a top-rated Udemy and LinkedIn Learning teacher, Azam has taught more than 80,000 students worldwide. He frequently speaks at developer conferences, sharing insights on SwiftUI, app architecture, and machine learning in iOS. His teaching is known for being practical, clear, and deeply rooted in real-world development.
More courses by Mohammad Azam
SwiftUI - Declarative Interfaces for any Apple Device (2023)
4.5 (2,337 Reviews)
Provider: Udemy
Time: 26.5h
$13.99
Async/Await and Actors - Concurrency in Swift (2023)
4.6 (1,449 Reviews)
Provider: Udemy
Time: 5h
$69.99
More iOS Swift courses
iOS 12 Swift 4.2 - The Complete iOS App Development Bootcamp (2021)
4.9 (562 Reviews)
Provider: Udemy
Time: 55.4h
$109.99
Noob to App Store - iPhone Apps with Swift, SwiftUI & iOS 15 (2021)
4.9 (342 Reviews)
Provider: Udemy
Time: 7.8h
$69.99
Deep Dive iOS 27 & SwiftUI 6: 90-Hour Project-Based Course (2026)
4.8 (983 Reviews)
Provider: Udemy
Time: 88.7h
$79.99
The Swift Arcade Data Structures and Algorithms Bootcamp (2022)
4.8 (839 Reviews)
Provider: Udemy
Time: 7.2h
$84.99
How To Make An App For Beginners (iOS/Swift - 2019)
4.8 (658 Reviews)
Provider: Udemy
Time: 4.3h
Free
SwiftUI iOS13 Coffee Shop Application, Order Products Online (2020)
4.8 (158 Reviews)
Provider: Udemy
Time: 8.2h
$109.99
Reviews
By Seymen Nadir ELMAS on 9/8/2024
This course is very instructive and developmental. It is rich in content and the teaching is very clear. On the other hand, the teacher's explanations are both deep and understandable for an intermediate developer.
By Ravindu Wataketiya on 11/24/2023
Overall course content is good. Usage of MVVM pattern alongside SwiftUI is explained well. There were minor mistakes in wordings in audio that can be improved. Since this is about MVVM and SwiftUI, I would prefer if the back-end implementation was simpler and quicker. Troubleshooting and fixing issues in the back-end implementation can be time consuming and cumbersome, especially if the learner has limited experience on JavaScript, NodeJS and Express. In future work, you might want to consider a different approach for the back-end implementation, preferably one that does not depend that much on the learner's experience with a specific back-end stack . Overall good content. For Udemy - The player is still unstable.
By Victor Rafael Ordozgoite on 12/28/2022
It is a very helpful course for people that are already programming with SwiftUI and wants to learn how to apply MVVM Design Pattern with this Framework. It was very helpful and quite challenging for me. 100% recommended!
By Alex Pilugin on 6/11/2022
This is a very good course about using MVVM approach. You will learn going through several projects which uses external services and APIs. The lector prepared the starter projects with pre-written extensions and tools like Webservice, ImageLoader classes, and as a result you will not spend additional time on typing (but you also will not receive an additional explanation in this course about those classes - the teacher will ask you to watch additional YouTube videos with required explanation). I met several issues during learning this course but the lector answered and gave his advice very quickly. From my point of view this course was sometimes a little bit complicated for me, since I prefer to plan the relationships between objects first, but it was very interesting to see how to create relationships between objects which were not existing previously or to come back to pre-existing objects many times and to edit them.
By Juan Carlos Pazos on 5/7/2022
Azam is always a good instructor, but this time not observing the changes in the site for one project was frustrating. These course is about MVVM maybe look for another way that does no depend of external sites would be better. The problem is the server side of the bank app, I understand that the changes are not related to Azam, but maybe a sample using Core Data, could be better.
By Keisuke Minami on 2/6/2022
【Learning iOS + APIs + Server, with a Serene Developer 】 What made me pick up this course is the way in which the instructor speaks: soft, gentle, and very comfortable. And my intuition really paid off! Regarding learning materials provided in this course, very helpful for intermediate developers (like me) to handle APIs with "Open Movie Database", "OpenWeatherMap" via "Glitch". I hope this course provides you with some opportunities to combining APIs, routes, and parsing JSON. Kind regards
By Maury Alamin on 3/8/2021
I highly recommend this amazing course. I've purchased several of Mr. Azam's courses and this is by far the best. He clearly explains the MVVM design pattern, something I struggled with having been used to MVC. He also simplifies JSON data consumption to a degree I have not seen in other courses.
By Slawomir Sokolowski on 1/19/2021
Peachy content. I am not able to find any better resource. Top notch. Despite the fact that I received a wrong OMDB API and couldn't finish Movies Upp. The instructor is very knowledgeable and approachable. Thank You.
By Armando Zapata on 9/21/2020
I'm really learning with this course but i will love to learn how to put it in a ViewController to make it more MVVM, i saw it in another teacher and it really makes me want to learn it too, i believe this course do an excelent job teaching us many things, that would make it such much more valuable. Keep the amazing work !!!
By David Bratton on 9/20/2020
Mohammad's courses are usually outstanding, but he has put in a great amount of detail into this course. He provides great detail in his explanations. If you have never parsed JSON and are looking to learn about MVVM design I would highly recommend this course.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 92 / 100












