24
COMPARTILHAMENTO DE CÓDIGO COM FRAMEWORKS Renan Protector - @reprotector CocoaHeads RJ - 25/03/2015

Compartilhamento de código com Frameworks - CocoaHeads RJ

Embed Size (px)

Citation preview

Page 1: Compartilhamento de código com Frameworks - CocoaHeads RJ

COMPARTILHAMENTO DE CÓDIGO COM FRAMEWORKS

Renan Protector - @reprotector

CocoaHeads RJ - 25/03/2015

Page 2: Compartilhamento de código com Frameworks - CocoaHeads RJ

QUEM SOU EU?

• Comecei a desenvolver para iOS em 2009 (iOS 3.0)

• Ex-CTO da Ex-Sync Mobile - Software House

• Co-Founder & CTO Blogo

• Co-Founder Space Coworking

Page 3: Compartilhamento de código com Frameworks - CocoaHeads RJ

REFERÊNCIAS

• Building Modern Frameworks: WWDC 2014 - Session 416

• Sharing Code between iOS and OS X: WWDC 2014 Session 233

Page 4: Compartilhamento de código com Frameworks - CocoaHeads RJ

O QUE É UM FRAMEWORK?

• Compartilhamento de recursos

• Código

• Interface

• Etc

Page 5: Compartilhamento de código com Frameworks - CocoaHeads RJ

APLICAÇÕES

• Today Widget

• Features iguais para apps em serie (Software House)

• Compartilhamento de tecnologia entre empresas (ou apps)

• Conectividade a API

Page 6: Compartilhamento de código com Frameworks - CocoaHeads RJ
Page 7: Compartilhamento de código com Frameworks - CocoaHeads RJ

CRIANDO O PROJETO

Page 8: Compartilhamento de código com Frameworks - CocoaHeads RJ

IMPORTANTE: UTILIZE PREFIX

Page 9: Compartilhamento de código com Frameworks - CocoaHeads RJ

ADICIONANDO ARQUIVOS

Page 10: Compartilhamento de código com Frameworks - CocoaHeads RJ

CLASSES PODEM SER• Públicas

• Qualquer um pode ver e usar

• Privadas

• Qualquer um pode ver, mas não deve usar

• Projeto

• Visíveis dentro do projeto apenas

Page 11: Compartilhamento de código com Frameworks - CocoaHeads RJ

DICA: USE @class

• Não importe tudo no seu arquivo .h, apenas o necessário

• Utilize @class sempre que possível

• Benefícios: velocidade de compilação e menor chance de import loop…

Page 12: Compartilhamento de código com Frameworks - CocoaHeads RJ

DICA: USE @class

Page 13: Compartilhamento de código com Frameworks - CocoaHeads RJ

ADICIONANDO NO SEU PROJETO

• Adicionar o projeto ou o archive

• Adicionar e linkar o .framework

• Cocoapods, git submodule, etc são bem vindos

Page 14: Compartilhamento de código com Frameworks - CocoaHeads RJ
Page 15: Compartilhamento de código com Frameworks - CocoaHeads RJ

UTILIZANDO

• #import "NOMEDOSEUFRAMEWORK/ClassName.h"

• Autocomplete só funciona com classes públicas

Page 16: Compartilhamento de código com Frameworks - CocoaHeads RJ
Page 17: Compartilhamento de código com Frameworks - CocoaHeads RJ

DEPENDÊNCIA ENTRE FRAMEWORKS

• Linkar no .framework

• Linkar e adicionar no projeto usando o framework

Page 18: Compartilhamento de código com Frameworks - CocoaHeads RJ
Page 19: Compartilhamento de código com Frameworks - CocoaHeads RJ

PLATFORM SPECIFIC

• Shimming • Shimming

Page 20: Compartilhamento de código com Frameworks - CocoaHeads RJ

SHIMMING

• Cuidado pra não exagerar - Se você tem Shimming no seu código inteiro, melhor refatorar (2 classes, por exemplo)

• Quando Usar? Pedaços pequenos e específicos

• UIView ≠ NSView

Page 21: Compartilhamento de código com Frameworks - CocoaHeads RJ

UIView ≠ NSView • Event Handle

• Drawing

• Event Handle

• Drawing

• Origin Top Left

• Gesture Recognizer

• Rotation

• ….

• Origin bottom left

• Mouse event handling

• Tooltip support

• Drag &Drop

• …

Page 22: Compartilhamento de código com Frameworks - CocoaHeads RJ

• A ordem importa!

• Simulator > iPhone > MAC (São variantes)

• Sim, eu levei um bom tempo pra descobrir isso

Page 23: Compartilhamento de código com Frameworks - CocoaHeads RJ

ISSO FOI SÓ UM GOSTINHO…

MÃOS A OBRA!

Page 24: Compartilhamento de código com Frameworks - CocoaHeads RJ

ESTAMOS CONTRATANDO ;)

[email protected]