Créateur d'applications mobiles - Ripple Motion

... allows for multi type relationship. Type relationships are checked at compile time. => less bug static dispatch. => more aggressive optimisations. => faster code.
722KB taille 5 téléchargements 189 vues
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