YoVDO

Swift 5: Protocol-Oriented Programming

Offered By: LinkedIn Learning

Tags

Swift Courses iOS Development Courses SwiftUI Courses Software Design Courses Polymorphism Courses Generics Courses Protocol-oriented programming Courses

Course Description

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

Related Courses

Programmazione I
University of Naples Federico II via edX
Основы разработки на C++: жёлтый пояс
Moscow Institute of Physics and Technology via Coursera
C++ Programming: Object-Oriented Design
Codio via edX
Java: Going Further with Classes and Methods
Codecademy
Java: Inheritance and Polymorphism
Codecademy