Skip to main content
CF

iOS & Swift - MVVM, Combine, SnapKit, Snapshot/UI/Unit Tests

4h 40m 2s
English
Paid

This course helps you learn core iOS skills that you will use in real projects. You will see how each idea works and why it matters. The goal is to help you build clear code that you can trust.

What You Will Learn

You will work with tools and patterns that many teams use today. You will see how they fit together in one project.

  • Protocol oriented programming
  • Reactive programming with Combine
  • MVVM and why teams use it instead of MVC
  • Building views with SnapKit
  • Unit tests
  • Snapshot tests
  • UI tests

How You Will Learn

You will build a small Tip Calculator app from start to finish. This helps you see each idea in action. You start with the UI, then build the ViewModel, and then write tests to check your work.

The goal is to help you write code that is clear, simple, and safe to change.

Why These Skills Matter

Teams expect you to write code that is easy to read and test. These skills help you fix bugs faster and avoid broken builds.

  • Debug issues with confidence
  • Keep code coverage high so CI runs clean
  • Set a strong example for junior devs
  • Avoid stressful on-call work
  • Reduce and prevent tech debt
  • Keep control as your app grows

Who This Course Is For

This course is for iOS developers with about three years of experience. You know the basics and now want to grow into a stronger, more trusted team member. Each lesson shows clear steps you can use in your work right away.

About the Author: Udemy

Udemy thumbnail

Udemy is the largest open marketplace for online courses on the internet. Founded in 2010 by Eren Bali, Oktay Caglar, and Gagan Biyani and headquartered in San Francisco, the company went public on the Nasdaq in 2021 under the ticker UDMY. The platform hosts well over two hundred thousand courses across software development, IT and cloud, data science, design, business, marketing, and creative skills, taught by tens of thousands of independent instructors. Roughly seventy million learners use it worldwide, and the corporate arm — Udemy Business — supplies a curated subset of that catalog to enterprise customers.

Because Udemy is a marketplace rather than a single editorial publisher, the catalog is uneven by design. The strongest material lives in the long-form, project-based courses authored by working engineers — full-stack JavaScript, React, Node.js, Python data science, AWS, Docker and Kubernetes, mobile development with Flutter and React Native, and cloud certification preparation. The CourseFlix listing under this source is the slice of that catalog that has been mirrored here for offline-friendly viewing, organized by topic and updated as new releases land. Pricing on Udemy itself swings dramatically with the site's near-permanent sales, which is why the platform is best treated as a deep reference catalog: pick instructors with strong reviews and a track record of updating their material rather than buying on the headline price alone.

Watch Online 37 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 37 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Setup Project
All Course Lessons (37)
#Lesson TitleDurationAccess
1
Setup Project Demo
06:52
2
Setup Root Programatically
02:04
3
Create High Level Components With Layout
12:29
4
Add Theme Constants
07:28
5
Add Logo View Details
12:07
6
Add Result View
13:25
7
Add Amount View
09:11
8
Add Bill Input View Details
14:32
9
Add Header View Details
05:27
10
Add Tip Input View Details
14:26
11
Add Split Input View Details
08:51
12
Clean Up Views
01:13
13
Add View Model
09:33
14
Observe Bill Input View
08:48
15
Observe Tip Input View
07:48
16
Handle Custom Tip Button
07:02
17
Handle Custom Tip Button Selection State
06:21
18
Observe Split Input View
07:03
19
Compute Result In View Model
07:09
20
Display Result In Result View
05:50
21
Format Currency Values
03:16
22
Add Tap Gestures
07:28
23
Send Gesture Tap Publisher To VM
03:56
24
Add Sound Effect On LogoView Tap
06:40
25
Implement Calculator Reset
04:47
26
Setup Unit Tests
10:33
27
Add More Tests
05:08
28
Test Logo View Double Tap
07:28
29
Clean Up Test Code
01:27
30
Add Image Snapshot Tests
12:34
31
Add Snapshot Test With Custom Values
08:19
32
Add UI Tests
12:19
33
Add All Identifiers
05:52
34
Add All Screen Elements
10:38
35
Test Regular Tip Flow
06:17
36
Test Custom Tip Flow
04:36
37
Closing
01:05
Unlock unlimited learning

Get instant access to all 36 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

Frequently asked questions

What are the prerequisites for this course?
This course is designed for iOS developers with around three years of experience. You should already be familiar with basic iOS development concepts and be looking to enhance your skills and become a more reliable team member. The course builds on foundational knowledge and focuses on advanced practices like MVVM, Combine, and testing strategies.
What projects or exercises will I build during the course?
You will develop a small Tip Calculator app from start to finish. This project will allow you to apply each concept taught in the course, including setting up the UI, creating a ViewModel, and implementing various tests like unit, snapshot, and UI tests. This hands-on approach helps you understand how different components and patterns integrate into a real-world application.
How does this course compare in depth and scope to other iOS courses?
This course focuses specifically on integrating tools and patterns such as MVVM, Combine, and SnapKit, and emphasizes testing practices like unit, snapshot, and UI tests. Unlike broader courses that may cover a wide range of iOS topics, this course concentrates on helping you write clear and maintainable code, which is crucial for reducing tech debt and enhancing CI processes.
What specific tools and frameworks will I learn to use?
The course will cover several contemporary tools and frameworks. You will learn how to use Combine for reactive programming, MVVM as an architectural pattern, SnapKit for building views programmatically, and various testing techniques including unit tests, snapshot tests, and UI tests. Each tool is applied within the context of building a Tip Calculator app.
What is not covered in this course?
The course does not cover basic iOS development concepts or introductory Swift programming. It assumes that students already have a solid understanding of these areas and are looking to build upon their existing knowledge with more advanced practices like MVVM and reactive programming.
What is the expected time commitment for this course?
The course consists of 37 lessons, but the total runtime is not specified. Typically, each lesson will vary in length, requiring you to allocate sufficient time for both watching the lessons and practicing the concepts through the Tip Calculator project. The time commitment will also depend on your familiarity with the tools and patterns discussed.
How will the skills learned in this course benefit my career?
The skills you acquire will help you write code that is easy to read and test, which is highly valued in team environments. By mastering debugging, maintaining high code coverage, and setting a strong example for junior developers, you can reduce tech debt and prevent issues in production. This makes you a more trusted and effective team member, potentially opening up opportunities for career advancement.