6.10 Faça seu aplicativo funcionar em todas as orientações . . . . . . . . . 119
7
Trabalhando com tabelas - UITableView
123
7.1
Criando a primeira table view - conceitos e exemplo . . . . . . . . . . 125
7.2
O aplicativo de lista de contatos . . . . . . . . . . . . . . . . . . . . . . 127
7.3
Carregando os contatos a partir de um arquivo plist . . . . . . . . . . 128
7.4
Tornando a tabela funcional . . . . . . . . . . . . . . . . . . . . . . . . 133
7.5
Informando a quantidade de itens que temos . . . . . . . . . . . . . . 134
7.6
Exibindo dados em cada linha . . . . . . . . . . . . . . . . . . . . . . . 135
7.7
Permitindo interação com os itens da tabela . . . . . . . . . . . . . . . 138
7.8
Removendo elementos da table view . . . . . . . . . . . . . . . . . . . 138
7.9
Removendo diversas linhas . . . . . . . . . . . . . . . . . . . . . . . . . 140
7.10
Crie uma tabela para o nosso catálogo de empresas . . . . . . . . . . . 143
8
Trabalhando com reconhecedores de gestos
145
8.1
Sistema de eventos tradicional . . . . . . . . . . . . . . . . . . . . . . . 146
8.2
Uma abordagem mais prática: d de gestos . . . . . . . . . . . . . . . . 151
8.3
Convertendo o exemplo CirculoView para gestos . . . . . . . . . . . . 152
8.4
Tremedeira com toque longo . . . . . . . . . . . . . . . . . . . . . . . . 154
8.5
Deslizando uma view com o gesto Swipe . . . . . . . . . . . . . . . . . 159
9
Trabalhe com mapas e GPS na sua aplicação
163
9.1
As bibliotecas necessárias . . . . . . . . . . . . . . . . . . . . . . . . . . 163
9.2
Adicionando o mapa à aplicação . . . . . . . . . . . . . . . . . . . . . . 164
9.3
Simulando múltiplos toques . . . . . . . . . . . . . . . . . . . . . . . . 165
9.4
Posicionando o mapa automaticamente na localização do usuário . . 166
9.5
Trabalhe com o zoom . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
9.6
Adicionando pinos ao mapa . . . . . . . . . . . . . . . . . . . . . . . . 169
9.7
Detecte toques nos pinos . . . . . . . . . . . . . . . . . . . . . . . . . . 171
v
Sumário
Casa do Código
10 Componentes gráficos customizados
173
10.1
Criando views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
10.2 Animando views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
10.3 Animando da forma procedural e tradicional . . . . . . . . . . . . . . 176
10.4 Animando com o uso de blocos . . . . . . . . . . . . . . . . . . . . . . 176
10.5 Criando views customizadas . . . . . . . . . . . . . . . . . . . . . . . . 177
10.6 Utilizar a view customiza LoginView . . . . . . . . . . . . . . . . . . . 181
10.7 Construir o componente LoginView utilizando um arquivo XIB de
interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
10.8 Como utilizar views criados com arquivos XIB . . . . . . . . . . . . . 185
11 Conceitos fundamentais de Objective-C
187
11.1
Uma pequena história . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
11.2
Nome e assinatura do método . . . . . . . . . . . . . . . . . . . . . . . 188
11.3
Propriedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
11.4
Acesso somente leitura . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
11.5
Utilizando propriedades dentro da própria classe . . . . . . . . . . . . 193
11.6
Definindo protocolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
11.7
Trabalhando com categorias . . . . . . . . . . . . . . . . . . . . . . . . 197
11.8
Gerenciamento de memória . . . . . . . . . . . . . . . . . . . . . . . . 200
11.9
Gerenciamento manual de memória (para os curiosos) . . . . . . . . 202
11.10 Simplificando as coisas com literais . . . . . . . . . . . . . . . . . . . . 205
12 Como criar uma conta no portal de desenvolvimento da Apple
209
12.1
Registre-se como um desenvolvedor Apple . . . . . . . . . . . . . . . . 209
12.2 Fazendo a assinatura no iOS Developer Program . . . . . . . . . . . . 211
12.3
Os tipos de certificados . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
13 Rodando os aplicativos no seu iDispositivo
217
13.1
Crie e instale o certificado . . . . . . . . . . . . . . . . . . . . . . . . . 218
13.2
Crie a identidade do seu aplicativo - App IDs . . . . . . . . . . . . . . 222
13.3
Adicionando dispositivos para desenvolvimento . . . . . . . . . . . . 224
13.4 Limite anual de dispositivos . . . . . . . . . . . . . . . . . . . . . . . . 225
13.5
Crie o certificado de provisionamento . . . . . . . . . . . . . . . . . . 226
13.6 Associe o arquivo de provisionamento no Xcode . . . . . . . . . . . . 227
13.7
Rode seu aplicativo no dispositivo . . . . . . . . . . . . . . . . . . . . . 230
13.8
Verificando a instalação dos perfis no dispositivo . . . . . . . . . . . . 231
vi
Casa do Código
Sumário
14 Uma palavra final + bônus
233
14.1
Bônus - livros e links . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
vii
Capítulo 1
Introdução
O iPhone e o iPad são fenômenos.