android destin
TRANSCRIPT
Slides
• Esta apresentação está disponível em:
bit.ly/android_2014
Trechos de códigos serão disponíveis em:
bit.ly/semana_eletronica
Objetivo
• App de Destinos de Viagem
• Lista de destinos de viagens
• Ao clicar em um item, tela com mais detalhes
Conteúdo
• Importando bibliotecas úteis no Gradle
• ListView com Adapter personalizado
• Download e parse de JSON de um
WebService
Importando o código exemplo
• File > Import Project
• Tempo curto -> Algumas partes do código
estão prontas
• Imagine caixas mágicas que já fazem o que
você quer
build.Gradle
• compile 'com.squareup.picasso:picasso:2.4.0'
• compile 'com.android.support:appcompat-v7:21.0.0'
• compile 'com.google.code.gson:gson:2.3'
Item layout
• RelativeLayout
• Height = 10dp
• Background = @color/accent
• Large Text
• Id = txtNome
• Medium Text
• Id = txtRegiao
• Small Text
• Id = txtPais
• ImageView
• Id = imageView
• Height = 120dp
• ScaleType = centerCrop
• Src = @drawable/destination_01
Main Activity
• Layout > Delete o textView
• Adicione um ListView
• Botão direito
• > Preview List Content > Choose Item Layout > item_list
Adapter personalizado
• Template para o Adapter
• Pacote adapter
• Responsável por interpretar cada item da
lista em um item personalizado
• O aplicativo funciona!
• Vemos uma lista com os items que fizemos
antes
• Precisamos preencher os campos com as
informações corretas
• Isso é feito no adapter!
Picasso
• Baixa imagem de um link de modo
assíncrono e coloca em um ImageView
• E ainda coloca uma imagem no lugar enquanto
está carregando
• Faz todo o trabalho por você ;)
Navigation Class
• Criada para facilitar!
• Animação de transição entre activities
• Passagem de parametros complexos
Web Service - JSON
• Entre no site e adicione seu próprio destino
de viagem!
• Seja criativo, coloque destinos diferentes
do comum
• http://destino.herokuapp.com/destinos/new
JSON
• [
• {
• "id": 1,
• "image_url": “http://caminhodaimagen/imagem.jpg",
• "nome": "Loch Ard Gorge",
• "regiao": "Great Ocean Road",
• "pais": "Austrália",
• "curiosidade": “Texto da curiosidade aqui",
• "url":
"http://destino.herokuapp.com/destinos/1.json"
• }
• ]
Baixar de forma asíncrona
• Baixar informações da internet pode ser
uma operação demorada!
• Se a thread principal fica esperando, todo o
app fica travado até a informação ser
baixada!
GSON
• Transforma automaticamente o JSON em
um objeto (ou lista de objetos) do modelo
criado
• O modelo deve ter propriedades com o
mesmo nome do campo do JSON
Download Information
• Ao invés de puxar as informações da
classe Sample, iniciamos o download do
JSON do WebService
Rode o app
• Simples assim
• Agora, ao invés de puxar as informações
de forma estática, estamos conectados à
internet!
Desenvolvendo um aplicativo
• Não reinvente a roda!
• Reaproveite ao máximo códigos e bibliotecas
prontas na internet, assim como padrões do
Android. Vai poupar muito tempo
• Com esses conhecimentos, já é possível
criar vários aplicativos, use sua
imaginação!