criando aplicativos para iphone e Uma Abordagem Prática Do nível Básico ao Avançado ipad Luiz Carlos Querino Filho Novatec
Copyright 2013 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates Revisão gramatical: Marta Almeida de Sá Editoração eletrônica: Carolina Kuwabata Capa: Isabela Berger ISBN: 978-85-7522-317-8 Histórico de impressões: Março/2013 Primeira edição Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 São Paulo, SP Brasil Tel.: +55 11 2959-6529 Fax: +55 11 2950-8869 E-mail: novatec@novatec.com.br Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec Dados Internacionais de Catalogação na Publicação (CIP) (Câmara Brasileira do Livro, SP, Brasil) Querino Filho, Luiz Carlos Criando aplicativos para iphone e ipad : uma abordagem prática do nível básico ao avançado / Luiz Carlos Querino Filho. -- São Paulo : Novatec Editora, 2013. Bibliografia. ISBN 978-85-7522-317-8 1. Aplicação de programas - Desenvolvimento 2. Computação móvel 3. ios (Plataforma) 4. ipad 5. iphone 6. Sistemas operacionais (Computador) I. Título. 13-02590 CDD-005.26 Índices para catálogo sistemático: 1. Sistema operacional ios : Plataforma de desenvolvimento de aplicativos para dispositivos móveis da Apple : Programa de computador 005.26 VC20130313
Sumário Capítulo 1 Introdução ao ios: o coração do iphone e do ipad... 14 1.1 iphone: a Apple inicia mais uma revolução no mercado... 15 1.2 Lançamento do iphone SDK... 17 1.3 ipad: muito mais que um iphone de tela grande... 19 1.4 ios como uma plataforma de desenvolvimento...20 1.5 25 bilhões de apps baixados e esse número está aumentando... 21 Capítulo 2 Preparando o ambiente de desenvolvimento... 24 2.1 Requisitos para desenvolver para iphone e ipad... 24 2.2 Obtendo e instalando o Xcode...25 2.3 Inscrevendo-se no ios Developer Program (opcional)...27 2.4 Um conversor de moeda, só pra começar...34 Capítulo 3 Linguagem C: o alicerce da programação para ios... 70 3.1 Um programa C no Mac... 71 3.2 Variáveis, tipos básicos, vetores e structs...79 3.3 Estruturas de repetição...82 3.4 Estruturas de controle de fluxo e decisão...84 3.5 Funções...86 3.6 Ponteiros...88 3.7 O que muda daqui para a frente...90 Capítulo 4 Programação Orientada a Objetos um novo modelo de desenvolvimento... 92 4.1 Programação Orientada a Objetos x Programação Estruturada...93 4.2 Classes e objetos, métodos e atributos...95 4.3 Encapsulamento...97 4.4 Herança...99 4.5 Protocolos... 100 7
8 Criando aplicativos para iphone e ipad Capítulo 5 A linguagem Objective-C: orientação a objetos na prática... 101 5.1 Criando um programa básico em Objective-C... 102 5.2 Utilizando objetos e passando mensagens... 106 5.3 Criando uma nova classe... 114 5.4 Definindo variáveis de instância e métodos de acesso...118 5.5 Criando um inicializador... 125 5.6 Coleções de objetos... 129 5.7 Propriedades e gerenciamento de memória...133 5.8 Resumo de classes essenciais do framework Cocoa Touch...139 Capítulo 6 Uma aplicação básica para o iphone... 153 6.1 Frameworks e padrões de projeto essenciais... 153 6.3 Revisando a estrutura básica de um projeto iphone e aprimorando o aplicativo... 182 6.4 Executando o aplicativo no aparelho físico... 187 6.5 Usando o debugger para encontrar erros... 190 6.6 Enviando seu aplicativo para a App Store... 193 Capítulo 7 Enriquecendo a interface com o UIKit... 198 7.1 UIView: a base de todos os objetos visuais... 198 7.2 Criando o projeto IMCRapido e o seu modelo... 199 7.3 UISlider...201 7.4 UIDatePicker... 208 7.5 UISwitch...210 7.6 Alertas...214 Capítulo 8 Reconhecimento de gestos, animação e desenho... 217 8.1 Criando o projeto Desenhando e sua interface...218 8.2 Adicionando as figuras à tela... 225 8.3 UIGestureRecognizer... 228 8.4 Eliminando (e animando) as coisas... 240 8.5 Desenhando com o toque do dedo usando Quartz... 243 Capítulo 9 Criando uma aplicação com múltiplas telas e com suporte ao ipad... 250 9.1 Um controlador para cada tela... 250 9.2 Abrindo mais telas... 253
Sumário 9 9.3 Passando valores entre telas da maneira correta usando delegação... 258 9.4 Outros tipos de controladores de tela... 263 9.5 Dando suporte ao ipad no seu aplicativo... 279 Capítulo 10 Informações em tabelas com UITableView... 283 10.1 Criando o projeto ListaDeCompras e adicionando um UITableViewController..284 10.2 Criando a classe modelo... 289 10.3 Implementando o controlador com UITableViewController... 292 10.4 Incluindo e excluindo produtos na lista... 297 Capítulo 11 Armazenamento de dados com Core Data... 305 11.1 Core Data mapeamento objeto-relacional... 305 11.2 Criando o modelo de objetos... 307 11.3 Adicionando o framework Core Data ao projeto...310 11.4 A classe LDCProduto como subclasse de NSManagedObject...312 11.5 Adaptando a classe do modelo para usar Core Data...314 11.6 Usando CoreData com UITableView e adaptando a inclusão...321 Capítulo 12 Onde estou? Para onde vou? GPS com Core Location e MapView... 325 12.1 Criando o projeto Caminhada com Core Location e MapKit... 326 12.2 Classes para obtenção da localização: CLLocation e CLLocationManager... 330 12.3 Visualizando mapas com MKMapView... 334 12.4 Testando no emulador... 338 Capítulo 13 Acelerômetro, giroscópio e bússola: detectando o movimento... 339 13.1 Diferenças entre o acelerômetro, o giroscópio e a bússola... 340 13.2 O framework Core Motion...341 13.3 Usando o acelerômetro com a classe CMAccelerometerData... 343 13.4 Funcionamento básico do giroscópio usando a classe CMGyroData... 353 13.5 Obtendo a direção da bússola em graus com CLLocationManager... 355 Capítulo 14 icloud: o seu aplicativo na nuvem... 357 14.1 O que o icloud pode fazer para o seu aplicativo... 358 14.2 Criando um projeto para a nuvem...360 14.3 Definindo um container icloud para seu aplicativo... 365 14.4 Armazenando e recuperando documentos na nuvem...366
10 Criando aplicativos para iphone e ipad Capítulo 15 Áudio e multimídia... 375 15.1 Reproduzindo arquivos de áudio em um aplicativo... 376 15.2 Gravando arquivos de áudio...381 15.3 Acesso à câmera e à biblioteca de fotos...386 Capítulo 16 Usando OpenGL e GLKit... 389 16.1 OpenGL x GLKit: qual utilizar? Conceitos básicos de OpenGL... 390 16.2 GLKit: criando um novo projeto e uma classe para Sprites... 392 16.3 Implementando a lógica do jogo PegandoLaranja...400 Capítulo 17 Acesso a Web Services e APIs de redes sociais... 409 17.1 Entendendo melhor os Web Services...409 17.2 Acessando serviços e recebendo dados em formato JSON... 411 17.3 Utilizando a API do Twitter: acesso a uma linha do tempo (timeline)...413 17.4 Publicando no Facebook e no Twitter com o framework Social...419 Capítulo 18 Internacionalização: o seu aplicativo globalizado... 424 18.1 Preparando um projeto para ser internacionalizado... 425 18.2 Criando telas em diferentes línguas... 429 18.3 Preparando as strings do código para tradução automática... 429 Capítulo 19 Integrando anúncios ao aplicativo... 436 19.1 Considerações sobre o uso de anúncios... 436 19.2 Incluindo anúncios Google AdMob no seu projeto... 437 19.3 Utilizando anúncios iad da Apple... 450 Capítulo 20 Resumo das novidades do ios 6... 453 20.1 Resumo das principais novidades do ios 6... 453 20.2 Preparando seu app para suportar a nova tela do iphone 5... 455 Referências bibliográficas... 461 Índice remissivo... 463