algum valor a propriedade descricaoDetalhes. Esse padrão pode - aliás, deve
- ser repetido sempre que você quiser passar dados de uma Segue para outra.
Rode o programa e veja o resultado. Apareceu na tela o texto que foi defi-
nido? Provavelmente não, pois esquecemos de um detalhe: configurar o texto da
UILabel. Abra o arquivo DetalhesViewController.m e implemente o mé-
todo viewDidLoad conforme abaixo:
- (void)viewDidLoad
{
[super viewDidLoad];
_infoLabel.text = _descricaoDetalhes;
}
Simples, não?! Agora você já sabe tudo o que é necessário para trabalhar com
storyboards.
94
Capítulo 6
Realizando operações com a
Internet
Agora você já conhece todo o essencial da API do iOS. Além disso, sempre preci-
samos utilizar diversas bibliotecas extras, sejam elas da própria API fornecida pela
Apple ou através de bibliotecas open source que realizam as mais diferentes tarefas.
Vamos aprender a usar uma biblioteca externa com uma situação bem comum:
baixar arquivos pela rede para poder utilizá-los, sejam figuras, arquivos de configu-
ração ou dados.
O código-fonte deste capítulo está disponível na pasta VisualizadorImagens
e ExemploDownload (lembrando que o endereço do site com os códigos está na
introdução do livro).
6.1. Conheça a biblioteca AFNetworking
Casa do Código
6.1
Conheça a biblioteca AFNetworking
Realizar operações de rede, como download ou upload de arquivos, além de intera-
gir com APIs de serviços como Twitter e Facebook, são operações bastante comuns
em aplicativos iOS. Com o amadurecimento da plataforma, diversas bibliotecas que
antes existiam apenas para Mac OS foram portadas para iOS, tornando o acesso à
documentação, exemplos e solução de problemas algo muito mais fácil de conseguir
atualmente.
A biblioteca AFNetworking, que abordaremos neste capítulo, é uma das que
mais se destacam na comunidade de desenvolvedores devido à sua API moderna
e ativa comunidade. AFNetworking funciona tanto em iOS quanto em Mac OS
X. Ela é feita sob a fundação de networking do próprio sistema operacional, ti-
rando proveito do que há de melhor para trabalhar com comunicação de rede,
tendo por padrão inclusive classes para lidar com conteúdo XML e JSON (além
das operações normais), o que é de grande utilidade. A página oficial do projeto
é https://github.com/AFNetworking/AFNetworking, e no livro utilizamos a versão
2.0.
O primeiro exemplo consiste em fazer o download de um arquivo para uma pasta
dentro do nosso aplicativo, mostrando ao usuário uma barra de progresso à medida
que o download é realizado.
Crie um novo projeto no Xcode do tipo Single View Application chamado Exem-
ploDownload.
Em seguida, baixe o projeto disponível no endereço https://github.com/
AFNetworking/AFNetworking/zipball/master e descompacte-o em qualquer diretó-
rio. Neste pacote, copie a pasta AFNetworking para o diretório do projeto Exem-
ploDownload onde se encontram as outras classes do projeto (AppDelegate, View-
Controller e outras).
Tendo feito isso, precisamos adicionar as classes do AFNetworking no nosso
projeto.
Para tanto, selecione o menu
File -> Add Files to "Exemplo
Download" e selecione o diretório do AFNetworking que você copiou no passo an-
terior (selecione o diretório mesmo, não os arquivos dentro dele). O resultado no
Xcode deverá ficar como o da figura 6.1.
96
Casa do Código
Capítulo 6. Realizando
operações com a Internet
Figura 6.1: Estrutura do projeto após importar o AFNetworking
Compile o projeto ( COMMAND+B), e se correu tudo sem problemas, você deverá
ter um resultado como o da figura 6.2.
6.2
Criando a interface de download
O objetivo deste aplicativo é solicitar ao usuário o endereço de um arquivo a ser bai-
xado, e mostrar o progresso a medida em que o download ocorre. Não faz diferença
97
6.2. Criando a interface de download
Casa do Código
se for um arquivo ZIP, Imagem ou qualquer outro formato, o ideal é apenas que seja
grande o suficiente para ver a barra de progresso em funcionamento (ex: 3 MB para
uma conexão lenta, 30 MB para conexões um pouco mais rápidas). Ao término do
download será mostrado um alerta com o tamanho total do arquivo baixado.
Abra o arquivo Main.storyboard e adicione os seguintes componentes:
1) Label, com o texto URL do arquivo
2) Text Field, onde será informado o arquivo a baixar
3) Um Button com o texto Download
4) Um componente Progress View, que será a nossa barra de progresso
5) Um componente Activity Indicator View, que é aquela rodinha que fica gi-
rando enquanto alguma ação está acontecendo
A figura 6.2 mostra como deverá ficar a interface.
98
Casa do Código
Capítulo 6. Realizando operações com a Internet
Figura 6.2: Resultado da construção da interface do aplicativo
6.3
Conectando os componentes com o código
Agora que temos a UI (User Interface, ou interface com o usuário) criada, precisa-
mos conectar os componentes ao código, a fim de podermos manipulá-los. Lembre-
se que o arquivo .storyboard contém apenas a representação visual dos elementos