Aprendendo Programação
iOS
Alasdair Allan
Novatec
Authorized Portuguese translation of the English edition of titled Learning iOS Programming, 3rd edition, ISBN
9781449359348 © 2013 Alasdair Allan. This translation is published and sold by permission of O'Reilly Media,
Inc., the owner of all rights to publish and sell the same.
Tradução em português autorizada da edição em inglês da obra Learning iOS Programming, 3rd edition, ISBN
9781449359348 © 2013 Alasdair Allan. Esta tradução é publicada e vendida com a permissão da O'Reilly Media,
Inc., detentora de todos os direitos para publicação e venda desta obra.
© Novatec Editora Ltda. [2013].
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
Tradução: Rafael Zanolli
Revisão técnica: Aurelio Jargas
Revisão gramatical: Marta Almeida de Sá
Editoração eletrônica: Carolina Kuwabata
ISBN: 978-85-7522-363-5
Histórico de impressões:
Julho/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
Email: [email protected]
Site: www.novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec
Sumário
Prefácio..................................................................................................................11
Terceira edição.......................................................................................... 11
Notas da segunda edição........................................................................... 11
Quem deveria ler este livro?....................................................................... 12
O que você já deve saber?.......................................................................... 12
O que você aprenderá?.............................................................................. 12
O que há neste livro?................................................................................. 12
Convenções utilizadas neste livro............................................................... 14
Uso de exemplos de código........................................................................15
Como entrar em contato conosco..............................................................16
Agradecimentos........................................................................................16
capítulo 1 ▪ Por que seguir o caminho nativo?..........................................................17
Os prós e os contras.................................................................................. 18
Por que escrever aplicativos nativos?..................................................... 19
O ciclo de lançamento...............................................................................20
Desenvolva e eles virão.............................................................................. 21
capítulo 2 ▪ Como se tornar um desenvolvedor.........................................................23
Registro como desenvolvedor iOS..............................................................23
Inscrição no iOS Developer Program.........................................................26
Mac Developer Program............................................................................27
Instalação do SDK do iOS.........................................................................28
O que acontece quando houver um beta?..............................................32
Preparação de seu dispositivo iOS..............................................................32
Criação de um certificado de desenvolvimento......................................33
Obtenção do UDID de seu dispositivo de desenvolvimento...................36
Criação de uma App ID.......................................................................37
Criação de um perfil de aprovisionamento móvel..................................38
Tornando seu dispositivo disponível para desenvolvimento...................39
6
Aprendendo Programação iOS
capítulo 3 ▪ Seu primeiro aplicativo iOS....................................................................42
Introdução à Objective-C..........................................................................42
Programação orientada a objetos..........................................................42
Modelo de objetos da Objective-C........................................................45
Introdução à sintaxe da Objective-C.....................................................47
Criação de um projeto...............................................................................48
Exploração do projeto no Xcode...........................................................52
Nosso projeto no Interface Builder.......................................................60
Construção da interface de usuário...................................................... 61
Conexão da interface de usuário com o código......................................63
Execução do aplicativo no simulador....................................................67
Colocação do aplicativo em seu iPhone................................................ 68
capítulo 4 ▪ Codificação em Objective-C....................................................................70
Declaração e definição de classes...............................................................70
Declaração de uma classe com a interface............................................. 71
Definição de uma classe com a implementação.....................................72
Tipagem de objetos..............................................................................73
Propriedades........................................................................................73
Síntese de propriedades........................................................................75
Sintaxe de ponto..................................................................................76
Declaração de métodos........................................................................76
Chamada de métodos..........................................................................77
Chamada de métodos em nil................................................................78
Gerenciamento de memória......................................................................78
Criação de objetos...............................................................................79
Pool de liberação automática................................................................79
Ciclo alloc, retain, copy e release...........................................................80
Contagem de referência automática...................................................... 81
Método dealloc....................................................................................82
Resposta a avisos de memória..............................................................83
Padrões de projeto iOS fundamentais........................................................83
Padrão Modelo-Visão-Controlador.......................................................84
Visões e controladores de visão.............................................................85
Delegados e o padrão DataSource.........................................................86
Conclusão................................................................................................87
capítulo 5 ▪ Aplicativos com base em visão de tabela................................................88
Criação do projeto................................................................................... 88
Criação de uma visão de tabela.................................................................89
Execução do código.............................................................................94
Preenchimento da visão de tabela..............................................................95
Sumário
Construção de um modelo........................................................................97
Inclusão de cidades no guia................................................................ 100
Inclusão de imagens em seus projetos................................................. 103
Conexão do controlador ao modelo......................................................... 105
Simulação de funcionalidade com janelas de alerta............................. 108
Inclusão de controles de navegação no aplicativo...................................... 109
Inclusão de uma visão de cidade...............................................................112
Modo de edição...................................................................................... 122
Exclusão de uma entrada de cidade.................................................... 126
Inclusão de uma entrada de cidade..................................................... 127
Interface “Add New City”....................................................................131
Captura dos dados de cidade............................................................. 138
capítulo 6 ▪ Outros controladores de visão..............................................................145
Aplicativos utilitários.............................................................................. 145
Desenvolvimento do aplicativo de monitoramento de bateria................147
Aplicativos de barra de guias................................................................... 158
Inclusão de outro item de barra de guias............................................. 160
Combinação de controladores de visão.................................................... 164
Controladores de visão modal..................................................................171
Modificação do aplicativo City Guide..................................................171
Controlador de visão do seletor de imagens...............................................181
Inclusão do seletor de imagens no aplicativo City Guide.......................181
Aplicativos Master-Detail........................................................................ 192
Criação de um aplicativo universal..................................................... 192
Controladores popover............................................................................ 199
capítulo 7 ▪ Conexão com a rede............................................................................201
Detecção de status de rede....................................................................... 201
Classe Reachability da Apple.............................................................. 201
Embutindo um navegador web em seu aplicativo..................................... 215
Um controlador de visão web simples................................................. 216
Apresentação de arquivos HTML estáticos..........................................226
Obtenção de dados a partir de uma UIWebView................................. 227
Envio de emails.......................................................................................227
Obtenção de dados da internet................................................................ 233
Solicitações síncronas......................................................................... 234
Solicitações assíncronas..................................................................... 234
Uso de web services........................................................................... 235
7
8
Aprendendo Programação iOS
capítulo 8 ▪ Manipulação de dados........................................................................254
Entrada de dados....................................................................................254
UITextField e seu delegado................................................................. 255
UITextView e seu delegado................................................................. 257
Processamento XML................................................................................ 259
Processamento XML com libxml2...................................................... 259
Processamento XML com NSXMLParser............................................ 261
Processamento JSON..............................................................................263
NSJSONSerialization.........................................................................263
Framework JSON..............................................................................265
Recuperação de trends do Twitter.......................................................266
Uso do framework Social...................................................................268
Aplicativo Twitter Trends....................................................................269
Expressões regulares................................................................................ 278
Introdução às expressões regulares...................................................... 278
Armazenamento de dados.......................................................................284
Uso de arquivos simples.....................................................................284
Armazenamento de informações em um banco de dados SQL.............286
Core Data..........................................................................................294
capítulo 9 ▪ Uso de sensores...................................................................................295
Suporte de hardware...............................................................................295
Disponibilidade de rede.....................................................................295
Disponibilidade de câmera.................................................................297
Disponibilidade da entrada de áudio..................................................297
Disponibilidade de GPS.....................................................................298
Disponibilidade do magnetômetro.....................................................298
Configuração de capacidades exigidas de hardware..................................298
WiFi persistente.................................................................................300
Modos de segundo plano...................................................................300
Diferenças entre iPhone e iPad................................................................. 301
Uso da câmera........................................................................................302
Framework Core Motion.........................................................................303
Recepção de dados de movimento......................................................304
Envio de dados de movimento...........................................................305
Acelerômetro.....................................................................................306
Giroscópio......................................................................................... 311
Magnetômetro....................................................................................314
Acessando o sensor de proximidade..........................................................318
Uso da vibração...................................................................................... 320
Sumário
capítulo 10 ▪ Geolocalização e mapeamento..........................................................321
Framework Core Location........................................................................321
Direção do dispositivo....................................................................... 324
Weather dependente de localização.......................................................... 325
Geocodificação reversa....................................................................... 327
Geocodificação progressiva................................................................ 327
Objetos CLPlacemark........................................................................ 328
Modificação do aplicativo Weather..................................................... 328
Localização de usuário e MapKit............................................................. 337
Anotações em mapas............................................................................... 345
capítulo 11 ▪ Introdução ao iCloud.........................................................................354
Como posso utilizar o iCloud?................................................................ 354
Backup no iCloud.............................................................................. 355
Provisionamento de seu aplicativo para o iCloud................................. 356
Utilização de armazenamento de chave-valor............................................ 358
Conclusão..............................................................................................366
capítulo 12 ▪ Integração de seu aplicativo..............................................................368
Preferências de aplicativo.........................................................................368
Framework Accounts...............................................................................380
Framework Social...................................................................................382
Envio de tuítes...................................................................................382
Realização de postagens no Facebook.................................................384
Esquemas de URL personalizados...........................................................385
Uso de esquemas personalizados........................................................385
Registro de esquemas personalizados..................................................386
Reprodução de mídia...............................................................................391
Uso do Address Book (Contatos).............................................................396
Seleção interativa de pessoas.............................................................. 397
Seleção programática de pessoas......................................................... 401
Envio de mensagens de texto...................................................................402
capítulo 13 ▪ Distribuição de seu aplicativo............................................................404
Inclusão de funcionalidades faltantes.......................................................404
Inclusão de um ícone.........................................................................404
Inclusão de uma imagem de inicialização............................................408
Alteração do nome de apresentação.................................................... 412
Habilitação de rotação....................................................................... 413
Compilação e assinatura......................................................................... 415
Distribuição ad hoc........................................................................... 415
Distribuição de desenvolvedor para desenvolvedor.............................. 421
9
10
Aprendendo Programação iOS
Distribuição na App Store..................................................................422
Envio à App Store.................................................................................... 423
Compilação de seu aplicativo para distribuição na App Store...............430
App Store Resource Center.................................................................434
Razões para rejeição................................................................................434
capítulo 14 ▪ Indo além.........................................................................................438
Cocoa e Objective-C................................................................................438
SDK do iOS....................................................................................... 439
Aplicativos Web...................................................................................... 439
PhoneGap.........................................................................................440
Core Data...............................................................................................440
In-App Purchase..................................................................................... 441
MKStoreKit.......................................................................................442
Core Animation......................................................................................442
Game Kit................................................................................................442
Elaboração de jogos................................................................................443
Visual e comportamento.........................................................................443
Acessórios de hardware...........................................................................444
Sobre o autor..........................................................................................445
Colofão..................................................................................................446
Download

Sumário - Novatec Editora