Créateur d’applications mobiles
TECH TALK
GRATUITS & OUVERTS AU PUBLIC
Tech talk sous forme de courtes formations le mercredi de 17h à 18h ! N’hésitez pas à nous contacter afin de participer aux prochaines sessions au sein de nos locaux !
TECH TALK #13 - 08.02.2017
SCHEDULE https://goo.gl/Rp92xO OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
08/02/2017 #15 Promises iOS + Android 15/02/2017 #16 Android TableView vs RecyclerView 22/02/2017 #17 iOS Rest Primer 01/03/2017 #18 Django + Celery
3
TECH TALK #13 - 08.02.2017
PROMISES IOS + ANDROID
TECH TALK #13 - 08.02.2017
OLIVIER TABONE CO-FONDATEUR DIRECTEUR
A BRIEF HISTORY OF ASYNC CODE HANDLING
TECH TALK #13 - 08.02.2017
OBJECTIVE-C ~ 1980 Delegation Pattern
OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
‣ Objects have to carry state to coordinate multiple async calls
‣ caller is disconnected from result / error
6
TECH TALK #13 - 08.02.2017
OBJECTIVE-C ~ 2010
GCD and Continuation passing style APIs OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
‣ improvement on the caller site / callback site correlation
‣ coordination is hard ‣ code tends to suffer from callback hell 7
TECH TALK #13 - 08.02.2017
NODE JS ~ 2016 Callback based apis
OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
8
TECH TALK #13 - 08.02.2017
NODE JS ~ 2016 Callback hell
OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
9
TECH TALK #13 - 08.02.2017
OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
NODE JS ~ 2016 Callback hell COCOA
10
TECH TALK #13 - 08.02.2017
HELLO PROMISES OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
a Promise holds a reference to a future completion of a task. these references can be combined to do a lot of interesting stuff.
11
TECH TALK #13 - 08.02.2017
PROMISES
Pipe of async operations RESOLVED OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
RESOLVED
RESOLVED
PENDING
PENDING
CANCELLED
CANCELLED REJECTED
PENDING
CANCELLED REJECTED
REJECTED
12
TECH TALK #13 - 08.02.2017
PROMISES
Pipe of async operations OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
‣ fetch | parse | filter or what ?
‣ state is … ‣ output is a result or an error or nothing if I forgot something 13
TECH TALK #13 - 08.02.2017
PROMISES Chaining
OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
‣ return result of any type ‣ return promise of any type ‣ throw an error 14
TECH TALK #13 - 08.02.2017
PROMISES Error Handling
OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
‣ Think try / catch / finally
15
TECH TALK #13 - 08.02.2017
PROMISES Error Handling with chained promises OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
‣ Think try / catch / finally
16
TECH TALK #13 - 08.02.2017
PROMISES Cancellation OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
‣ error handler not called ‣ always is always called 😎 17
TECH TALK #13 - 08.02.2017
PROMISES PATTERNS CALLBACK OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
18
TECH TALK #13 - 08.02.2017
PROMISES PATTERNS CALLBACK improved OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
19
TECH TALK #13 - 08.02.2017
PROMISES PATTERNS Transform before callback OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
20
TECH TALK #13 - 08.02.2017
PROMISES PATTERNS
Fallback to local data on remote fetch failure OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
21
TECH TALK #13 - 08.02.2017
PROMISES PATTERNS coalesce async calls
OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
22
TECH TALK #13 - 08.02.2017
PROMISES PATTERNS
Coordinate multiple async API calls OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
23
TECH TALK #13 - 08.02.2017
PROMISES PATTERNS
Coordinate multiple async API calls (better) OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
24
TECH TALK #13 - 08.02.2017
PROMISES PATTERNS Graph of Async calls
OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
DO A
DO B
DO C
DO D
25
TECH TALK #13 - 08.02.2017
PROMISES ANTI-PATTERNS Not a silver bullet
OLIVIER TABONE CO-FONDATEUR DIRECTEUR TECHNIQUE
‣ Stream of events - use RX, Delegation, Notifications ‣ Synchronous Work - use Threading ‣ Message Passing - use GCD
26
TECH TALK ANIMÉ PAR
OLIVIER TABONE CO-FONDATEUR DIRECTEUR
[email protected] 06 83 01 05 76
MERCI DE VOTRE PARTICIPATION !