75
iOS - Primeiros passos Desenvolvimento nativo com Objective-C

Primeiros passos no iOS com Objective-C

  • Upload
    osnipso

  • View
    2.693

  • Download
    0

Embed Size (px)

DESCRIPTION

Presented at MobileConf 2013, Brazil. The content is in Brazilian Portuguese. Some background on Apple tools for iOS development, such as Xcode. Shows the first steps to beginners looking to develop a first app, explaining fundamentals such as Views, Actions and Outlets. Also, a primer on Objective-C syntax, comparing to other well-known Object-Oriented languages such as Java and C#. Caelum IP-67 course on iOS (in Brazilian Portuguese): http://www.caelum.com.br/curso-ios-iphone-ipad/ "iOS: Programe para iPhone e iPad" book, by Rafael Steil (in Brazilian Portuguese): http://www.casadocodigo.com.br/products/livro-iphone-ipad-ios

Citation preview

Page 1: Primeiros passos no iOS com Objective-C

iOS - Primeiros passosDesenvolvimento nativo com Objective-C

Page 2: Primeiros passos no iOS com Objective-C

Osni Oliveira

[email protected]@osnipso

Quem?

Page 3: Primeiros passos no iOS com Objective-C

iOS

iPhone / iPhone OS

iPad -> iOS

Veio do Mac OS X

iPhone, iPod touch, iPad, Apple TV

Page 4: Primeiros passos no iOS com Objective-C

Mac OS X

Veio do NeXTSTEP

Page 5: Primeiros passos no iOS com Objective-C

NeXTSTEPUnix-like

Mach kernel

BSD

API Orientada a Objetos

Objective-C

Page 6: Primeiros passos no iOS com Objective-C

No princípio, era...

Project Builder (código)

Interface Builder (interface)

Page 7: Primeiros passos no iOS com Objective-C

Crise de identidade

Project Builder virou Xcode

Page 8: Primeiros passos no iOS com Objective-C

Identidade

Interface Builder... ficou sendo Interface Builder, mesmo!

Integrado a partir do Xcode 4.x

Page 9: Primeiros passos no iOS com Objective-C

Objective-C

1983 (!)

Stepstone (?)

Smalltalk ... não é Simula!

NeXT - 1988

Page 10: Primeiros passos no iOS com Objective-C

Objective-C

Mensagem... não é método! (mas é quase)

É resolvido em tempo de execução, não em... blá, blá, blá

Page 11: Primeiros passos no iOS com Objective-C

Perguntas, perguntas...

Precisa ser em Objective-C?

Page 12: Primeiros passos no iOS com Objective-C

NÃO!

Page 13: Primeiros passos no iOS com Objective-C

Hã?

RubyMotion

Xamarin (C# / .NET)

Page 14: Primeiros passos no iOS com Objective-C

Por que Objective-C?

OFICIAL

Mais utilizado

BOM

... *cof* C *cof*

Page 15: Primeiros passos no iOS com Objective-C

Perguntas, perguntas...

Preciso de um Mac?

Page 16: Primeiros passos no iOS com Objective-C

SIM!

Page 17: Primeiros passos no iOS com Objective-C

Calma, explico...

Na verdade, precisa do Xcode...

Page 18: Primeiros passos no iOS com Objective-C

Calma, explico...

O Xcode só roda no Mac OS X...

Page 19: Primeiros passos no iOS com Objective-C

Calma, explico...

... e o Mac OS X só é licenciado para executar em hardware Apple

OU SEJA, MAC!

Page 20: Primeiros passos no iOS com Objective-C

Perguntas, perguntas...

MESMO?

Page 21: Primeiros passos no iOS com Objective-C

Pois é...

Virtual Machine

“Hackintosh”

Page 22: Primeiros passos no iOS com Objective-C

Está certo disso?

Page 23: Primeiros passos no iOS com Objective-C

Posso perguntar?

Page 24: Primeiros passos no iOS com Objective-C

Como sou esperto...

Difícil

Trabalhoso

Problemas

Page 25: Primeiros passos no iOS com Objective-C

Quer brincar, quer brincar?

Ah, então, tá bom!

Page 26: Primeiros passos no iOS com Objective-C

Pretende trabalhar?

Por que não comprar um Mac?

Page 27: Primeiros passos no iOS com Objective-C

Checklist...Macintosh

OS X Lion / OS X Mountain LionXcode & etc.

iOS SDK... shall we?

Page 28: Primeiros passos no iOS com Objective-C

Eba, código!

Page 29: Primeiros passos no iOS com Objective-C

iOS Simulator

Não é emulador

x86_64

Roda o iOS, né...

Page 30: Primeiros passos no iOS com Objective-C

Parabéns!

Exibiu tela em branco

Ainda tomou bronca!

Page 31: Primeiros passos no iOS com Objective-C

Como assim?

Vamos pensar... o que acontece quando executa?

Page 32: Primeiros passos no iOS com Objective-C

main()

Opa, como não?

Program loop? Nah... MUITO MAIS LEGAL

Page 33: Primeiros passos no iOS com Objective-C

“Sabonetou”...

main() é o chefe

O que o chefe sabe fazer?

Page 34: Primeiros passos no iOS com Objective-C

Quer que desenhe?

AppiOS

Delegatemensagens

1

2

3

Page 35: Primeiros passos no iOS com Objective-C

Delegate, putz!

É quem realmente faz as coisas

Em outras palavras, recebe as mensagens

Page 36: Primeiros passos no iOS com Objective-C

E o que fazer?

Mostra, mostra...

Page 37: Primeiros passos no iOS com Objective-C

View

Está na tela, é View

Sério. Mesmo.

Page 38: Primeiros passos no iOS com Objective-C

E jogos?

Também!

View especial

Page 39: Primeiros passos no iOS com Objective-C

Achievement

Achievement unlocked: View

Importante

Só, queridão?

Page 40: Primeiros passos no iOS com Objective-C

Então, cria!

Page 41: Primeiros passos no iOS com Objective-C

Sintaxe?

Opa, a sintaxe, claro...CMCViewController *viewController = [[CMCViewController alloc] init];

CMCViewController viewController = new CMCViewController();

Page 42: Primeiros passos no iOS com Objective-C

Propriedades

Uso de dotNotationself.window.rootViewController = viewController;

Preserva a sanidade! Duvida?

Page 43: Primeiros passos no iOS com Objective-C

Propriedades

Toma essa![[self window] setRootViewController:viewController];

Page 44: Primeiros passos no iOS com Objective-C

Propriedades

Mais fácil comparar:self.window.rootViewController = viewController;

[[self window] setRootViewController:viewController];

Page 45: Primeiros passos no iOS com Objective-C

Mensagens, em geral...

[alvo seletor];

[target selector];

Mais ou menos como:target.selector();

Page 46: Primeiros passos no iOS com Objective-C

Ah, nem é difícil...

Vamos combinar:Consegue ler? Use dotNotationErrou? Treine!

Page 47: Primeiros passos no iOS com Objective-C

Que mais?

Começando a ficar interessante...

Editar View?

Page 48: Primeiros passos no iOS com Objective-C

Vamos tentar...

Page 49: Primeiros passos no iOS com Objective-C

Grandes poderes...

Vantagem: ferramentas para interface

iOS Human Interface Guidelines

Page 50: Primeiros passos no iOS com Objective-C

...e vice-versa...

Construir via código

Escolha

Vantagens e desvantagens

Pode usar XIB!

Page 51: Primeiros passos no iOS com Objective-C

Empolgou...

Page 52: Primeiros passos no iOS com Objective-C

Nananinanão...

Não é RAD!

View é View, código... é ViewController!

Uma coisa é uma coisa...

Page 53: Primeiros passos no iOS com Objective-C

Mission: possible

Nós temos que juntar os dois mundos

Como? Vem comigo...

Page 54: Primeiros passos no iOS com Objective-C

Arraste-me!

Page 55: Primeiros passos no iOS com Objective-C

Sintaxe? De novo?

Opa, a sintaxe, claro...- (IBAction)myButton_OnTouchUpInside:(id)sender;

void myButton_OnTouchUpInside(Object sender);

Page 56: Primeiros passos no iOS com Objective-C

Sintaxe? De novo?

- (IBAction)myButton_OnTouchUpInside:(id)sender;

Mensagem de instância / classeParênteses: tipoRetornoNome

Page 57: Primeiros passos no iOS com Objective-C

Sintaxe? De novo?

- (IBAction)myButton_OnTouchUpInside:(id)sender;

Dois pontos: parâmetroParênteses: tipo (parâmetro)Nome (parâmetro)

Page 58: Primeiros passos no iOS com Objective-C

Ah, não...

Como assim, mais de um?

Pode ser daqui a pouco?

Beleza, segura aí!

Page 59: Primeiros passos no iOS com Objective-C

Ah, sim, tem o Log...

Como assim, função?

Page 60: Primeiros passos no iOS com Objective-C

Se souber usar...

Page 61: Primeiros passos no iOS com Objective-C

Roda e avisa!

Page 62: Primeiros passos no iOS com Objective-C

Achievement

Achievement unlocked: Action

Importante

Eventos -> Mensagens

Page 63: Primeiros passos no iOS com Objective-C

Agora vai!

Page 64: Primeiros passos no iOS com Objective-C

Não foi... ainda!

Não é RAD! - x2

Precisa conectar

“Tomada” pra conectar o “plug”

Page 65: Primeiros passos no iOS com Objective-C

Vai, filhão!

Page 66: Primeiros passos no iOS com Objective-C

Quase...

Page 67: Primeiros passos no iOS com Objective-C

Ah, bom!

Page 68: Primeiros passos no iOS com Objective-C

Achievement

Achievement unlocked: Outlet

Importante

Código -> View

Page 69: Primeiros passos no iOS com Objective-C

É pouco, mas...Três conceitos principais:

View

Action

Outlet

Dá pra fazer bastante!

Page 70: Primeiros passos no iOS com Objective-C

Só isso?

Sempre tem um “D’Artagnan”...

Lembra do Delegate? Então...

Page 71: Primeiros passos no iOS com Objective-C

E agora?Que tal estudar C?

Que tal estudar Objective-C?

Que tal estudar as APIs? Cocoa touch

Que tal estudar MAIS Objective-C?

Page 72: Primeiros passos no iOS com Objective-C

Passa lá!Tem o IP-67 na Caelum! :-)

Tem o livro do Steil na Casa do Código! :-)

Pode ser, eventualmente, talvez...

Page 73: Primeiros passos no iOS com Objective-C

Palavras ao vento...

Inicializadores (init)ProtocolosFoundation (NSObject, NSString, etc.)

Page 74: Primeiros passos no iOS com Objective-C

Ah, eu prometi? Sério?- (void)exibeUmaMensagem:(NSString *)umaMensagem eOutraMensagem:(NSString *)outraMensagem;

Cuidado!exibeUmaMensagem:eOutraMensagem:

Lembra do seletor...[self exibeUmaMensagem:@"That's all," eOutraMensagem:@"Folks!"];

this.exibeUmaMensagem("That's all,", "Folks!");