thinking in swift

15
Thinking in Swift

Upload: martin-mitrevski

Post on 03-Mar-2017

26 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Thinking in Swift

Thinking in Swift

Page 2: Thinking in Swift

Classes

Page 3: Thinking in Swift

Problems with classes

• Implicit sharing• Class inheritance is too intrusive• Lost type relationships

Page 4: Thinking in Swift

Protocol Oriented Programming

https://developer.apple.com/videos/play/wwdc2015/408/

Page 5: Thinking in Swift

Protocol Oriented Programming

• Protocols are more flexible• Structs are lightweight• Protocol extensions• Retroactive modelling

Page 6: Thinking in Swift

MVC

Page 7: Thinking in Swift

Model - View - View Model

Page 8: Thinking in Swift

Functional Reactive Programming

Streams

Transformations

Bindings

Page 9: Thinking in Swift

RXSwift

• Observable• Variable• Driver• bindTo

Page 10: Thinking in Swift

Objective-C libraries

Page 11: Thinking in Swift

Networking library

• Based on NSURLConnection• No dependency on Objective-C• Not complex requirements• To try something new

Page 12: Thinking in Swift

Networking

Start with a protocol

protocol HTTP { func executeRequest(request: Request) -> Result<Response, NSError>}

Page 13: Thinking in Swift

Demo

• Table views• Protocols• HTTP client

Page 14: Thinking in Swift

Finishing thoughts• More expressive• Less bugs• Better testing• Different• Fun

Page 15: Thinking in Swift

var questions?

https://martinmitrevski.com