Submit Search
Upload
Desacoplamento de código com Swift 4
•
1 like
•
256 views
Bruno Bilescky
Follow
Palestra do Cocoaheads SP 34 - 30/11/2017
Read less
Read more
Technology
Report
Share
Report
Share
1 of 48
Download now
Download to read offline
Recommended
Hacking websockets
Hacking websockets
Tomek Cejner
Byg digitale produkter som dine kunder vil have / Morgenbooster
Byg digitale produkter som dine kunder vil have / Morgenbooster
1508 A/S
How to Implement Hybrid Cloud Solutions Successfully
How to Implement Hybrid Cloud Solutions Successfully
SoftServe
The Journey from Monolith to Microservices: a Guided Adventure
The Journey from Monolith to Microservices: a Guided Adventure
VMware Tanzu
Real-world Microservices: Lessons from the Front Line - Zhamak Delghani, Thou...
Real-world Microservices: Lessons from the Front Line - Zhamak Delghani, Thou...
Thoughtworks
The Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to Serverless
Phil Calçado
Beyond Fast Good and Cheap
Beyond Fast Good and Cheap
Alan Stevens
Digital Optimization / Morgenbooster
Digital Optimization / Morgenbooster
1508 A/S
Recommended
Hacking websockets
Hacking websockets
Tomek Cejner
Byg digitale produkter som dine kunder vil have / Morgenbooster
Byg digitale produkter som dine kunder vil have / Morgenbooster
1508 A/S
How to Implement Hybrid Cloud Solutions Successfully
How to Implement Hybrid Cloud Solutions Successfully
SoftServe
The Journey from Monolith to Microservices: a Guided Adventure
The Journey from Monolith to Microservices: a Guided Adventure
VMware Tanzu
Real-world Microservices: Lessons from the Front Line - Zhamak Delghani, Thou...
Real-world Microservices: Lessons from the Front Line - Zhamak Delghani, Thou...
Thoughtworks
The Not-So-Straightforward Road From Microservices to Serverless
The Not-So-Straightforward Road From Microservices to Serverless
Phil Calçado
Beyond Fast Good and Cheap
Beyond Fast Good and Cheap
Alan Stevens
Digital Optimization / Morgenbooster
Digital Optimization / Morgenbooster
1508 A/S
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
naman860154
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Delhi Call girls
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Igalia
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The Digital Insurer
2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
Marius Sescu
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
Expeed Software
More Related Content
Recently uploaded
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Igalia
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Gabriella Davis
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
naman860154
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Martijn de Jong
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Delhi Call girls
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Puma Security, LLC
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Igalia
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Drew Madelung
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The Digital Insurer
Recently uploaded
(20)
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
Featured
2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
Marius Sescu
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
Expeed Software
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
Skeleton Culture Code
Skeleton Culture Code
Skeleton Technologies
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
contently
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Albert Qian
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
SpeakerHub
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
Introduction to Data Science
Introduction to Data Science
Christy Abraham Joy
Time Management & Productivity - Best Practices
Time Management & Productivity - Best Practices
Vit Horky
The six step guide to practical project management
The six step guide to practical project management
MindGenius
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
Featured
(20)
2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
Skeleton Culture Code
Skeleton Culture Code
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Getting into the tech field. what next
Getting into the tech field. what next
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
How to have difficult conversations
How to have difficult conversations
Introduction to Data Science
Introduction to Data Science
Time Management & Productivity - Best Practices
Time Management & Productivity - Best Practices
The six step guide to practical project management
The six step guide to practical project management
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Desacoplamento de código com Swift 4
1.
DESACOPLAMENTO DE CODIGO COM
SWIFT 4
2.
BRUNO BILESCKYBRUNOGB@GMAIL.COM SLACK: @BBILESCKY
3.
PROBLEMAS
4.
MASSIVE CLASSES ISSO VAI
MUITO ALEM DE VIEW CONTROLLERS
5.
CLASSES "SABE TUDO"
6.
SINGLETONS
7.
CADA PROGRAMADOR POR SI
8.
COLOCANDO ORDEM NA CASA
9.
ADOTAR NOVA ARQUITETURA
10.
MVP • MVVM VIPER
• VIP
11.
PRESENTATION MODEL MVVM-C •
RIBS FLOW VIEWCONTROLLER
12.
CODIGO REUTILIZAVEL CODIGO TESTAVEL PROCESSO
DEFINIDO
13.
SOLUCAO
14.
SOLUCAO? DE VERDADE?
15.
TRADE-OFFS
16.
FACILITA A INJECAO
DE DEPENDENCIAS
17.
FACILITA COMPONENTIZACAO
18.
FACILITA IMPLEMENTACAO DE TESTES
19.
POREM...
20.
QUANTO MAIS CAMADAS, MAIOR
O LABIRINTO PARA ACHAR DE FATO A LOGICA IMPLEMENTADA
21.
QUANTO MAIS CAMADAS, MAIOR
A DISCUSSAO SOBRE RESPONSABILIDADES
22.
"MAS DE QUEM
DEVERIA SER A RESPONSABILIDADE DISSO?" ISSO E TAREFA DO INTERACTOR ISSO E TAREFA DO PRESENTER ISSO E TAREFA DO FLOW CONTROLLER ISSO E TAREFA DO MODEL
23.
ADICIONA COMPLEXIDADES QUE O
SEU PROJETO PODE NAO PRECISAR
24.
QUANTO MAIS CAMADAS MAIOR
A QUANTIDADE DE ARQUIVOS
25.
QUANTO MAIS CAMADAS MAIOR
A CHANCE DE EMPURRAR A SUJEIRA PRA DEBAIXO DO TAPETE
26.
USO DE PROTOCOLOS
27.
struct User { let
name: String let email: String }
28.
protocol UserStore { func
all()-> [User] func add(new: User) }
29.
class UserViewController: UIViewController
{ let userStore: UserStore init(store: UserStore) { self.userStore = store } func viewDidLoad() { super.viewDidLoad() let users = userStore.all() } }
30.
COMPOSICAO DE PROTOCOLOS
31.
protocol LoadingPresentable { func
set(progress: CGFloat) } class LoadingViewController: UIViewController, LoadingPresentable { func set(progress: CGFloat) { //... } }
32.
class UserListViewController: UIViewController
{ var loadingView: LoadingPresentable? func loadUsers() { self.loadingView = LoadingViewController() self.addChildViewController(self.loadingView) } }
33.
SWIFT 4 VEM PARA
AJUDAR
34.
COMPOSICAO DE PROTOCOLOS &
CLASSES
35.
class UserListViewController: UIViewController
{ var loadingView: (UIViewController & LoadingPresentable)? func loadUsers() { self.loadingView = LoadingViewController() self.addChildViewController(self.loadingView) //... } }
36.
NOVOS TRADE-OFFS
37.
VER IMPLEMENTAÇÃO VIRA CAÇA
AO TESOURO
38.
BUSCAR NO PROJETO let
store = CoreDataUserStore() let viewController = UserViewController(store: store)
39.
AUMENTA DIFICULDADE DE
ENTENDER DE FATO O QUE ESTA ACONTECENDO QUANDO UM METODO ENVOLVE MUITOS PROTOCOLOS
40.
CONSIDERACOES
41.
NEM SEMPRE TRABALHAR COM
PROTOCOLOS PODE SER NECESSARIO
42.
SE VOCE TIVER
APENAS UMA IMPLEMENTACAO PARA UM PROTOCOLO CONSIDERE A POSSIBILIDADE DE NAO CRIAR O PROTOCOLO
43.
NAO TENTE RESOLVER PROBLEMAS
QUE VIRAO DAQUI 2 MESES HOJE
44.
AMANHA VOCE PODE PERCEBER
QUE ELES NEM SAO MAIS PROBLEMAS
45.
NENHUMA ARQUITETURA E A
SOLUCAO PARA 100% DOS PROJETOS
46.
UTILIZE O QUE
FAZ SENTIDO PARA SEU TIME, DESCARTANDO O DESNECESSARIO
47.
PERGUNTAS?
48.
OBRIGADOBRUNOGB@GMAIL.COM SLACK: @BBILESCKY
Download now