SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
COMPARTILHAMENTO DE CÓDIGO COM
FRAMEWORKS
Renan Protector - @reprotector
CocoaHeads RJ - 25/03/2015
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
REFERÊNCIAS
• Building Modern Frameworks: WWDC 2014 - Session
416
• Sharing Code between iOS and OS X: WWDC 2014
Session 233
O QUE É UM FRAMEWORK?
• Compartilhamento de recursos
• Código
• Interface
• Etc
APLICAÇÕES
• Today Widget
• Features iguais para apps em serie (Software House)
• Compartilhamento de tecnologia entre empresas (ou
apps)
• Conectividade a API
CRIANDO O PROJETO
IMPORTANTE: UTILIZE PREFIX
ADICIONANDO ARQUIVOS
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
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…
DICA: USE @class
ADICIONANDO NO SEU PROJETO
• Adicionar o projeto ou o archive
• Adicionar e linkar o .framework
• Cocoapods, git submodule, etc são bem vindos
UTILIZANDO
• #import "NOMEDOSEUFRAMEWORK/ClassName.h"
• Autocomplete só funciona com classes públicas
DEPENDÊNCIA ENTRE
FRAMEWORKS
• Linkar no .framework
• Linkar e adicionar no projeto usando o framework
PLATFORM SPECIFIC
• Shimming • Shimming
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
UIView ≠ NSView
• Event Handle
• Drawing
• Event Handle
• Drawing
• Origin Top Left
• Gesture Recognizer
• Rotation
• ….
• Origin bottom left
• Mouse event handling
• Tooltip support
• Drag &Drop
• …
• A ordem importa!
• Simulator > iPhone > MAC (São variantes)
• Sim, eu levei um bom tempo pra descobrir isso
ISSO FOI SÓ UM GOSTINHO…
MÃOS A OBRA!
ESTAMOS CONTRATANDO ;)
jobs@getblogo.com

Weitere ähnliche Inhalte

Was ist angesagt?

Construindo uma API, Client e Documentação usando Silex, Angular e Swagger
Construindo uma API, Client e Documentação usando Silex, Angular e SwaggerConstruindo uma API, Client e Documentação usando Silex, Angular e Swagger
Construindo uma API, Client e Documentação usando Silex, Angular e SwaggerDelermando Santos Miranda
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front endDouglas Matoso
 
Trabalhando de forma profissional com silex
Trabalhando de forma profissional com silexTrabalhando de forma profissional com silex
Trabalhando de forma profissional com silexMichael Douglas
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometemFernando Henriques
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e AlémAndre Baltieri
 
Xamarin summit 2020 : Plugins e Controles para Xamarin.Forms 
Xamarin summit 2020 : Plugins e Controles para Xamarin.Forms Xamarin summit 2020 : Plugins e Controles para Xamarin.Forms 
Xamarin summit 2020 : Plugins e Controles para Xamarin.Forms Thiago Bertuzzi
 
As novidades do WordPress 3.9 e como aumentar a produtividade trabalhando com...
As novidades do WordPress 3.9 e como aumentar a produtividade trabalhando com...As novidades do WordPress 3.9 e como aumentar a produtividade trabalhando com...
As novidades do WordPress 3.9 e como aumentar a produtividade trabalhando com...WordPress Bahia
 
WordCamp Rio de Janeiro 2016 - Vinícius Lourenço | Lojas Virtuais Descomplica...
WordCamp Rio de Janeiro 2016 - Vinícius Lourenço | Lojas Virtuais Descomplica...WordCamp Rio de Janeiro 2016 - Vinícius Lourenço | Lojas Virtuais Descomplica...
WordCamp Rio de Janeiro 2016 - Vinícius Lourenço | Lojas Virtuais Descomplica...Vinícius Lourenço
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Criciúma Dev
 
JavaFX: Desktop para desenvolvedores WEB
JavaFX: Desktop para desenvolvedores WEBJavaFX: Desktop para desenvolvedores WEB
JavaFX: Desktop para desenvolvedores WEBjesuinoPower
 
Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!Glauton Vieira
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Tiago Hillebrandt
 
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...Edison Costa
 
Aplicações ricas com JavaFX 2
Aplicações ricas com JavaFX 2Aplicações ricas com JavaFX 2
Aplicações ricas com JavaFX 2Claudiney Marques
 

Was ist angesagt? (20)

Construindo uma API, Client e Documentação usando Silex, Angular e Swagger
Construindo uma API, Client e Documentação usando Silex, Angular e SwaggerConstruindo uma API, Client e Documentação usando Silex, Angular e Swagger
Construindo uma API, Client e Documentação usando Silex, Angular e Swagger
 
Blazor #SnetTalks3
Blazor  #SnetTalks3Blazor  #SnetTalks3
Blazor #SnetTalks3
 
JavaFX 2
JavaFX 2JavaFX 2
JavaFX 2
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front end
 
[OFICINA JAVA] - Conhecendo Java
[OFICINA JAVA] - Conhecendo Java[OFICINA JAVA] - Conhecendo Java
[OFICINA JAVA] - Conhecendo Java
 
Trabalhando de forma profissional com silex
Trabalhando de forma profissional com silexTrabalhando de forma profissional com silex
Trabalhando de forma profissional com silex
 
9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem9 erros que desenvolvedores Node.js cometem
9 erros que desenvolvedores Node.js cometem
 
Angular 2, TypeScript e Além
Angular 2, TypeScript e AlémAngular 2, TypeScript e Além
Angular 2, TypeScript e Além
 
Xamarin summit 2020 : Plugins e Controles para Xamarin.Forms 
Xamarin summit 2020 : Plugins e Controles para Xamarin.Forms Xamarin summit 2020 : Plugins e Controles para Xamarin.Forms 
Xamarin summit 2020 : Plugins e Controles para Xamarin.Forms 
 
BaaS com Firebase 3
BaaS com Firebase 3BaaS com Firebase 3
BaaS com Firebase 3
 
Middlewares ASP.NET
Middlewares ASP.NETMiddlewares ASP.NET
Middlewares ASP.NET
 
As novidades do WordPress 3.9 e como aumentar a produtividade trabalhando com...
As novidades do WordPress 3.9 e como aumentar a produtividade trabalhando com...As novidades do WordPress 3.9 e como aumentar a produtividade trabalhando com...
As novidades do WordPress 3.9 e como aumentar a produtividade trabalhando com...
 
WordCamp Rio de Janeiro 2016 - Vinícius Lourenço | Lojas Virtuais Descomplica...
WordCamp Rio de Janeiro 2016 - Vinícius Lourenço | Lojas Virtuais Descomplica...WordCamp Rio de Janeiro 2016 - Vinícius Lourenço | Lojas Virtuais Descomplica...
WordCamp Rio de Janeiro 2016 - Vinícius Lourenço | Lojas Virtuais Descomplica...
 
Javafx
JavafxJavafx
Javafx
 
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
Desenvolvimento Mobile Multiplataforma: Uma abordagem ágil e de alto desempen...
 
JavaFX: Desktop para desenvolvedores WEB
JavaFX: Desktop para desenvolvedores WEBJavaFX: Desktop para desenvolvedores WEB
JavaFX: Desktop para desenvolvedores WEB
 
Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!Vagrant: Na sua máquina também funciona!
Vagrant: Na sua máquina também funciona!
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
 
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...
Ambiente de desenvolvimento para aplicações em WordPress com Vagrant, Compose...
 
Aplicações ricas com JavaFX 2
Aplicações ricas com JavaFX 2Aplicações ricas com JavaFX 2
Aplicações ricas com JavaFX 2
 

Ähnlich wie Compartilhamento de código com Frameworks - CocoaHeads RJ

Integração Contínua com Hudson
Integração Contínua com HudsonIntegração Contínua com Hudson
Integração Contínua com HudsonLuis Reis
 
Automatizando tudo no mundo mobile com fastlane
Automatizando tudo no mundo mobile com fastlaneAutomatizando tudo no mundo mobile com fastlane
Automatizando tudo no mundo mobile com fastlaneakamud
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Renato Groff
 
Zend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteZend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteMichael Cardoso
 
RIA e Flex - Dando formas à Inovação
RIA e Flex - Dando formas à InovaçãoRIA e Flex - Dando formas à Inovação
RIA e Flex - Dando formas à InovaçãoLeonardo Braga
 
Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...
Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...
Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...Renato Groff
 
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Renato Groff
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013javamanrj
 
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone AppsComo deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone AppsComunidade NetPonto
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHPRangel Javier
 
Componentizando a Web com Polymer
Componentizando a Web com PolymerComponentizando a Web com Polymer
Componentizando a Web com PolymerStefan Horochovec
 
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Renato Groff
 
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Renato Groff
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendThiago Sinésio
 
Palestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o ZeanworkPalestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o ZeanworkJosemar Davi Luedke
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Renato Groff
 
Ambiente de CI/CD com Google Cloud
Ambiente de CI/CD com Google CloudAmbiente de CI/CD com Google Cloud
Ambiente de CI/CD com Google CloudAlvaro Viebrantz
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsRafael Salerno de Oliveira
 
Construindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsConstruindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsCamila Carrera
 

Ähnlich wie Compartilhamento de código com Frameworks - CocoaHeads RJ (20)

Integração Contínua com Hudson
Integração Contínua com HudsonIntegração Contínua com Hudson
Integração Contínua com Hudson
 
Automatizando tudo no mundo mobile com fastlane
Automatizando tudo no mundo mobile com fastlaneAutomatizando tudo no mundo mobile com fastlane
Automatizando tudo no mundo mobile com fastlane
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Se...
 
Zend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil CompetenteZend Framework 2 - Desenvolvimento Ágil Competente
Zend Framework 2 - Desenvolvimento Ágil Competente
 
RIA e Flex - Dando formas à Inovação
RIA e Flex - Dando formas à InovaçãoRIA e Flex - Dando formas à Inovação
RIA e Flex - Dando formas à Inovação
 
Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...
Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...
Simplificando a montagem de ambientes de Dev/Testes com Docker - Interop Summ...
 
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
 
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone AppsComo deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
Como deixar de fazer "copy and paste" entre Windows Store e Windows Phone Apps
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Componentizando a Web com Polymer
Componentizando a Web com PolymerComponentizando a Web com Polymer
Componentizando a Web com Polymer
 
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
 
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
Palestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o ZeanworkPalestra na Faccat sobre o Zeanwork
Palestra na Faccat sobre o Zeanwork
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
Docker de ponta a ponta: do Desenvolvimento à Nuvem - UNICID - Novembro-2019
 
Ambiente de CI/CD com Google Cloud
Ambiente de CI/CD com Google CloudAmbiente de CI/CD com Google Cloud
Ambiente de CI/CD com Google Cloud
 
Alagoas Dev Day
Alagoas Dev DayAlagoas Dev Day
Alagoas Dev Day
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
 
Construindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsConstruindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOps
 

Compartilhamento de código com Frameworks - CocoaHeads RJ