MVVM Design Pattern Using Swift in iOS

Learn the Art of Building Modern iOS Applications

4.38 (2352 reviews)
Udemy
platform
English
language
Mobile Apps
category
instructor
MVVM Design Pattern Using Swift in iOS
19,827
students
6.5 hours
content
Jul 2023
last update
$79.99
regular price

What you will learn

Have a deeper understanding of good iOS architecture apps

Build iOS applications using MVVM design pattern

Why take this course?

Are you interested in learning how to write iOS apps using MVVM design pattern?

MVVM design pattern allows you to develop applications that are easily maintainable and testable, and now you can learn it from the comfort of your home.. in your own time.. without having to attend class. 

My name is Mohammad Azam and I am the creator of many popular online courses including Mastering MapKit in iOS Using Swift and Creating Stickers and iMessages Applications in iOS 10 Using Swift 3, Mastering Micro Services Using JPA, Mastering Server Side Swift Using Vapor, Mastering ARKit for iOS, Mastering Core ML for iOS and more.  

I have created over 2 dozens apps and some of my apps were even featured by Apple on the App Store. I have worked with fortune 500 companies as a lead iOS developer and helped them grow their business ten folds.  

What’s stopping you from signing up to today?

  • You don't have enough time: Not a problem at all. We have designed the course so you can learn everything you need to know in less than 4 hours. In fact if you think that the course fell short on delivering topics then we will give you your MONEY BACK. 

Here are some of the reviews from our previous courses: 

"His course is AWESOME very detail instructions."

"Mohammad Azam has an excellent teaching style which makes it easy & fun to comprehend these Swift features in such a short course & he explains the concepts in more detail & clarity than most instructors. Plus, his videos are well prepared & he's very articulate. I hope he will create more courses."

"Excellent teaching. Just perfect!!!"

Buy this course today and this is what you’ll get. 

I will show you how to use MVVM design pattern to build your iOS applications. I will start from the very beginning covering the basics of MVVM design pattern and then dive into advanced concepts like live binding. I will also demonstrate how to implement a web services layer and create a complete app from scratch using MVVM design pattern.   

The course is accompanied with all the code sample files. 

You will also receive a UNLIMITED support on Udemy forums. I am very active on forums and make sure that every questions is answered. 

Can you believe you get all this (and more) for just $195?

"Awesome class for really learning how to setup and implement MapKit in your iOS apps using swift. Def. one of the best classes I've taken on Udemy. Looking forward to more classes offered by Mohammad Azam. A++ class"

Why learn MVVM?

  • MVVM is the next step towards the future of apps. MVVM allows you to create apps that are easily maintainable and testable. 

  • MVVM allows iOS developers to use their existing skills to create amazing iOS applications. 

  • As the application grows MVVM design allows the developers break the app into smaller components.   

Who is this for?

This course is for anyone who wants to take their skills to the next level. MVVM design pattern is an old pattern but it is relatively new in the iOS community. MVVM iOS applications can also help you to earn higher salary since now you know how to write a complete apps which can be tested and updated easily through the use of MVVM design principles.  

Is this course right for me?

Look: if you are still not convinced then I urge you to check out my 5 star reviews in other courses. I am a well known developer in the iOS community with a large following. I do a lot of speaking engagements in which I spread knowledge and education. 

If you are not satisfied with the course then I offer a 100% REFUND. I am confident that you will enjoy the course and you will utilize the knowledge you learned in this course in your future applications.

What are the requirements?

  • A Mac Computer

  • Xcode 10 or above 

  • iOS 12 or above

  • Basic understanding of the Swift language and the iOS SDK - I'll teach you everything you need to know about MVVM. 

What am I going to get from this course?

  • Create amazing iOS apps using MVVM design pattern 

  • Take your existing iOS skills to the next level

  • Become a professional app developer, take freelance gigs and work from anywhere in the world

  • Bored with the same old, same old? Apply for a new job in a software company as an iOS developer

Content

Introduction

Introduction
Understanding MVC Architecture
What is Wrong with MVC?
Understanding MVVM Architecture

Building News App Using MVVM Design Pattern

What we will be building
Registering on NewsAPI Service
Setting Up the User Interface
Implementing Web Service
Creating and Decoding JSON to Models
Implementing View Models
Creating Custom Self Sizing Cells
Displaying News

Building Coffee Ordering App Using MVVM Design Pattern

What we will be building?
Creating the User Interface
Creating the Add New Order Interface
Testing the Web API Using Postman
Implementing Webservice Client
Creating Models
Testing Webservice Client
Implementing View Models
Displaying Orders in UITableView
Populating Types of Coffee
Populating Cup Sizes Using View Model
Adding Checkmark for Selected Cells
Populating AddCoffeeOrderViewModel
Populating Model Using View Model
Implementing the Resource for Creating New Orders
Updating Webservice to Add Post
Adding New Orders to UITableView Using Delegates
Article - MVVM in iOS (Revisited)

Understanding the Structure of GoodWeather App

What you will be building?
Understanding Weather List Screen
Understanding Add Weather Screen
Understanding Settings Screen

Implementing User Interface for GoodWeather App

Setting Up View Controllers
Configuring Theme for Our App
Displaying Hard-Coded Weather into TableView
Designing the AddWeather Screen

Implementing Web Services Layer

OpenWeatherMap API
Implementing WebService Service
Testing the Webservice Class

Building ViewModels and Populating View Models

Implementing View Models
Decoding JSON into View Models
Implementing CodingKeys for WeatherViewModel and TemperatureViewModel

Displaying Weather on the Screen

Implement AddWeather Delegate
Conforming to AddWeather Delegate
Displaying Weather in TableView
Implementing Configure Cell and FormatAsDegree Extension

Designing Setting Screen and View Models

Preparing Settings Screen
Configuring Segue Identifiers
Implementing Settings View Model
Displaying Settings on the Settings Screen
Implementing Checkmark to Indicate the Selected Setting

Persisting Settings and Converting Temperature Units

Loading and Displaying Default Settings from User Defaults
Persisting Settings in User Defaults
Setting Up Delegate to Pass Settings to Weather List View Controller
Converting Units Between Celsius and Fahrenheit

Bindings

What are Bindings?
View to ViewModel Binding - Creating Custom BindingTextField Control
View to ViewModel Binding - Populating ViewModel
ViewModel to View - Setting Up View Controllers
ViewModel to View - Building a Dynamic Type for Type Eraser
ViewModel to View - Implementing Custom Decoding for WeatherViewModel
ViewModel to View - Binding the Values to User Interface

Implementing WeatherDataSource

Understanding the Scenario
Implementation
Using WeatherDataSource in WeatherListTableViewController

Implementing Generic Data Source

Understanding the Scenario
Implementation
Using Generic Data Source in WeatherListTableViewController

Unit Testing

What is Unit Testing?
Setting Up Your Project
Writing Your First Unit Test
Refactoring Unit Tests

Unit Testing View Models

Setting Up the Project for Unit Testing
Writing Unit Tests for SettingViewModel
Writing Unit Tests for WeatherListViewModel

Conclusion

Next Steps
Bonus - Mastering RxSwift in iOS

Screenshots

MVVM Design Pattern Using Swift in iOS - Screenshot_01MVVM Design Pattern Using Swift in iOS - Screenshot_02MVVM Design Pattern Using Swift in iOS - Screenshot_03MVVM Design Pattern Using Swift in iOS - Screenshot_04

Our review

1. **Web Services Calling Location**: Web services calls are typically made in the ViewModel or the Model layer, depending on the complexity of the network request and the data handling. If the request is direct and simple, it might be done in the ViewModel. For more complex logic, it could be in the Model. The key is to ensure that the ViewController remains as dumb as possible, only reacting to the data provided by the ViewModel or Model. 2. **Course Content Updating**: It's common for courses to fall behind as new versions of languages and frameworks are released. The SwiftUI module likely needs updating to reflect the latest changes in Swift and Xcode. This is a known issue with many technical courses, but the underlying MVVM principles should still be relevant. 3. **Outdated Content**: Some reviews indicate that the course content is outdated, possibly due to the use of Storyboards instead of SwiftUI or newer versions of Swift and Xcode. It's important for learners to adapt the principles taught to the current tools and practices. 4. **Learning MVVM**: The course seems to cater to different levels of experience with MVVM, from beginners who need detailed steps to more experienced developers looking to deepen their understanding. For those with prior knowledge of MVVM, the course may seem too basic. 5. **Unit Testing and TDD**: A few reviews emphasize the importance of unit testing and test-driven development (TDD) in understanding and applying MVVM effectively. These aspects are crucial for building robust and maintainable applications. 6. **Course Structure Suggestions**: There's a call for more comprehensive coverage of MVVM, including its advantages over other patterns like MVC, Viper, or Presenter. A stronger emphasis on the technical details and principles of MVVM would be beneficial. More diagrams, example codes, and explanations of best practices, pitfalls, and real-world applications are also suggested to improve learning outcomes. 7. **Learning Path**: For beginners, it's recommended to start with foundational knowledge of MVVM before moving on to more complex topics like unit testing, which can be introduced later in the learning journey. In summary, while there are some issues with outdated content and a need for updates, the course seems to effectively teach the MVVM design pattern for iOS development, especially for those with little to no prior knowledge of MVVM. For more experienced developers or those looking for up-to-date SwiftUI implementation, it's advisable to look for other resources or await an update from the course creator that addresses these concerns.

Charts

Price

MVVM Design Pattern Using Swift in iOS - Price chart

Rating

MVVM Design Pattern Using Swift in iOS - Ratings chart

Enrollment distribution

MVVM Design Pattern Using Swift in iOS - Distribution chart

Related Topics

1437938
udemy ID
11/18/2017
course created date
8/8/2019
course indexed date
Bot
course submited by