Créateur d’applications mobiles
#TECHTALK
TechTalk gratuits et ouverts au public au sein de nos locaux ! N’hésitez pas à vous inscrire aux prochaines sessions sur notre site: ripplemotion-services.fr
#TECHTALK
TechTalk sous forme de courtes formations le mercredi de 17h à 18h ! Échange entre vous et nos spécialistes en développement mobile
RMS TECHTALK ANIMÉ PAR :
OLIVIER TABONE Co-fondateur / Directeur
[email protected] 06 83 01 05 76
PROTOCOL WITH ASSOCIATED TYPES Protocol with associated pain
RMS TechTalk #3 - 26.10.2016
TechTalk #3 - 26.10.2016
OLIVIER TABONE Co-fondateur / Directeur
DOWN THE RABBIT HOLE
•Use a protocol to decouple components •At some point I need equality comparison •Boom
PROTOCOL WITH ASSOCIATED PAIN
6
TechTalk #3 - 26.10.2016
OLIVIER TABONE Co-fondateur / Directeur
PROTOCOL WITH ASSOCIATED PAIN
7
TechTalk #3 - 26.10.2016
OLIVIER TABONE Co-fondateur / Directeur
PROTOCOL WITH ASSOCIATED PAIN
8
TechTalk #3 - 26.10.2016
OLIVIER TABONE Co-fondateur / Directeur
PROTOCOL WITH ASSOCIATED PAIN
DOWN THE RABBIT HOLE
Search on the internet And you get confused and pain is coming
9
TechTalk #3 - 26.10.2016
OLIVIER TABONE Co-fondateur / Directeur
COMPRENDRE, C’EST PARDONNER 1. How weird it is 2. Why is it so weird
PROTOCOL WITH ASSOCIATED PAIN
3. Swift Evolution 4. Meanwhile Agenda from Alexis Gallagher - Protocols with Associated Types (YouTube) 10
TechTalk #3 - 26.10.2016
WHY IS IT SO WEIRD Only usable as generic constraint
OLIVIER TABONE Co-fondateur / Directeur
PATS can’t be use where objc protocols are used simply because jobs does not have generic constraints
PROTOCOL WITH ASSOCIATED PAIN
11
TechTalk #3 - 26.10.2016
WHY IS IT SO WEIRD They enforce uniformity and static dispatch
OLIVIER TABONE Co-fondateur / Directeur
PROTOCOL WITH ASSOCIATED PAIN
12
TechTalk #3 - 26.10.2016
WHY IS IT SO WEIRD Documentation is confusing
OLIVIER TABONE Co-fondateur / Directeur
PROTOCOL WITH ASSOCIATED PAIN
The Swift Programming Language 13
TechTalk #3 - 26.10.2016
WHY IS IT SO WEIRD associated type looks similar to generics
OLIVIER TABONE Co-fondateur / Directeur
PROTOCOL WITH ASSOCIATED PAIN
14
TechTalk #3 - 26.10.2016
OLIVIER TABONE Co-fondateur / Directeur
PROTOCOL WITH ASSOCIATED PAIN
Why is it so weird ? The cow eats grass problem
TechTalk #3 - 26.10.2016
WHY IS IT SO WEIRD Cows eat grass
OLIVIER TABONE Co-fondateur / Directeur
PROTOCOL WITH ASSOCIATED PAIN
16
TechTalk #3 - 26.10.2016
WHY IS IT SO WEIRD Cows aren’t animals ?
OLIVIER TABONE Co-fondateur / Directeur
PROTOCOL WITH ASSOCIATED PAIN
17
TechTalk #3 - 26.10.2016
WHY IS IT SO WEIRD Cows with pats
OLIVIER TABONE Co-fondateur / Directeur
PROTOCOL WITH ASSOCIATED PAIN
18
TechTalk #3 - 26.10.2016
WHY IS IT SO WEIRD
OLIVIER TABONE Co-fondateur / Directeur
PROTOCOL WITH ASSOCIATED PAIN
because if it were to compile, cows would eat meat
19
TechTalk #3 - 26.10.2016
OLIVIER TABONE Co-fondateur / Directeur
PROTOCOL WITH ASSOCIATED PAIN
WHY IS IT SO WEIRD ?
PAT allows for multi type relationship which can’t be done with OOP subtype / generics
20
TechTalk #3 - 26.10.2016
OLIVIER TABONE Co-fondateur / Directeur
PROTOCOL WITH ASSOCIATED PAIN
WHY IS IT SO WEIRD ?
PAT allows for multi type relationship so what ?
21
TechTalk #3 - 26.10.2016
WHY IS IT SO WEIRD ? PAT allows for multi type relationship
OLIVIER TABONE Co-fondateur / Directeur
PROTOCOL WITH ASSOCIATED PAIN
Type relationships are checked at compile time => less bug static dispatch => more aggressive optimisations => faster code => more battery life 22
TechTalk #3 - 26.10.2016
OLIVIER TABONE Co-fondateur / Directeur
PROTOCOL WITH ASSOCIATED PAIN
Swift Evolution
TechTalk #3 - 26.10.2016
OLIVIER TABONE Co-fondateur / Directeur
SWIFT EVOLUTION swift core team has stated they want to support generalised existentials Swift’s Generics Manifesto
PROTOCOL WITH ASSOCIATED PAIN
24
TechTalk #3 - 26.10.2016
OLIVIER TABONE Co-fondateur / Directeur
PROTOCOL WITH ASSOCIATED PAIN
Meanwhile how to love them
TechTalk #3 - 26.10.2016
HOW TO LOVE THEM PATs are not protocols
OLIVIER TABONE Co-fondateur / Directeur
Avoid PATs unless multi type relationships matters PROTOCOL WITH ASSOCIATED PAIN
Use type erasure Wait for existential
26
TechTalk #3 - 26.10.2016
RESOURCES
OLIVIER TABONE Co-fondateur / Directeur
PROTOCOL WITH ASSOCIATED PAIN
•Swift Generics Manifesto •Alexis Gallagher’s talk on YouTube • Advanced Swift (epub)
27
Merci de votre participation !
OLIVIER TABONE Co-fondateur / Directeur
[email protected] 06 83 01 05 76
Créateur d’applications mobiles