Top Banner
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
21

Desenvolvendo aplicativos para iOS 6 - Campus Party 2013

May 24, 2015

Download

Technology

Rafael Winter

Apresentação usada na palestra Desenvolvendo Aplicativos para iOS 6, apresentada na Campus Party Brasil #cpbr6
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013

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

@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

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

iOS 6iOS 6OverviewOverview

Page 5: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013

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

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

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

MediaMediaGraphicsGraphics

AudioAudio

VideoVideo

AirPlayAirPlay

Page 9: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013

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

Objective-Objective-CCConceitos BásicosConceitos Básicos

Page 11: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013

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

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

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

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

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

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

Classe de ExemploClasse de Exemplo

MyObject.hMyObject.h MyObject.mMyObject.m

Page 18: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013

DemoDemo

Page 19: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013
Page 20: Desenvolvendo aplicativos para iOS 6 - Campus Party 2013

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

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