Swift 4 Protocol-Oriented Programming

Swift 4 Protocol-Oriented Programming

English | MP4 | AVC 1920×1080 | AAC 44KHz 2ch | 2h 54m | 919 MB

Master multithreading and concurrent processing with C++

Swift has become the number one language used in iOS and macOS development. The Swift standard library is developed using Protocol-Oriented Programming techniques, generics, and first-class value semantics; therefore, every Swift developer should understand these powerful concepts and how to take advantage of them in their application design.

This course will help you understand the differences between Object-Oriented Programming and Protocol-Oriented Programming. It demonstrates how to work with Protocol-Oriented Programming using real-world use cases. You will gain a solid knowledge of the various types that can be used in Swift and the differences between value and reference types. You will be taught how Protocol-Oriented Programming techniques can be used to develop very flexible and easy-to-maintain code.

By the end of the course, you will have a thorough understanding of Protocol-Oriented Programming and how to utilize it to build powerful and practical applications.

This course is written for developers who learn best by working with code, so every concept discussed in this course is reinforced with real code examples.

What You Will Learn

  • Understand the differences between Object-Oriented Programming and Protocol-Oriented Programming
  • Explore the different types that Swift offers and what pitfalls to avoid
  • Delve into generics and generic programming
  • Learn how to implement Copy-On-Write within your custom types
  • Implement several design patterns in a protocol-oriented way
  • Design applications by prioritizing the protocol first and the implementation types second
Table of Contents

01 The Course Overview
02 Protocol Syntax and Inheritance
03 Using Protocols as a Type
04 Polymorphism with Protocols
05 Type Casting and Associated Types with Protocols
06 Delegation
07 Designing with Protocols
08 Classes
09 Access Controls and Enumerations
10 Tuples
11 Value and Reference Types
12 Recursive Data Types and Inheritance for Reference Types
13 Dynamic Dispatch
14 Defining an Extension
15 Protocol Extensions
16 Text Validation
17 Extensions with the Swift Standard Library
18 Conforming to the Equatable Protocol
19 Generic Functions and Type Constraints
20 Generic Types
21 Associated Types
22 Generic Subscripts
23 Copy-on-write
24 Generics in a Protocol-Oriented Design
25 Swift as an Object-Oriented Programming Language
26 Issues with the Object-Oriented Design
27 Swift as a Protocol-Oriented Programming Language
28 Object-Oriented Programming versus Protocol-Oriented Programming
29 Creational Patterns
30 Structural Design Patterns
31 Behavioral Design Patterns
32 Logging Service
33 Data Access Layer