Protocol Oriented Programming in Swift 4 and iOS 11 (Udemy.com)
Learn the power of Protocol Oriented Programming in Swift 4 and iOS 11
Created by: Andi Setiyadi
Last updated February 2019
What you will learn
- Understand what Protocol Oriented Programming is in Swift
- Apply the Protocol Oriented Programming in developing iOS application.
- Identify the potential aspect of the project that can benefit from protocol oriented programming approach.
How it compares
Against the other 160 rated Udemy courses in iOS Swift on CourseDuck:
- Rating4.3 out of 5higher than 17% of them
- Reviews209#102 of 161 by number of reviews
- Length2.4 hoursshorter than 92% of them
- Last updatedFebruary 2019earlier than 65% of them
Course Description
Protocol Oriented Programming has gained some traction and widely adopted ever since the WWDC talk by Dave Abrahams. Most of us already familiar with Object Oriented programming for so many years, especially with the fact that the Cocoa Touch library has been using this approach. Objective-C has used the Protocol to some degree but Swift has added more powerful features to Protocol Oriented Programming.
In this course we will look into Protocol Oriented Programming in Swift more closely and deeper to find out what it can deliver in helping us with our projects. We will start off with the understanding of Class and Struct, and how to properly initialized them based on our needs.
Class and Struct have their differences and it will impact what kind and how they can adopt to certain Protocols. Different types of Protocol property and method declarations will also affect the type of objects that can conform to its requirements.
Probably the most common use of Protocol is its role on Protocol - Delegate pattern. However we will explore many different Protocol capabilities and features, such as Protocol as type, inheritance, extension, conformance, composition, typealias to name a few.
I hope you can see the opportunity and the potential of what Protocol Oriented Programming can do in your project and am looking forward to have you joining this course.
Instructor Details
- 4.3 Rating
209 Reviews
Andi Setiyadi
Andi Setiyadi is a Senior iOS Developer and has been working at Fortune 25 Company for the last few years. He has been involved in iOS projects for IBM, Universal Studio Orlando, Verizon and the most recent at Major League Baseball. He is passionate about iOS mobile development starting with Objective-C and fell in love with Swift, and been part of the early adopter. He truly believes Swift will become one of the development languages of the future.
He lives in the beautiful state of Colorado in the United States and while he is not busy coding, he enjoys biking and skiing. His motto is never stop learning and share the knowledge. One of his favorite quotes: “Winning isn’t everything, but wanting to win is”.
More courses by Andi Setiyadi
CoreData for Swift Development (Swift 4.2 & iOS 12) (2019)
4.3 (276 Reviews)
Provider: Udemy
Time: 8.2h
$64.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 DUBIEN Jean-Louis on 8/21/2019
Peu d’informations pour ce sujet, et même de littérature. C’était donc un bon choix. Mais il serait bon de ne pas trop conserver les mêmes exemples qui font qu’une leçon est parfois trop dense, par exemple avec la leçon sur le protocole composition. Mais merci beaucoup.
By Gábor Rácz on 10/5/2018
Really great course exposing Protocol-Orientated Programming. I really appreciate that he takes his time, explaining each step. Each new lesson builds onto the previous one, but he always does a recap before diving into the new lesson, so each lesson can stand on its own if needed. I will definitely be coming back to this course for reminders and go-to-tricks. A good purchase, all in all!
By Barbara Wait on 9/13/2018
I learned two great things from this course: 1. How adding an extension to a protocol that provides a default implementation is very powerful for adding functionality to a class or struct by just adopting the protocol and calling its methods. 2. Using the protocol as a type for a collection allows for polymorphism on the protocol methods. Also very powerful.
By Bob Esponjoso on 8/31/2018
Enjoyed the course very much. Good explanations and examples of the "how" to do protocol oriented programming. Would be five star with a section on the "why" with pro's and con's - I suggest maybe having an OOP 'before' and POP 'after' example. Could even use the property management example - first show it written with OOP approach then written using POP. Thanks and Cheers!
By Chuck Krutsinger on 5/8/2018
This is a good course as far as it goes. However, I was hoping for more depth. I think this course could benefit from a sample project (or projects) that put the ideas into practice. The WWDC presentations on Protocol Oriented Development go into further depth and provide some very practical example. This course is better than those in that it goes more slowly and helps you absorb the concepts as you go. However, it stops before some of the more sophisticated uses of POP are brought into play in a meaningful way. I recommend it for someone new to Swift and POP, but would look elsewhere if you are seasoned and want deeper material.
By Adrián Gómez on 3/21/2018
Very clear and concise explanations, dynamic way exposing the problem and possible solutions with understandable voice. It would be 5stars+ with some more advanced content about protocols and generics for example like type erasure. Overall very good job, 100% recommended
By David Johnson on 2/17/2018
Very clear instructions, and a good variety of samples on how to properly use protocols. I’d love to see at least one example of the protocol/delegate use when not using segues. When passing data from one view controller to another when views are set up programmatically (rather than storyboard) it would be helpful to see a sample of using protocols and delegates in this case.
By Александр Казарцев on 8/28/2017
Although the course was structured and author's speech was quite understandable these materials never touched theme of pop. Just watch those darn 45 minutes of video and you will find selective protocol extensions with "where" (constrained extensions), you will find how multiple inherinace problem is solved by swift. Why and where it is needed to use "self" in object methods. Why as?! Is actually a code smell, why we should use equatable. I don't know about other students, but after 6 years of objective-c, I was trying to figure out about Paradigm of Pop not extensions which also present in objc as @concreteProtocol. So dissapointed actually...it is a waste of money after cs193p.
By Sancho on 7/26/2017
Best course on the topic of protocols, starts from the basics then builds on top of that to show how protocols are structured, used and executed. I had no idea what protocols were, and now have a basic understanding on how to build a protocol that can work for both a class and a struct. Thanks again for making a great course!!!
By FriskoPZ on 7/19/2017
Great information on protocol oriented programming. It certainly open my eyes on what protocol can do and I can see opportunity in implementing it on my projects. The lecture on object initializer also has some useful hints on object initialization that I am not aware before. Looking forward to finishing up this course.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 86 / 100








