Desenvolvendo aplicativos para iOS 6 - Campus Party 2013

Post on 24-May-2015

582 views 2 download

Tags:

description

Apresentação usada na palestra Desenvolvendo Aplicativos para iOS 6, apresentada na Campus Party Brasil #cpbr6

transcript

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