© Casa do Código
Todos os direitos reservados e protegidos pela Lei nº9.610, de 10/02/1998.
Nenhuma parte deste livro poderá ser reproduzida, nem transmitida, sem auto-
rização prévia por escrito da editora, sejam quais forem os meios: fotográficos,
eletrônicos, mecânicos, gravação ou quaisquer outros.
Casa do Código
Livros para o programador
Rua Vergueiro, 3185 - 8º andar
04101-300 Vila Mariana São Paulo SP Brasil
Casa do Código
Agradecimentos
Àqueles que, antes de todos, em mim acreditaram: Daniel, Everson, Guilherme e Paulo.
i
Casa do Código
Sumário
Sumário
1
Introdução
1
1.1
Desenvolvendo para o iOS . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2
Como o livro está organizado e focado . . . . . . . . . . . . . . . . . .
2
1.3
Códigos para download e lista de discussão . . . . . . . . . . . . . . .
3
2
Hello World, seu primeiro programa em iOS
5
2.1
Instalando a ferramenta de desenvolvimento - Xcode
. . . . . . . . .
6
2.2
Seu primeiro programa . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3
Dando vida ao aplicativo . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.4
Associe sua tela com o código . . . . . . . . . . . . . . . . . . . . . . .
14
2.5
Escondendo e mostrando a view . . . . . . . . . . . . . . . . . . . . . . 20
2.6
Adicionar animação . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
2.7
Bônus - Acessar a documentação de dentro do Xcode . . . . . . . . .
22
3
Mais Objective-C e Xcode
23
3.1
Criando o projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2
Entenda melhor a interface do Xcode . . . . . . . . . . . . . . . . . . . 26
3.3
Criar a tela de inserção de empresa . . . . . . . . . . . . . . . . . . . .
27
3.4
Adicionar componentes visuais . . . . . . . . . . . . . . . . . . . . . . 29
3.5
Atenção para as propriedades simuladas . . . . . . . . . . . . . . . . .
31
3.6
Conectando os eventos e componentes ao código . . . . . . . . . . . .
32
3.7
Uma classe para representar uma empresa . . . . . . . . . . . . . . . .
35
3.8
Cabeçalhos e implementações . . . . . . . . . . . . . . . . . . . . . . .
37
3.9
Informando a quantidade de funcionários . . . . . . . . . . . . . . . .
38
3.10 Trabalhe com objetos: instanciando uma Empresa . . . . . . . . . . .
39
iii
Sumário
Casa do Código
3.11
Como são as strings em Objective-C? . . . . . . . . . . . . . . . . . . . 40
3.12
Formatando strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
3.13
Guardando todas empresas em memória . . . . . . . . . . . . . . . . .
41
3.14 Listando todas as empresas do catálogo . . . . . . . . . . . . . . . . . .
43
3.15
Vença a sintaxe do Objective-C: invocação de métodos . . . . . . . . 44
3.16 Criando instâncias de objetos . . . . . . . . . . . . . . . . . . . . . . . 46
3.17
Melhoria: esconder o teclado automaticamente . . . . . . . . . . . . . 48
3.18 Melhoria: mostrando a mensagem de sucesso somente ao salvar . . . 49
4
Coordenando o trabalho com controladores
51
4.1
Passando de um controlador para outro . . . . . . . . . . . . . . . . .
53
4.2
Fechar um controlador modal . . . . . . . . . . . . . . . . . . . . . . . 60
4.3
Navegar por diferentes telas com o UINavigationController . . . . . . 60
4.4
Preparar a tela principal . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
4.5
Conectar as ações dos botões . . . . . . . . . . . . . . . . . . . . . . . .
65
4.6
Criar a tela de Adicionar Empresa . . . . . . . . . . . . . . . . . . . . .
65
4.7
Navegar de um controlador para outro . . . . . . . . . . . . . . . . . . 66
4.8
Associar um UINavigationController ao projeto . . . . . . . . . . . . 66
4.9
Criar os demais controladores . . . . . . . . . . . . . . . . . . . . . . . 68
4.10 Esconder a barra superior de navegação . . . . . . . . . . . . . . . . .
71
5
Storyboards
73
5.1
Projeto e conceitos
gerais . . . . . . . . . . . . . . . . . . . . . . . . . .
74
5.2
Adicionar os demais controladores . . . . . . . . . . . . . . . . . . . . 84
5.3
Navegar de volta diretamente para a Segue inicial . . . . . . . . . . . . 90
5.4
Passar dados de uma Segue para outra . . . . . . . . . . . . . . . . . . 92
6
Realizando operações com a Internet
95
6.1
Conheça a biblioteca AFNetworking . . . . . . . . . . . . . . . . . . . 96
6.2
Criando a interface de download . . . . . . . . . . . . . . . . . . . . .
97
6.3
Conectando os componentes com o código . . . . . . . . . . . . . . . 99
6.4
Realizar a operação de download . . . . . . . . . . . . . . . . . . . . . 104
6.5
Trabalhando com JSON e imagens remotas . . . . . . . . . . . . . . . 106
6.6
Configurar os blocks de sucesso e erro do AFNetworking . . . . . . . 112
6.7
Configurar o scroll e pré-gerar os componentes de imagens . . . . . . 114
iv
Casa do Código
Sumário
6.8
Carregar uma determinada imagem . . . . . . . . . . . . . . . . . . . . 116
6.9
Carregar as outras imagens à medida que interagimos com o scroll . 118