iOS & Swift - MVVM, Combine, SnapKit, Snapshot/UI/Unit Tests (Udemy.com)
Master the skills needed to become a senior iOS engineer like MVVM, Reactive & Protocol Orientated Programming
Created by: Kelvin Fok
Last updated November 2023
What you will learn
- Build a MVVM architecture app with confidence
- Combine framework (reactive programming, communication between VMs and VCs)
- SnapKit (layout views programmatically)
- Unit Test (increase robustness in business logic)
- UI Test (preserve the integrity of business flows)
- Snapshot Test (preserve the integrity of views from unwarranted modification)
How it compares
Against the other 149 rated Udemy courses in Mobile Development on CourseDuck:
- Rating4.3 out of 5higher than 24% of them
- Reviews481#23 of 150 by number of reviews
- Length4.7 hoursshorter than 70% of them
- Last updatedNovember 2023earlier than 62% of them
Course Description
Welcome to the iOS & Swift - MVVM, Combine, SnapKit, Snapshot/UI/Unit Tests course!
In this course, I share my learnings as a professional iOS developer with 6 years experience on the topics that are relevant to the industry today. The materials I've prepared are knowledge that I wish I knew as a 3 year old developer struggling with concepts like:
Protocol orientated programming
Reactive programming
MVVM architecture (why not MVC?)
Coding views programatically with SnapKit (without Storyboards)
Writing unit tests
Writing Snapshot tests
Writing UI tests
In this course, I explain and implement the above-mentioned concepts through a simple Tip Calculator application step by step. I start off by building the UI, then the ViewModel which house the business logic and finally implement the various tests to ensure that we preserve the integrity of our code.
These concepts are extremely important to a senior iOS developer because of the expectations and responsibilities placed on you by the various stakeholders in your company. As such, you need the SKILLS to
Debug issues quickly
Upkeep code coverage and testability to ensure CI passes
Set an example to junior members in your team with high quality coding standards
Avoid on-call nightmares (paper duty ringing non-stop)
Fix and stop adding new tech debts
Maintain your sanity as your app grows over time
So this course targets developers who have been working for around 3 years who want to get to the next level. I am confident you will grow after completing this course.
Instructor Details
- 4.3 Rating
481 Reviews
Kelvin Fok
I'm a full time professional iOS developer with a top tier tech company in Asia and have been building apps for the past four years. During my career I have worked with companies big and small and I enjoy sharing with others my learnings. When I was beginner, I promised myself that one day I will teach other people how to code and make their lives better.
More Mobile Development courses
Flutter Mobile App: Build Chatbot with Firebase & Gemini AI (2026)
4.9 (775 Reviews)
Provider: Udemy
Time: 13.8h
$19.99
Android MVVM Architecture complete course (2026)
4.7 (890 Reviews)
Provider: Udemy
Time: 3.4h
$74.99
Android App's Development Masterclass - Build 2 Apps - Java (2023)
4.7 (271 Reviews)
Provider: Udemy
Time: 7.8h
$39.99
The Best React Native Course 2026 (From Beginner To Expert)
4.6 (735 Reviews)
Provider: Udemy
Time: 24.3h
$19.99
The Ultimate 70+ Hours iOS Development Bootcamp (2025)
4.6 (672 Reviews)
Provider: Udemy
Time: 74.2h
$84.99
Reviews
By Wouter Wessels on 7/10/2026
just tells what he does, not why he does it and what are the alternatives. As a Senior iOS developer sometimes I wondered what he was doing ... and why.
By Stephen Kaiser on 5/13/2024
Good stuff. Very practical info for common UI patterns and organization. Love the quick pace. It uses UIKit instead of SwiftUI, but most of the View modifiers should be applicable to SwiftUI, so you kind of learn a bit of both at once. I'm learning a lot! Thank you!
By Miguel Martins on 4/26/2024
I found the course interesting and learned about the different testing possibilities offered by Apple. The assembly of the screen was a bit too fast though as I had no previous experience on SnapKit and Combine framework to assembly UI. Even still it was good to learn about the possibilities and how reactive we can make a screen using the Combine framework and also how to set constraints using SnapKit.
By Anonymized User on 4/13/2024
The instructor is very knowledgeable as he covered many topics, but it could have been better if the speed was a bit slower.
By 허신일 on 3/14/2024
Brilliant course. I learnt alot from this course. Coding convention, especially indentations when using mutli-parameter function, was impressive. I didn't think about that kind of identation. I get interested in the tendencies that how swift (iOS) developers write their code.
By Fatih Emre Sarman on 3/7/2024
It was really good but only problem with that, it is not responsive. When I tried with iPhone SE 3rd generation the AmountView was crushed. It took a little bit time to fix it but I handled. Except that if you want to learn SnapKit and Tests it's really good. Hardly suggesting.
By Rodrigo Adelino Candido on 1/22/2024
The course is not bad but here are a couple of points. It never goes deep into any subject, so this course is for people who already have a base and need to "refresh" their memory a bit. I liked the way he builds a view, it's very practical. PROS: It's a good refresher if you already have experience. CONS. It never goes into detail on any subject.
By Steve Zaske on 12/8/2023
Great course for those with programming experience. I'm an Android developer and wanted to quickly jump into IOS development. I love that it focused on MVVM development and testing too. The speed was perfect and I like that he included his mistakes...and correcting them.
By Yianni Yiannakidis on 8/31/2023
I found Kelvin on YouTube as I was searching UIKit lessons with combine. And followed him here. I can say that I learned a lot, especially using combine in an MVVM pattern app. Thank you, Kelvin, and hope you make more lessons in UIKit and Combine
By Hyun Sik Kim on 4/26/2023
This course is absolutely amazing! I was shocked by how you can easily set layouts with snapkits and use combine to bind all datas together. Getting into Unit testings were definitely very interesting! Would recommend to others as well. Thanks for the great course Kelvin!
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 86 / 100






