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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Francisco Díaz
December 14, 2017
Programming
150
1
Share
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
28
Working effectively at scale
fdiaz
4
320
I hate public speaking. So why do I keep doing it?
fdiaz
0
160
Si odio hablar en público. ¿Por qué lo sigo haciendo?
fdiaz
2
170
Move fast and keep your code quality
fdiaz
1
410
De qué hablo cuando hablo de trabajo remoto
fdiaz
1
170
Setting Boundaries
fdiaz
1
180
Swift Values
fdiaz
0
160
Sisifo o Cómo empezar de nuevo - y otra vez.
fdiaz
0
150
Other Decks in Programming
See All in Programming
継続的な負荷検証を目指して
pyama86
0
270
なぜあなたのコードには「コシ」がないのか?〜AI時代に問う、最後まで美味しい設計と戦略〜 #phpconkagawa / phpconkagawa2026
shogogg
0
140
Oxlintとeslint-plugin-react-hooks 明日から始められそう?
t6adev
0
320
実用!Hono RPC2026
yodaka
2
300
From Formal Specification to Property Based Test
ohbarye
0
710
決定論 vs 確率論:Gemini 3 FlashとTF-IDFを組み合わせた「法規判定エンジン」の構築
shukob
0
150
Claude CodeでETLジョブ実行テストを自動化してみた
yoshikikasama
0
1.1k
いつか誰かが、と思っていた フロントエンド刷新5年間の実践知
kiichisugihara
1
250
ローカルLLMでどこまでコードが書けるか / How much code can be written on a local LLM
kishida
2
310
Explore CoroutineScope
tomoeng11
0
160
tRPCの概要と少しだけパフォーマンス
misoton665
2
260
10 Tips of AWS ~Gen AI on AWS~
licux
5
540
Featured
See All Featured
The SEO Collaboration Effect
kristinabergwall1
1
440
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
780
Prompt Engineering for Job Search
mfonobong
0
290
ラッコキーワード サービス紹介資料
rakko
1
3.2M
GitHub's CSS Performance
jonrohan
1032
470k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.5k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
360
Why Our Code Smells
bkeepers
PRO
340
58k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.6k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
350
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
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?