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
1
84
Definiendo límites
Presentado en iOS Love en Diciembre, 2017
Francisco Díaz
December 14, 2017
Tweet
Share
More Decks by Francisco Díaz
See All by Francisco Díaz
Working effectively at scale
fdiaz
4
270
I hate public speaking. So why do I keep doing it?
fdiaz
0
100
Si odio hablar en público. ¿Por qué lo sigo haciendo?
fdiaz
2
110
Move fast and keep your code quality
fdiaz
1
330
De qué hablo cuando hablo de trabajo remoto
fdiaz
1
120
Setting Boundaries
fdiaz
1
110
Swift Values
fdiaz
0
88
Sisifo o Cómo empezar de nuevo - y otra vez.
fdiaz
0
90
Other Decks in Programming
See All in Programming
DROBEの生成AI活用事例 with AWS
ippey
0
110
WebDriver BiDiとは何なのか
yotahada3
1
120
chibiccをCILに移植した結果 (NGK2025S版)
kekyo
PRO
0
190
富山発の個人開発サービスで日本中の学校の業務を改善した話
krpk1900
4
340
watsonx.ai Dojo #6 継続的なAIアプリ開発と展開
oniak3ibm
PRO
0
280
振り返れば奴(Cline)がいる
keiyagi
0
150
ゼロからの、レトロゲームエンジンの作り方
tokujiros
3
1.2k
チームリードになって変わったこと
isaka1022
0
160
Java Webフレームワークの現状 / java web framework at burikaigi
kishida
9
2.1k
Compose でデザインと実装の差異を減らすための取り組み
oidy
1
280
rails newと同時に型を書く
aki19035vc
6
760
Azure AI Foundryのご紹介
qt_luigi
1
270
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
A Tale of Four Properties
chriscoyier
158
23k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Agile that works and the tools we love
rasmusluckow
328
21k
It's Worth the Effort
3n
184
28k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
230
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
How STYLIGHT went responsive
nonsquared
98
5.3k
A designer walks into a library…
pauljervisheath
205
24k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
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?