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
Definiendo límites
Search
Francisco Díaz
December 14, 2017
Programming
160
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Definiendo límites
Presentado en iOS Love en Diciembre, 2017
Francisco Díaz
December 14, 2017
More Decks by Francisco Díaz
See All by Francisco Díaz
Inteligencia Artificial en PedidosYa - Una mirada pragmática
fdiaz
0
44
Working effectively at scale
fdiaz
4
330
I hate public speaking. So why do I keep doing it?
fdiaz
0
170
Si odio hablar en público. ¿Por qué lo sigo haciendo?
fdiaz
2
190
Move fast and keep your code quality
fdiaz
1
430
De qué hablo cuando hablo de trabajo remoto
fdiaz
1
180
Setting Boundaries
fdiaz
1
200
Swift Values
fdiaz
0
180
Sisifo o Cómo empezar de nuevo - y otra vez.
fdiaz
0
170
Other Decks in Programming
See All in Programming
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
120
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
2
1k
My Marp Sample
sinoue0108
0
110
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
280
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
370
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.1k
Go 1.27 における memory allocation の高速化
andpad
0
300
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
600
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
1.2k
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
200
React本体のコードリーディング
high_g_engineer
1
150
私のClaude Code活用法 (個人開発編) - PHPerKaigi mini #4(2026/08/24)
panda_program
1
150
Featured
See All Featured
We Are The Robots
honzajavorek
0
310
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
940
The Cost Of JavaScript in 2023
addyosmani
55
10k
Building Adaptive Systems
keathley
44
3.2k
The browser strikes back
jonoalderson
0
1.5k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
380
What's in a price? How to price your products and services
michaelherold
247
13k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Transcript
DEFINIENDO LIMITES
Francisco Díaz franciscodiaz.cl
None
3 desarrolladores iOS 28 horas 1 projecto
EVA BC programs provide vital support to anti- violence programs
and communities across BC. — Ending Violence Association ONG
None
Features: → Botón de pánico → Today widget → Knock
Botón de pánico: Al presionar el botón → Reportar
Today widget: Al presionar el botón → Reportar
Knock Al golpear el teléfono → Reportar
División de trabajo
Por feature → 1 Dev: Pantalla con botón en iOS
app → 1 Dev: Today widget → 1 Dev: Knock
None
None
None
❌ Una persona por "feature" ✅ Una persona por "capa"
None
Dependencias
Dependency inversion
protocol ReportCreator { func createReport() throws -> Report }
class SuccessReportCreator: ReportCreator { func createReport() throws -> Report {
return Report(id: "1", date: Date()) } } class ErrorReportCreator: ReportCreator { func createReport() throws -> Report { throw ReportCreationError.fakeError } }
class BigPanicButtonViewController: UIViewController { private let reportCreator: ReportCreator init(reportCreator: ReportCreator)
{ self.reportCreator = reportCreator } func didTapBigPanicButton() { do { // Handle Report let report = try reportCreator.createReport() } catch { // Handle error } } }
class BigPanicButtonViewController: UIViewController { init(reportCreator: ReportCreator = SuccessReport()) { ...
} }
¿Si el usuario no tiene internet?
None
None
None
None
protocol APIRequester { func createReport() throws -> JSON } protocol
SMSHandler { func sendSMS() throws -> SMS } protocol ConnectivityListener { var isConnected: Bool { get } }
Nada existe aún, pero podemos probar si funciona
Demo
Recap → Movernos independientemente → Reducir conflictos → No hay
necesidad de esperar para integrar código.
¿Preguntas?