Slide 1

Slide 1 text

@gregheo ! NSBudapest, May 2018 Shared
 Exclusive
 Mutable
 Immutable

Slide 2

Slide 2 text

@gregheo ! NSBudapest, May 2018 Data "

Slide 3

Slide 3 text

@gregheo ! NSBudapest, May 2018 Code Example #

Slide 4

Slide 4 text

@gregheo ! NSBudapest, May 2018 Exclusive Shared Immutable Mutable

Slide 5

Slide 5 text

@gregheo ! NSBudapest, May 2018 Exclusive Shared Immutable Mutable

Slide 6

Slide 6 text

@gregheo ! NSBudapest, May 2018 Exclusive Shared Immutable private let Screen size / scale Mutable private var
 private queue $

Slide 7

Slide 7 text

@gregheo ! NSBudapest, May 2018 Fewer entry points

Slide 8

Slide 8 text

@gregheo ! NSBudapest, May 2018 Private queues

Slide 9

Slide 9 text

@gregheo ! NSBudapest, May 2018 Queue Callback

Slide 10

Slide 10 text

@gregheo ! NSBudapest, May 2018 
 // call from anywhere!
 public func something() {
 privateQueue.sync { … } }


Slide 11

Slide 11 text

@gregheo ! NSBudapest, May 2018 
 // always call on the main queue!
 public func something() 


Slide 12

Slide 12 text

@gregheo ! NSBudapest, May 2018 
 // always call on the main queue!
 public func something() {
 dispatchPrecondition(condition: .onQueue(.main))
 }


Slide 13

Slide 13 text

@gregheo ! NSBudapest, May 2018 Make it difficult
 to get wrong

Slide 14

Slide 14 text

@gregheo ! NSBudapest, May 2018 köszönöm! ☺