Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

LinkedIn Learning

Swift 5: Protocol-Oriented Programming

via LinkedIn Learning

Overview

Take a deep dive into protocol-oriented programming (POP), a new paradigm introduced by Apple. Learn how to work with POP to design and implement modern software with Swift.

Syllabus

Introduction
  • Benefits: Protocol-oriented programming
  • What you should know
1. The Pillars of Protocol Orientation
  • What is protocol-oriented programming?
  • Introducing the protocol
  • Adopting protocols
  • Conforming to protocols via extensions
  • Understanding polymorphism
  • Protocol inheritance
  • Adopting multiple protocols
  • Protocol extensions
  • Challenge: Removing tight coupling
  • Solution: Removing tight coupling
2. Protocol-Oriented Programming
  • Why protocols?
  • From unstructured code to POP
  • Designing with classes: First try
  • Designing with classes: Subclassing
  • The benefits of thinking in protocols
  • Highlighting the differences
3. Generics
  • The importance of generics
  • Defining generic functions and methods
  • Working with generic types
  • Placeholder types in protocols
  • Using generics with protocols
  • Challenge: Implementing a generic stack
  • Solution: Implementing a generic stack
4. Implement the Weather App Using POP
  • Weather app design
  • Defining the UI using SwiftUI
  • The WebServiceController protocol
  • Working with a third-party API
  • Implementing the OpenWeatherMap controller
  • Completing the OpenWeatherMap controller
  • Introducing the view model
  • Presenting weather data
  • Challenge: Integrating a fallback service
  • Solution: Integrating a fallback service
Conclusion
  • Next steps

Taught by

Karoly Nyisztor

Reviews

4.7 rating at LinkedIn Learning based on 187 ratings

Start your review of Swift 5: Protocol-Oriented Programming

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.