Programmation Orientée Protocole {Cocoaheads Montpellier}

Idean France
Idean FranceIdean France
INTRODUCTION À LA POP EN SWIFT
COCOAHEADS MONTPELLIER – SESSION SEPTEMBRE 2016
SOMMAIRE
Rappel : POO
La POP : quoi de neuf ?
Cas pratique 1 : UIView (Live coding)
Cas pratique 2 : Networking (Live coding)
22.09.16 BACKELITE 2
LA POO
LA POO
L’HÉRITAGE C’EST GÉNIAL
22.09.16 BACKELITE 4
NSObject
UIBarItem
UIBarButtonItem UITabBarItem
UIDocument
UIManagedDocument
UIResponder
UIApplication UIView
LA POO
PROBLÈMES
22.09.16 BACKELITE 5
• Faire attention aux états de nos objets (mutable/immutable)
• Multi-threading
• Les sous-classes : complexité, héritage multiples, etc.
• God classes
• Les tests unitaires ! (mock, etc)
LA POO
22.09.16 BACKELITE 6
LA POP
LA POP
POP = Programmation orienté
protocol
22.09.16 8BACKELITE
LA POP
22.09.16 BACKELITE 9
“Instead of using a class, start with a
protocol”
— Dave Abrahams: Professor of Blowing Your Mind
CAS PRATIQUE 1
LIVE CODING : UIVIEW
CAS PRATIQUE 2
NETWORKING
LIENS UTILES
22.09.16 BACKELITE 12
https://developer.apple.com/videos/play/wwdc2015/408/
https://realm.io/news/appbuilders-natasha-muraschev-practical-protocol-
oriented-programming/
http://krakendev.io/blog/subclassing-can-suck-and-heres-why
david.yang@backelite.com
www.backelite.com
CONTACTEZ-NOUS
YANG David
Developpeur / Tech Lead iOS
22.09.16 BACKELITE 13
1 sur 13

Recommandé

iBizLog. Smalltalking the Web par
iBizLog. Smalltalking the WebiBizLog. Smalltalking the Web
iBizLog. Smalltalking the WebESUG
440 vues18 diapositives
Google country day_intervento par
Google country day_interventoGoogle country day_intervento
Google country day_interventofirenze-gtug
770 vues13 diapositives
Supporting The Open Web - OSCON 2008 par
Supporting The Open Web - OSCON 2008Supporting The Open Web - OSCON 2008
Supporting The Open Web - OSCON 2008David Recordon
5.5K vues20 diapositives
CA Layer / Core Animation {Cocoaheads Montpellier} par
CA Layer / Core Animation {Cocoaheads Montpellier}CA Layer / Core Animation {Cocoaheads Montpellier}
CA Layer / Core Animation {Cocoaheads Montpellier}Idean France
676 vues20 diapositives
App groups, faire communiquer ses applications {Cocoaheads Montpellier} par
App groups, faire communiquer ses applications {Cocoaheads Montpellier}App groups, faire communiquer ses applications {Cocoaheads Montpellier}
App groups, faire communiquer ses applications {Cocoaheads Montpellier}Idean France
665 vues13 diapositives
Opérer un unbundling : 6 questions que les marques doivent se poser par
Opérer un unbundling : 6 questions que les marques doivent se poserOpérer un unbundling : 6 questions que les marques doivent se poser
Opérer un unbundling : 6 questions que les marques doivent se poserIdean France
5.7K vues15 diapositives

Contenu connexe

En vedette

Cocoaheads Montpellier Meetup : 3D Touch for iOS par
Cocoaheads Montpellier Meetup : 3D Touch for iOSCocoaheads Montpellier Meetup : 3D Touch for iOS
Cocoaheads Montpellier Meetup : 3D Touch for iOSIdean France
1K vues41 diapositives
Cocoaheads Montpellier Meetup : Comment gérer son onboarding par
Cocoaheads Montpellier Meetup : Comment gérer son onboardingCocoaheads Montpellier Meetup : Comment gérer son onboarding
Cocoaheads Montpellier Meetup : Comment gérer son onboardingIdean France
1K vues12 diapositives
Sirikit par Julien Coudsi par
Sirikit par Julien CoudsiSirikit par Julien Coudsi
Sirikit par Julien CoudsiIdean France
506 vues23 diapositives
Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C /... par
Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C /...Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C /...
Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C /...Idean France
942 vues32 diapositives
CocoaPods par David Yang par
CocoaPods par David YangCocoaPods par David Yang
CocoaPods par David YangIdean France
574 vues41 diapositives
Un développeur sachant designer par Audrey Hacq par
Un développeur sachant designer par Audrey HacqUn développeur sachant designer par Audrey Hacq
Un développeur sachant designer par Audrey HacqIdean France
1.2K vues33 diapositives

En vedette(20)

Cocoaheads Montpellier Meetup : 3D Touch for iOS par Idean France
Cocoaheads Montpellier Meetup : 3D Touch for iOSCocoaheads Montpellier Meetup : 3D Touch for iOS
Cocoaheads Montpellier Meetup : 3D Touch for iOS
Idean France1K vues
Cocoaheads Montpellier Meetup : Comment gérer son onboarding par Idean France
Cocoaheads Montpellier Meetup : Comment gérer son onboardingCocoaheads Montpellier Meetup : Comment gérer son onboarding
Cocoaheads Montpellier Meetup : Comment gérer son onboarding
Idean France1K vues
Sirikit par Julien Coudsi par Idean France
Sirikit par Julien CoudsiSirikit par Julien Coudsi
Sirikit par Julien Coudsi
Idean France506 vues
Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C /... par Idean France
Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C /...Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C /...
Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C /...
Idean France942 vues
Un développeur sachant designer par Audrey Hacq par Idean France
Un développeur sachant designer par Audrey HacqUn développeur sachant designer par Audrey Hacq
Un développeur sachant designer par Audrey Hacq
Idean France1.2K vues
Rendering unit tests par Nicolas Fontaine par Idean France
Rendering unit tests par Nicolas FontaineRendering unit tests par Nicolas Fontaine
Rendering unit tests par Nicolas Fontaine
Idean France396 vues
Les Formulaires - Les bonnes pratiques pour une meilleure expérience utilisat... par Idean France
Les Formulaires - Les bonnes pratiques pour une meilleure expérience utilisat...Les Formulaires - Les bonnes pratiques pour une meilleure expérience utilisat...
Les Formulaires - Les bonnes pratiques pour une meilleure expérience utilisat...
Idean France8.4K vues
Les 10 Tendances du Design d'interface en 2016 par Idean France
Les 10 Tendances du Design d'interface en 2016Les 10 Tendances du Design d'interface en 2016
Les 10 Tendances du Design d'interface en 2016
Idean France5.7K vues
Les 5 Tendances de la Performance Digitale en 2016 par Idean France
Les 5 Tendances de la Performance Digitale en 2016Les 5 Tendances de la Performance Digitale en 2016
Les 5 Tendances de la Performance Digitale en 2016
Idean France1.6K vues
Les 9 Tendances Tech en 2016 par Idean France
Les 9 Tendances Tech en 2016Les 9 Tendances Tech en 2016
Les 9 Tendances Tech en 2016
Idean France6.7K vues
Les 10 tendances de la User Experience en 2015 par Idean France
Les 10 tendances de la User Experience en 2015Les 10 tendances de la User Experience en 2015
Les 10 tendances de la User Experience en 2015
Idean France19.6K vues
Les bonnes pratiques du e-commerce par UX REPUBLIC
Les bonnes pratiques du e-commerceLes bonnes pratiques du e-commerce
Les bonnes pratiques du e-commerce
UX REPUBLIC17.4K vues
Les 10 Tendances de l’Expérience Utilisateur en 2016 par Idean France
Les 10 Tendances de l’Expérience Utilisateur en 2016Les 10 Tendances de l’Expérience Utilisateur en 2016
Les 10 Tendances de l’Expérience Utilisateur en 2016
Idean France32K vues
Tendances du Design d'Interface 2017 par Idean France
Tendances du Design d'Interface 2017Tendances du Design d'Interface 2017
Tendances du Design d'Interface 2017
Idean France1.5K vues
L'Apple Watch crée l'événement et bouscule le marché des smartwatches par Idean France
L'Apple Watch crée l'événement et bouscule le marché des smartwatches  L'Apple Watch crée l'événement et bouscule le marché des smartwatches
L'Apple Watch crée l'événement et bouscule le marché des smartwatches
Idean France4.2K vues
The top 9 Tech trends for 2016 par Idean France
The top 9 Tech trends for 2016The top 9 Tech trends for 2016
The top 9 Tech trends for 2016
Idean France2K vues
10 user experience trends in 2015 par Idean France
10 user experience trends in 201510 user experience trends in 2015
10 user experience trends in 2015
Idean France2.2K vues
A developer who knows how to design by Audrey Hacq par Idean France
A developer who knows how to design by Audrey HacqA developer who knows how to design by Audrey Hacq
A developer who knows how to design by Audrey Hacq
Idean France1.7K vues
FLUPA - UX Days 2016 : "Quand les militaires se prennent au jeu du Design Spr... par Idean France
FLUPA - UX Days 2016 : "Quand les militaires se prennent au jeu du Design Spr...FLUPA - UX Days 2016 : "Quand les militaires se prennent au jeu du Design Spr...
FLUPA - UX Days 2016 : "Quand les militaires se prennent au jeu du Design Spr...
Idean France559 vues

Similaire à Programmation Orientée Protocole {Cocoaheads Montpellier}

OneLaptopPerChild + Creative Commons par
OneLaptopPerChild + Creative CommonsOneLaptopPerChild + Creative Commons
OneLaptopPerChild + Creative Commons2da
413 vues17 diapositives
Three Hello Worlds par
Three Hello WorldsThree Hello Worlds
Three Hello WorldsJohn Wilker
372 vues16 diapositives
Introduction to MonoTouch and Monodroid/Mono for Android par
Introduction to MonoTouch and Monodroid/Mono for AndroidIntroduction to MonoTouch and Monodroid/Mono for Android
Introduction to MonoTouch and Monodroid/Mono for AndroidChris Hardy
2.3K vues70 diapositives
Italian Alt.Net Conference MonoTouch Session par
Italian Alt.Net Conference MonoTouch SessionItalian Alt.Net Conference MonoTouch Session
Italian Alt.Net Conference MonoTouch SessionChris Hardy
433 vues34 diapositives
Learning Python through Minecraft on the Raspberry Pi - Worksheets par
Learning Python through Minecraft on the Raspberry Pi - WorksheetsLearning Python through Minecraft on the Raspberry Pi - Worksheets
Learning Python through Minecraft on the Raspberry Pi - WorksheetsManchesterBudo
1.3K vues4 diapositives
iOS Development Introduction par
iOS Development IntroductioniOS Development Introduction
iOS Development IntroductionGonzalo Parra
992 vues31 diapositives

Similaire à Programmation Orientée Protocole {Cocoaheads Montpellier}(19)

OneLaptopPerChild + Creative Commons par 2da
OneLaptopPerChild + Creative CommonsOneLaptopPerChild + Creative Commons
OneLaptopPerChild + Creative Commons
2da413 vues
Introduction to MonoTouch and Monodroid/Mono for Android par Chris Hardy
Introduction to MonoTouch and Monodroid/Mono for AndroidIntroduction to MonoTouch and Monodroid/Mono for Android
Introduction to MonoTouch and Monodroid/Mono for Android
Chris Hardy2.3K vues
Italian Alt.Net Conference MonoTouch Session par Chris Hardy
Italian Alt.Net Conference MonoTouch SessionItalian Alt.Net Conference MonoTouch Session
Italian Alt.Net Conference MonoTouch Session
Chris Hardy433 vues
Learning Python through Minecraft on the Raspberry Pi - Worksheets par ManchesterBudo
Learning Python through Minecraft on the Raspberry Pi - WorksheetsLearning Python through Minecraft on the Raspberry Pi - Worksheets
Learning Python through Minecraft on the Raspberry Pi - Worksheets
ManchesterBudo1.3K vues
MacRuby & HotCocoa par Thilo Utke
MacRuby & HotCocoaMacRuby & HotCocoa
MacRuby & HotCocoa
Thilo Utke4.9K vues
C# On The iPhone with MonoTouch at DDD8 par Chris Hardy
C# On The iPhone with MonoTouch at DDD8C# On The iPhone with MonoTouch at DDD8
C# On The iPhone with MonoTouch at DDD8
Chris Hardy829 vues
Clean COBOL Lightning Talk - Ox:Agile 2019 par Mike Harris
Clean COBOL Lightning Talk - Ox:Agile 2019Clean COBOL Lightning Talk - Ox:Agile 2019
Clean COBOL Lightning Talk - Ox:Agile 2019
Mike Harris51 vues
C# on the iPhone with MonoTouch Glasgow par Chris Hardy
C# on the iPhone with MonoTouch GlasgowC# on the iPhone with MonoTouch Glasgow
C# on the iPhone with MonoTouch Glasgow
Chris Hardy683 vues
State Of Zope Linuxtag 2008 par Andreas Jung
State Of Zope Linuxtag 2008State Of Zope Linuxtag 2008
State Of Zope Linuxtag 2008
Andreas Jung1.6K vues
Python Desktop Application Development - PythonBo par Deusdies
Python Desktop Application Development - PythonBoPython Desktop Application Development - PythonBo
Python Desktop Application Development - PythonBo
Deusdies3.5K vues
Macruby& Hotcocoa presentation by Rich Kilmer par Matt Aimonetti
Macruby& Hotcocoa presentation by Rich KilmerMacruby& Hotcocoa presentation by Rich Kilmer
Macruby& Hotcocoa presentation by Rich Kilmer
Matt Aimonetti2.8K vues

Plus de Idean France

Start with a Concept and Stop Designing like a Machine par
Start with a Concept and Stop Designing like a MachineStart with a Concept and Stop Designing like a Machine
Start with a Concept and Stop Designing like a MachineIdean France
1.1K vues52 diapositives
Design Systems : à votre marque, prêts, partez ! par
Design Systems : à votre marque, prêts, partez !Design Systems : à votre marque, prêts, partez !
Design Systems : à votre marque, prêts, partez !Idean France
1.7K vues75 diapositives
Design systems : Bench et reco sur les outils par
Design systems : Bench et reco sur les outilsDesign systems : Bench et reco sur les outils
Design systems : Bench et reco sur les outilsIdean France
2.8K vues49 diapositives
La recette graphique par
La recette graphiqueLa recette graphique
La recette graphiqueIdean France
1.7K vues28 diapositives
Graph QL par Andy Gigon par
Graph QL par Andy GigonGraph QL par Andy Gigon
Graph QL par Andy GigonIdean France
362 vues30 diapositives
Cocoheads react native + redux par Nicolas Fontaine par
Cocoheads   react native + redux par Nicolas FontaineCocoheads   react native + redux par Nicolas Fontaine
Cocoheads react native + redux par Nicolas FontaineIdean France
376 vues30 diapositives

Plus de Idean France(13)

Start with a Concept and Stop Designing like a Machine par Idean France
Start with a Concept and Stop Designing like a MachineStart with a Concept and Stop Designing like a Machine
Start with a Concept and Stop Designing like a Machine
Idean France1.1K vues
Design Systems : à votre marque, prêts, partez ! par Idean France
Design Systems : à votre marque, prêts, partez !Design Systems : à votre marque, prêts, partez !
Design Systems : à votre marque, prêts, partez !
Idean France1.7K vues
Design systems : Bench et reco sur les outils par Idean France
Design systems : Bench et reco sur les outilsDesign systems : Bench et reco sur les outils
Design systems : Bench et reco sur les outils
Idean France2.8K vues
Cocoheads react native + redux par Nicolas Fontaine par Idean France
Cocoheads   react native + redux par Nicolas FontaineCocoheads   react native + redux par Nicolas Fontaine
Cocoheads react native + redux par Nicolas Fontaine
Idean France376 vues
Meetup langages visuels - Backelite - novembre 2017 par Idean France
Meetup langages visuels - Backelite - novembre 2017Meetup langages visuels - Backelite - novembre 2017
Meetup langages visuels - Backelite - novembre 2017
Idean France523 vues
Sketch pour les designers : pourquoi, quand et comment l'utiliser ? par Idean France
Sketch pour les designers : pourquoi, quand et comment l'utiliser ?Sketch pour les designers : pourquoi, quand et comment l'utiliser ?
Sketch pour les designers : pourquoi, quand et comment l'utiliser ?
Idean France2.2K vues
From Business to Buttons by Pierre Harlé par Idean France
From Business to Buttons by Pierre HarléFrom Business to Buttons by Pierre Harlé
From Business to Buttons by Pierre Harlé
Idean France224 vues
RX Swift avril 2017 - David Yang par Idean France
RX Swift avril 2017 - David YangRX Swift avril 2017 - David Yang
RX Swift avril 2017 - David Yang
Idean France340 vues
UI Design Trends for 2017 par Idean France
UI Design Trends for 2017UI Design Trends for 2017
UI Design Trends for 2017
Idean France2.8K vues
Cocoaheads Montpellier Meetup : La programmation réactive sur iOS avec Réacti... par Idean France
Cocoaheads Montpellier Meetup : La programmation réactive sur iOS avec Réacti...Cocoaheads Montpellier Meetup : La programmation réactive sur iOS avec Réacti...
Cocoaheads Montpellier Meetup : La programmation réactive sur iOS avec Réacti...
Idean France570 vues
How to design forms that deliver a great user experience par Idean France
How to design forms that deliver a great user experienceHow to design forms that deliver a great user experience
How to design forms that deliver a great user experience
Idean France3K vues

Dernier

Ransomware is Knocking your Door_Final.pdf par
Ransomware is Knocking your Door_Final.pdfRansomware is Knocking your Door_Final.pdf
Ransomware is Knocking your Door_Final.pdfSecurity Bootcamp
59 vues46 diapositives
STPI OctaNE CoE Brochure.pdf par
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdfmadhurjyapb
14 vues1 diapositive
PRODUCT PRESENTATION.pptx par
PRODUCT PRESENTATION.pptxPRODUCT PRESENTATION.pptx
PRODUCT PRESENTATION.pptxangelicacueva6
15 vues1 diapositive
Evolving the Network Automation Journey from Python to Platforms par
Evolving the Network Automation Journey from Python to PlatformsEvolving the Network Automation Journey from Python to Platforms
Evolving the Network Automation Journey from Python to PlatformsNetwork Automation Forum
13 vues21 diapositives
Unit 1_Lecture 2_Physical Design of IoT.pdf par
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdfStephenTec
12 vues36 diapositives
MVP and prioritization.pdf par
MVP and prioritization.pdfMVP and prioritization.pdf
MVP and prioritization.pdfrahuldharwal141
31 vues8 diapositives

Dernier(20)

STPI OctaNE CoE Brochure.pdf par madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb14 vues
Unit 1_Lecture 2_Physical Design of IoT.pdf par StephenTec
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdf
StephenTec12 vues
HTTP headers that make your website go faster - devs.gent November 2023 par Thijs Feryn
HTTP headers that make your website go faster - devs.gent November 2023HTTP headers that make your website go faster - devs.gent November 2023
HTTP headers that make your website go faster - devs.gent November 2023
Thijs Feryn22 vues
PharoJS - Zürich Smalltalk Group Meetup November 2023 par Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi132 vues
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors par sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab21 vues
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... par Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
Case Study Copenhagen Energy and Business Central.pdf par Aitana
Case Study Copenhagen Energy and Business Central.pdfCase Study Copenhagen Energy and Business Central.pdf
Case Study Copenhagen Energy and Business Central.pdf
Aitana16 vues
Special_edition_innovator_2023.pdf par WillDavies22
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdf
WillDavies2218 vues
6g - REPORT.pdf par Liveplex
6g - REPORT.pdf6g - REPORT.pdf
6g - REPORT.pdf
Liveplex10 vues

Programmation Orientée Protocole {Cocoaheads Montpellier}

Notes de l'éditeur

  1. L’héritage c’est génial. On a des méthodes ou des propriétés dans des classes, et les classes enfants en bénéficient. Elles peuvent les surcharger pour redéfinir leur implémentation.