desenvolvendo aplicativos para ios 6 - campus party 2013
DESCRIPTION
Apresentação usada na palestra Desenvolvendo Aplicativos para iOS 6, apresentada na Campus Party Brasil #cpbr6TRANSCRIPT
![Page 1: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/1.jpg)
Desenvolvendo AppsDesenvolvendo Appspara iOS 6para iOS 6Rafael WinterRafael Winter
@rafael_winter@rafael_winter
br.linkedin.com/in/rafaelwinterbr.linkedin.com/in/rafaelwinter
![Page 2: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/2.jpg)
@rafael_winter@rafael_winter br.linkedin.com/in/rafaelwinterbr.linkedin.com/in/rafaelwinter
Rafael Rafael WinterWinterMobile DeveloperMobile Developer
![Page 3: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/3.jpg)
AgendaAgenda
Overview do iOS 6Overview do iOS 6
Conceitos Básicos de Conceitos Básicos de Objective-CObjective-C
DemonstraçãoDemonstração
![Page 4: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/4.jpg)
iOS 6iOS 6OverviewOverview
![Page 5: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/5.jpg)
iOS 6iOS 6Camadas do Camadas do SistemaSistema
Principais Serviços Principais Serviços e Frameworkse Frameworks
![Page 6: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/6.jpg)
Core OSCore OS
Camada de baixo nívelCamada de baixo nível
Inclui o Kernel (Darwin)Inclui o Kernel (Darwin)
Accelerate FrameworkAccelerate Framework
External Accessory External Accessory FrameworkFramework
SecuritySecurity
System LibrarySystem Library
![Page 7: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/7.jpg)
Core Core ServicesServices
ARCARC
Grand Central DispatchGrand Central Dispatch
iCloud StorageiCloud Storage
Block ObjectsBlock Objects
In App PurchasesIn App Purchases
SQLiteSQLite
XML SupportXML Support
![Page 8: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/8.jpg)
MediaMediaGraphicsGraphics
AudioAudio
VideoVideo
AirPlayAirPlay
![Page 9: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/9.jpg)
Cocoa Cocoa TouchTouch
UIKit FrameworkUIKit Framework
StoryboardsStoryboards
External DisplayExternal Display
MultitaskingMultitasking
Push NotificationsPush Notifications
Local NotificationsLocal Notifications
PrintingPrinting
![Page 10: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/10.jpg)
Objective-Objective-CCConceitos BásicosConceitos Básicos
![Page 11: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/11.jpg)
Orientada a Orientada a ObjetosObjetos
DinâmicaDinâmica
Superset de CSuperset de C
Objective-Objective-CC
![Page 12: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/12.jpg)
Objective-Objective-CCCaindo de Caindo de ParaquedasParaquedas
Interface e Interface e implementaçãoimplementação
InstanciaçãoInstanciação
Métodos e mensagensMétodos e mensagens
Gerencia de memóriaGerencia de memória
Classe de exemploClasse de exemplo
![Page 13: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/13.jpg)
Interface e Interface e ImplementaçãoImplementação• A definição de uma classe é dividida em duas A definição de uma classe é dividida em duas
partespartes
• @interface@interface expõe a interface da classe expõe a interface da classe
• @implementation@implementation contém a implementação dos contém a implementação dos métodosmétodos
• Separadas fisicamente em arquivos Separadas fisicamente em arquivos .h.h e e .m.m
![Page 14: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/14.jpg)
InstanciaçãoInstanciação
• Instâncias são criadas em duas etapasInstâncias são criadas em duas etapas
• AlocaçãoAlocação cria o objeto zerado na memória virtual cria o objeto zerado na memória virtual
• InicializaçãoInicialização prepara o objeto com valores prepara o objeto com valores iniciaisiniciais
• É feita através dos métodos É feita através dos métodos allocalloc e e initinit
• Pode ser feita através de métodos de classe Pode ser feita através de métodos de classe utilitáriosutilitários
![Page 15: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/15.jpg)
Métodos e MensagensMétodos e Mensagens
• Métodos não são executados diretamenteMétodos não são executados diretamente
• Execução via Execução via MensagensMensagens
• A instância recebe uma mensagem e verifica se A instância recebe uma mensagem e verifica se possui um método para respondê-lapossui um método para respondê-la
• Gera uma exceção caso não possa responder a Gera uma exceção caso não possa responder a mensagemmensagem
• Permite o dinamismo porém impacta o tempo de Permite o dinamismo porém impacta o tempo de execuçãoexecução
![Page 16: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/16.jpg)
Gerência de MemóriaGerência de Memória
• Feita pelo runtime através de contadores de Feita pelo runtime através de contadores de referênciareferência
• Eram controlados manualmente pelo Eram controlados manualmente pelo programadorprogramador
• Agora é tudo gerenciado pelo Agora é tudo gerenciado pelo ARCARC
![Page 17: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/17.jpg)
Classe de ExemploClasse de Exemplo
MyObject.hMyObject.h MyObject.mMyObject.m
![Page 18: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/18.jpg)
DemoDemo
![Page 19: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/19.jpg)
![Page 20: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/20.jpg)
ReferênciaReferênciassProgramming With Objective-C: http://migre.me/d1kbE
Concepts in Objective-C Programming: Concepts in Objective-C Programming: http://migre.me/d1kfQhttp://migre.me/d1kfQ
Humor: Humor: http://desciclopedia.ws/wiki/Objective-C
![Page 21: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013](https://reader034.vdocument.in/reader034/viewer/2022052619/5560b2d6d8b42afe3b8b477a/html5/thumbnails/21.jpg)
Obrigado!Obrigado!Obrigado!Obrigado!:D:D:D:D
@rafael_winter@rafael_winter@rafael_winter@rafael_winter
br.linkedin.com/in/rafaelwinterbr.linkedin.com/in/rafaelwinterbr.linkedin.com/in/rafaelwinterbr.linkedin.com/in/rafaelwinter