Slide 1

Slide 1 text

Protocol Oriented Programming in Swift

Slide 2

Slide 2 text

"Crusty" is an old-school programmer who doesn't trust IDE's, debuggers and he doesn’t do OOP

Slide 3

Slide 3 text

Classes are Awesome ● Encapsulation ● Access Control ● Abstraction ● Namespace ● Expressive Syntax ● Extensibility

Slide 4

Slide 4 text

Classes are Awesome ● Encapsulation ● Access Control ● Abstraction ● Namespace ● Expressive Syntax ● Extensibility You can do all that with structs and enums!

Slide 5

Slide 5 text

Classes are Awesome Inheritance

Slide 6

Slide 6 text

Classes are Awesome Inheritance

Slide 7

Slide 7 text

Classes are Awesome Inheritance

Slide 8

Slide 8 text

Crusty's 3 complaints about classes 1. Implicit sharing 2. Inheritance is too intrusive 3. Lost type relationships

Slide 9

Slide 9 text

Implicit Sharing

Slide 10

Slide 10 text

Implicit Sharing

Slide 11

Slide 11 text

Implicit Sharing

Slide 12

Slide 12 text

Inheritance too intrusive ● You can only have 1 super class ● Bloating your super class ● If superclass have stored properties ○ You have to accept them, which bloat it ○ You have to initialize it ○ Make sure that you understand how to interact with your superclass

Slide 13

Slide 13 text

Lost Type Relationships

Slide 14

Slide 14 text

Protocol Solves the Problems