Desenvolvendo Apps Desenvolvendo Apps para iOS 6 para iOS 6 Rafael Winter Rafael Winter @rafael_winter @rafael_winter br.linkedin.com/in/rafaelwinter br.linkedin.com/in/rafaelwinter
May 24, 2015
Desenvolvendo AppsDesenvolvendo Appspara iOS 6para iOS 6Rafael WinterRafael Winter
@rafael_winter@rafael_winter
br.linkedin.com/in/rafaelwinterbr.linkedin.com/in/rafaelwinter
@rafael_winter@rafael_winter br.linkedin.com/in/rafaelwinterbr.linkedin.com/in/rafaelwinter
Rafael Rafael WinterWinterMobile DeveloperMobile Developer
AgendaAgenda
Overview do iOS 6Overview do iOS 6
Conceitos Básicos de Conceitos Básicos de Objective-CObjective-C
DemonstraçãoDemonstração
iOS 6iOS 6OverviewOverview
iOS 6iOS 6Camadas do Camadas do SistemaSistema
Principais Serviços Principais Serviços e Frameworkse Frameworks
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
Core Core ServicesServices
ARCARC
Grand Central DispatchGrand Central Dispatch
iCloud StorageiCloud Storage
Block ObjectsBlock Objects
In App PurchasesIn App Purchases
SQLiteSQLite
XML SupportXML Support
MediaMediaGraphicsGraphics
AudioAudio
VideoVideo
AirPlayAirPlay
Cocoa Cocoa TouchTouch
UIKit FrameworkUIKit Framework
StoryboardsStoryboards
External DisplayExternal Display
MultitaskingMultitasking
Push NotificationsPush Notifications
Local NotificationsLocal Notifications
PrintingPrinting
Objective-Objective-CCConceitos BásicosConceitos Básicos
Orientada a Orientada a ObjetosObjetos
DinâmicaDinâmica
Superset de CSuperset de C
Objective-Objective-CC
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
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
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
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
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
Classe de ExemploClasse de Exemplo
MyObject.hMyObject.h MyObject.mMyObject.m
DemoDemo
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
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