A Complete Guide to Lean Controllers in iOS
3.9 (17 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
930 students enrolled
Wishlisted Wishlist

Please confirm that you want to add A Complete Guide to Lean Controllers in iOS to your Wishlist.

Add to Wishlist

A Complete Guide to Lean Controllers in iOS

Taming the Massive Controllers
3.9 (17 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
930 students enrolled
Created by Mohammad Azam
Last updated 5/2017
English
Current price: $12 Original price: $195 Discount: 94% off
4 days left at this price!
30-Day Money-Back Guarantee
Includes:
  • 4.5 hours on-demand video
  • 6 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion

Training 5 or more people?

Get your team access to Udemy's top 2,000 courses anytime, anywhere.

Try Udemy for Business
What Will I Learn?
  • At the end of this course students will be able to write cleaner, reusable code
  • Learned advanced iOS development techniques and principles
  • Take control of your massive controllers and turn them into leaner controller
View Curriculum
Requirements
  • You should have knowledge of the Swift programming language
  • You should have Xcode 8.2 or above installed on your Mac
Description

Are you interested in taking your iOS skills to the next level? 

Does your view controller consists of hundreds or thousands of lines of code? 

The answer to your headaches is "Lean Controllers". 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, creator of many popular online courses including Mastering MapKit in iOS Using Swift, Creating Stickers and iMessages Applications in iOS 10 Using Swift 3 and Mastering Sever Side Swift Using Vapor.  

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. At present I am a full time iOS Instructor at The Iron Yard where I teach users how to create amazing iOS applications. 

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!!!"

This course explains everything I wanted to know about Server Swift Development. It is really a benefit to my skills, that are now improved. Thank you very much.

It's a great course, especially if you are an beginner and don't know where to start from. It gives you the start to build your own backend in Swift rather than learning a new language just to save some data in DB. Many thanks to the author and hope many others will start using Vapor and Swift on server :D It's amazing!!!

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

Firstly, I am using Xcode 8.2 with Swift 3.0 with this course. I will show you how to build real apps that uses the principles of lean development. You will learn the techniques on how to write cleaner, leaner code by separating the concerns into multiple classes and components.  

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"

t's a great course, especially if you are an beginner and don't know where to start from. It gives you the start to build your own backend in Swift rather than learning a new language just to save some data in DB. Many thanks to the author and hope many others will start using Vapor and Swift on server :D It's amazing!!!

Why Lean Controllers?

  • Controller's job is to orchestrate the flow of the application, yet it always end up with hundreds and sometimes even thousands of lines of code. This course discusses the best practices of iOS development which results in Learn Controllers.  
  • By creating reusable iOS components we can quickly build our application without copy pasting code into multiple places.   
  • The amazing techniques discussed in this course can setup your path from intermediate to advanced developer.

Who is this for?

This course is for anyone who wants to take their skills to the next level. Lean controllers enforces best practices in iOS development and make your code easy to maintain for future iterations. Tired of writing thousands of lines of code in your view controllers. Tired of copy and pasting code all over the place in your application. 

Implementing your code using the best practices of Lean Controllers helps you deal with the above problems. You will learn to create reusable custom controls. You will implement generic data providers capable of fetching and persisting models of any type. You will create generic data sources which can be plugged with any UITableViewController.

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 8 or above and Swift 3.0
  • Good understanding of the Swift language and the iOS SDK - I'll teach you everything you need to know about converting your massive controllers into lean controllers. 

What am I going to get from this course?

  • Take your skills to the next level by learning the advanced techniques used by iOS professionals. 
  • Learn the principles behind creating Lean Controllers. 
  • Write more maintainable and reusable code. 
  • 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
  • Apply the lean principles and climb the cooperate ladder from junior developer to senior developer. 


Who is the target audience?

  • Anyone who wants to be an app developer: This is a complete course, just like my Complete MapKit, iMessages, Server Side Swift and Swift 2.0 courses.
  • Anyone who wants to learn to code: Lean Controllers allows you to write more maintainable, reusable code. Your journey towards greatness starts right NOW.
  • Anyone who wants to understand how computers work: Learning to code is so much more than being able to make apps - knowing how computers work is your key to a hugely powerful world.
Who is the target audience?
  • This course is for developers who want to take their existing skills to the next level
  • Developers who want to move from intermediate level to advanced
  • Writing cleaner, leaner and easily maintainable iOS code
Compare to Other iOS Development Courses
Curriculum For This Course
38 Lectures
04:15:18
+
Welcome to Learn Controllers
3 Lectures 06:42

In this lecture Mohammad Azam is going to explain the agenda for the complete course.

Preview 03:49

In this lecture students are going to learn what exactly is "Massive Controller". We are going to see some basic principles of programming which massive controllers break. 

Preview 01:16

In this lecture students will learn the concepts behind "Lean Controllers". Through the use of diagrams students will learn how to structure their application to utilize the concepts of lean controllers. 

What is a Lean Controller?
01:37
+
Setting Up the Grocery Application
4 Lectures 26:55

Before diving into Xcode we will create a very simple prototype of our application using Keynote. You can use any prototyping tool for this lecture. 

Designing Wireframes Using Keynote
07:19

In this lecture we will use our prototype to create the interface in Xcode using Storyboards.

Implementing User Interface in Storyboard
06:51

In this lecture we will integrate our view controller with Core Data. We will write all of our code write inside the view controller to represent the massive view controller. Later we will use the principles of lean controllers to rearrange our code and break it into smaller components. 

Integrating with Core Data
06:27

In this lecture students will learn how to create the custom view for the table view header. This view will not be reusable. We will later learn how to create a reusable view which can be easily used in many different applications. 

Creating Custom View to Add New Shopping List
06:18
+
Persisting Data Using Core Data
3 Lectures 24:30

In this lecture students are going to learn how to save data into SQLite database using Core Data. 

Saving New Records
06:15

In this lecture students are going to learn how to fetch records from the SQLite database using NSFetchedResultsController class. 

Fetching Records and Displaying them in UITableView
12:11

In this lecture students are going to learn how to delete records from the SQLite database using the NSManagedObjectContext. 

Deleting Records
06:04
+
Implementing Data Managers and Providers
3 Lectures 26:03

In this lecture we will look at the mess we have created in our view controller. This is known as massive view controller and it is not pretty to look at. 

Recap of the Grocery App
03:53

In this lecture students are going to learn how to move all the Core Data initializer code into a separate Core Data Manager class. Core Data Manager class will encapsulate all the different methods and properties associated with Core Data. 

Implementing Core Data Manager
08:55

In this lecture students will learn how to move all the code responsible for fetching data into a separate class. This will remove the view controller's dependency from the NSFetchedResultsController and the NSFetchedResultsControllerDelegate.

Preview 13:15
+
Implementing and Configuring Data Sources
3 Lectures 28:03

In this lecture students are going to learn how to separate the UITableViewDataSource from the UITableViewControllers. This lecture is going to dive into creating a concrete data source which can be used by the ShoppingList model. 

Implementing Shopping List Data Sources
11:28

In this lecture we will expose protocols from our data providers which will be consumed by the data source. This will allow data to flow from data providers to data sources. 

Communicating Between Data Provider and Data Source
08:20

In this lecture students will learn not only how to delete the data from the database using the providers but also how to remove the row from the table view control. 

Deleting Shopping Lists Using Data Source and Provider
08:15
+
Creating Custom Controls
5 Lectures 28:24

This lecture explains what is wrong with the current approach of creating the user control right inside our table view controller. 

What's Wrong with the Current Approach
02:54

Students are going to learn how to create a custom add new item control which can be utilized by any view controller. 

Creating a Custom Add New Item Control
05:56

In this lecture we will configure the custom control so it can be used to display any place holder text. 

Adding Custom Initializer to Configure Place Holder Text
03:57

The AddNewItemView control is useless if it cannot communicate with the view controller. In this lecture we will learn how our custom control can communicate with the view controller through the use of Delegates and Protocols. 

Passing Data from AddNewItemView Using Delegates
08:14

In this lecture students will learn a second way of passing data from the user control to the view controller in the form of closures. 

Passing Data from AddNewItemView Using Closures
07:23
+
Generic Data Providers and Data Sources
5 Lectures 48:08

In this lecture student will learn what is wrong with our approach of implementing concrete data providers and data sources. 

What's Wrong with the Current Approach
04:13

In this lecture students are going to start building a generic data provider class which can be used for any type of model. 

Creating a Generic Data Provider
17:38

In this lecture students will learn how to get started with creating a generic data source which can be used to work for any table view controller, table view cell and entity model. 

Implementing a Generic TableView Data Source Part 1
12:03

We will continue working on our custom generic data source class for table view. 

Implementing a Generic TableView Data Source Part 2
06:25

In this lecture students are going to learn how to persist records and delete records using generic providers and data source classes. 

Saving Records Using Generic Providers and Data Sources
07:49
+
Building Better View Controller Segues
2 Lectures 14:48
Default Segues
07:25

Modern Segues Using Extensions
07:23
+
Secure TabBar Items Using Protocol Extensions
4 Lectures 23:14
Understanding the Scenario
04:12

Presenting LoginViewController
05:22

Implementing LoginHandler
05:25

Creating Base TabBarController
08:15
+
Networking
3 Lectures 18:57

In this lecture, Mohammad Azam will explain the scenario of creating a separate layer for web service actions. 

Understanding the Scenario
07:09

In this lecture, Mohammad Azam will demonstrate how to create a Webservice class which is responsible for all networking operations. 

Developing a Webservice Class
08:41

In this lecture, Mohammad Azam will refactor the existing Webservice and Model classes to make it more seamless. 

Refactoring Webservice Class
03:07
1 More Section
About the Instructor
Mohammad Azam
4.4 Average rating
437 Reviews
9,240 Students
10 Courses
Apple Featured iOS Developer and iOS Instructor

My name is Mohammad Azam and I have been programming in iOS for the last 6+ years. Currently, I am teaching iOS at The Iron Yard academy, which is the world's largest coding bootcamp. Before joining The Iron Yard I have 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.