Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How to be a POP-Star
Search
Ritesh Gupta
July 05, 2017
Programming
400
1
Share
How to be a POP-Star
POP - Protocol Oriented Programming
Ritesh Gupta
July 05, 2017
More Decks by Ritesh Gupta
See All by Ritesh Gupta
Declarative Networking with Combine –– iOS Conf SG 2020
riteshhh
0
200
Combine! All the things
riteshhh
3
700
Deep dive into Protocols
riteshhh
1
460
Thinking in Swift!
riteshhh
3
450
Other Decks in Programming
See All in Programming
Swiftのレキシカルスコープ管理
kntkymt
0
210
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
180
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
210
Modding RubyKaigi for Myself
yui_knk
0
870
Lessons from Spec-Driven Development
simas
PRO
0
120
Transactional Change Stream Processing With Debezium and Apache Flink
gunnarmorling
1
160
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
420
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.1k
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
120
開発体験を左右するライブラリの API 設計 - GraphQL スキーマ構築ライブラリから考える #tskaigi
izumin5210
2
1.6k
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.4k
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
150
Featured
See All Featured
AI: The stuff that nobody shows you
jnunemaker
PRO
8
680
Paper Plane
katiecoart
PRO
1
51k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.3k
The browser strikes back
jonoalderson
0
1.1k
Fireside Chat
paigeccino
42
3.9k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
310
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
360
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
140
Transcript
how to be a POP-Star (Swift Chennai Meetup) ~ Ritesh
Gupta
/@_riteshhh /riteshhgupta /issues/295 /swift-snippets
None
None
`Protocol-Oriented Programming in Swift` https://developer.apple.com/videos/play/wwdc2015/408/ WWDC - 2015
`Protocol and Value Oriented Programming in UIKit Apps` https://developer.apple.com/videos/play/wwdc2016/419/ WWDC
- 2016
Swift is just not a syntax migration from Objective-C…
Swift is not objective-c styled language…
C ~> C++ Objective-C ~> Swift { imperative } {
object oriented } { object oriented } { protocol oriented }
Entity (class, struct - UI or Model) vs Behaviour (protocol)
Entity is collection of behaviours…
UIButton UIBarButtonItem
UIBarButtonItem UIBarItem NSObject UIButton UIControl UIView
UIBarButtonItem UIBarItem NSObject UIButton UIControl UIView
None
None
UIKit + Protocols
UIView Framable
UIImageView ImageRenderable, Framable
UIButton Tappable, ImageRenderable, Framable
compose everything with Protocols..
UITableViewCell UICollectionViewCell Reusable, Framable
UIScrollView Scrollable, Framable
UITableView UICollectionView Listable, Scrollable, Framable
thinking in protocol..
protocol ->
protocol -> protocol extension ->
protocol -> protocol extension -> protocol constrained extension ->
playground demos..
protocol is not a silver bullet.. http://chris.eidhof.nl/post/protocol-oriented-programming/
..computed variables, extensions, values types, immutability, functional programming, generics, enums,
associative types/ values..
None