SlideShare uma empresa Scribd logo
iOS Design Patterns
Bruno Guidolim
iOS Software Engineer @ Avenue Code
@bguidolim
Vamos falar do quê?
• O que é design pattern?
• Quais são seu tipos?
• Como devemos usar?
• Um pouco de antipatterns
• Perguntas (se tivermos tempo)
O que é design pattern?
• Padrão de desenvolvimento
• Soluciona problemas comuns de
desenvolvimento de software
• Modelo para facilitar a escrita, compreensão e
reutilização de código
• Código de baixo acoplamento
Tipos de design pattern
• Padrões de criação (creational)
• Padrões estruturais (structural)
• Padrões comportamentais (behavioral)
Creational
• Singleton
UIApplication, NSUserDefaults, UIScreen,
NSFileManager, UIDevice
• Abstract Factory
NSNumber
NSData, NSArray, NSDictionary, NSString
Structural
• MVC (Model, View, Controller)
• Decorator (Category, Delegation)
UITableView, UICollectionView, UIScrollView, UITextField,
UIWebView, UIAlertView, etc…
• Adapter
UITableViewDelegate, UITableViewDataSource, NSCopying
• Facade
UIImage
Behaviorial
• Observer
NSNotificationCenter, Key-Value Observing
• Memento
Archiving, Property List, Core Data
• Command
Target-Action, NSInvocation
E tem mais…
• Estrutural
Composite, Proxy
• Comportamental
Chain of Responsability, Iterator, Mediator
Fontes
• iOS Design Patterns por Eli Ganem

https://www.raywenderlich.com/46988/ios-design-patterns
• Cocoa Design Patterns por Apple Inc.

https://developer.apple.com/legacy/library/documentation/
Cocoa/Conceptual/CocoaFundamentals/
CocoaDesignPatterns/CocoaDesignPatterns.html
DÚVIDAS?(não me pergunte)

Mais conteúdo relacionado

Semelhante a iOS Design Patterns

Design de Interação, Experiência do Usuário e Usabilidade - 2010
Design de Interação, Experiência do Usuário e Usabilidade - 2010Design de Interação, Experiência do Usuário e Usabilidade - 2010
Design de Interação, Experiência do Usuário e Usabilidade - 2010
Mourylise Heymer
 
Milton Onodera - Prototipação para Windows Phone usando o Expression Blend
Milton Onodera - Prototipação para Windows Phone usando o Expression BlendMilton Onodera - Prototipação para Windows Phone usando o Expression Blend
Milton Onodera - Prototipação para Windows Phone usando o Expression Blend
INdT
 
Principles and dimension of a design system
Principles and dimension of a design systemPrinciples and dimension of a design system
Principles and dimension of a design system
marieli cristine lemes
 
Wesley silva design para s40
Wesley silva   design para s40Wesley silva   design para s40
Wesley silva design para s40
INdT
 

Semelhante a iOS Design Patterns (20)

Design de Interação, Experiência do Usuário e Usabilidade - 2010
Design de Interação, Experiência do Usuário e Usabilidade - 2010Design de Interação, Experiência do Usuário e Usabilidade - 2010
Design de Interação, Experiência do Usuário e Usabilidade - 2010
 
UI Design para Desenvolvimento Mobile & Games
UI Design para Desenvolvimento Mobile & GamesUI Design para Desenvolvimento Mobile & Games
UI Design para Desenvolvimento Mobile & Games
 
Milton Onodera - Prototipação para Windows Phone usando o Expression Blend
Milton Onodera - Prototipação para Windows Phone usando o Expression BlendMilton Onodera - Prototipação para Windows Phone usando o Expression Blend
Milton Onodera - Prototipação para Windows Phone usando o Expression Blend
 
Macro Arquitetura de Software
Macro Arquitetura de SoftwareMacro Arquitetura de Software
Macro Arquitetura de Software
 
PHP Anti Patterns
PHP Anti PatternsPHP Anti Patterns
PHP Anti Patterns
 
O que devo procurar em um code review
O que devo procurar em um code review O que devo procurar em um code review
O que devo procurar em um code review
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: Desenvolvedor
 
III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE
III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE
III CAFÉ e CODE - PROVOCAÇÕES DO MESTRE
 
[Ci2015] sim rva
[Ci2015] sim  rva[Ci2015] sim  rva
[Ci2015] sim rva
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de Software
 
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
Processo de Desenvolvimento de Software - Design de Software, Interface, Arqu...
 
Principles and dimension of a design system
Principles and dimension of a design systemPrinciples and dimension of a design system
Principles and dimension of a design system
 
Aula1 dia 22 02 2022.pdf
Aula1  dia 22 02 2022.pdfAula1  dia 22 02 2022.pdf
Aula1 dia 22 02 2022.pdf
 
Introdução a experiência do usuário
Introdução a experiência do usuárioIntrodução a experiência do usuário
Introdução a experiência do usuário
 
[INFNET] Criando layouts em PSD pensando no front-end e back-end
[INFNET] Criando layouts em PSD pensando no front-end e back-end[INFNET] Criando layouts em PSD pensando no front-end e back-end
[INFNET] Criando layouts em PSD pensando no front-end e back-end
 
Cobertura de Código: Testes de Unidade
Cobertura de Código: Testes de UnidadeCobertura de Código: Testes de Unidade
Cobertura de Código: Testes de Unidade
 
UX - UI DESIGN / MÉTODOS
UX - UI DESIGN / MÉTODOSUX - UI DESIGN / MÉTODOS
UX - UI DESIGN / MÉTODOS
 
Design patterns
Design patternsDesign patterns
Design patterns
 
Wesley silva design para s40
Wesley silva   design para s40Wesley silva   design para s40
Wesley silva design para s40
 
Criando aplicações Híbridas com AngularJs, TypeScript e Material Design
Criando aplicações Híbridas com AngularJs, TypeScript e Material DesignCriando aplicações Híbridas com AngularJs, TypeScript e Material Design
Criando aplicações Híbridas com AngularJs, TypeScript e Material Design
 

iOS Design Patterns

  • 1. iOS Design Patterns Bruno Guidolim iOS Software Engineer @ Avenue Code @bguidolim
  • 2. Vamos falar do quê? • O que é design pattern? • Quais são seu tipos? • Como devemos usar? • Um pouco de antipatterns • Perguntas (se tivermos tempo)
  • 3. O que é design pattern? • Padrão de desenvolvimento • Soluciona problemas comuns de desenvolvimento de software • Modelo para facilitar a escrita, compreensão e reutilização de código • Código de baixo acoplamento
  • 4. Tipos de design pattern • Padrões de criação (creational) • Padrões estruturais (structural) • Padrões comportamentais (behavioral)
  • 5. Creational • Singleton UIApplication, NSUserDefaults, UIScreen, NSFileManager, UIDevice • Abstract Factory NSNumber NSData, NSArray, NSDictionary, NSString
  • 6. Structural • MVC (Model, View, Controller) • Decorator (Category, Delegation) UITableView, UICollectionView, UIScrollView, UITextField, UIWebView, UIAlertView, etc… • Adapter UITableViewDelegate, UITableViewDataSource, NSCopying • Facade UIImage
  • 7. Behaviorial • Observer NSNotificationCenter, Key-Value Observing • Memento Archiving, Property List, Core Data • Command Target-Action, NSInvocation
  • 8. E tem mais… • Estrutural Composite, Proxy • Comportamental Chain of Responsability, Iterator, Mediator
  • 9. Fontes • iOS Design Patterns por Eli Ganem
 https://www.raywenderlich.com/46988/ios-design-patterns • Cocoa Design Patterns por Apple Inc.
 https://developer.apple.com/legacy/library/documentation/ Cocoa/Conceptual/CocoaFundamentals/ CocoaDesignPatterns/CocoaDesignPatterns.html