Slide 1

Slide 1 text

@gregheo C1 Mobile
 Summit

Slide 2

Slide 2 text

++++++++[>++++[>++>+ ++>+++>+<<<<-]>+>+>- >>+[<]<-]>>.>---.+++ ++++..+++.>>.<-.<.++ +.------.--------.>> +.>++.

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

!

Slide 9

Slide 9 text

networker.beginRequest(.read, success: { data in
 })

Slide 10

Slide 10 text

networker.beginRequest(.read, success: { data in
 parser.parseRaw(data) { result in
 } })

Slide 11

Slide 11 text

networker.beginRequest(.read, success: { data in
 parser.parseRaw(data) { result in
 archiver.materialize(from: result) { objects in
 } } })

Slide 12

Slide 12 text

networker.beginRequest(.read, success: { data in
 parser.parseRaw(data) { result in
 archiver.materialize(from: result) { objects in
 dataStore.save(objects) { status in
 } } } })

Slide 13

Slide 13 text

networker.beginRequest(.read, success: { data in
 parser.parseRaw(data) { result in
 archiver.materialize(from: result) { objects in
 dataStore.save(objects) { status in
 print("Save success!") } } } }) print("Hello 1")
 print("Hello 2")

Slide 14

Slide 14 text

⏰#

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

A B C X Y Z

Slide 17

Slide 17 text

networker.beginRequest(.read, success: { data in
 parser.parseRaw(data) { result in
 archiver.materialize(from: result) { objects in
 dataStore.save(objects) { status in
 print("Save success!") } } } }) print("Hello 1")
 print("Hello 2")

Slide 18

Slide 18 text

⏰#

Slide 19

Slide 19 text

networker.beginRequest(.read, success: { data in
 parser.parseRaw(data) { result in
 archiver.materialize(from: result) { objects in
 dataStore.save(objects) { status in
 print("Save success!") } } } })

Slide 20

Slide 20 text

Clojure

Slide 21

Slide 21 text

Future

Slide 22

Slide 22 text

(defn square [x]
 (* x x)
 )

Slide 23

Slide 23 text

(defn square [x]
 (future (* x x))
 )

Slide 24

Slide 24 text

(defn saveToDisk [data]
 (future (
 ...
 ))
 )

Slide 25

Slide 25 text

saveToDisk future completed? cancelled? value

Slide 26

Slide 26 text

@myFuture
 
 (deref myFuture)


Slide 27

Slide 27 text

A X Y future B C D (deref future)

Slide 28

Slide 28 text

Future

Slide 29

Slide 29 text

Promise

Slide 30

Slide 30 text

@myPromise
 
 (deref myPromise)


Slide 31

Slide 31 text

getValue promise realized? value promise deliver

Slide 32

Slide 32 text

Promise

Slide 33

Slide 33 text

Slide 34

Slide 34 text

%&