Projeto Android Your Heroes que Utiliza a API Marvel

427 visualizações

Publicada em

Projeto Android YourHeroes que utiliza a API Marvel e está disponível no github em www.github.com/eloijr/yourheroes

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
427
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Projeto Android Your Heroes que Utiliza a API Marvel

  1. 1. @eloijr www.facebook.com/eloijr
  2. 2. Eloi Jr ● Iniciou na área mobile em 2002 ● Palestrou em diversos eventos de TI ● Escreveu artigos técnicos ● Desenvolvedor mobile desde o Java ME ● Projetos em Windows Phone e Android ● Empreendedor no Maranhão!?!??
  3. 3. Imperatriz-MA
  4. 4. Imperatriz-MA ● Segundo maior centro político, cultural e populacional do Maranhão: +400hab ● Beira-rio Tocantins: 33º às 20:00 ● Comércio varejista e atacadista e algumas indústrias (Suzano Papel e Celulose) ● Cerca de 600km de Belém, São Luís, Palmas e Teresina ● Rio Tocantins: segundo maior rio brasileiro em águas brasileiras
  5. 5. YourHeroes ● App Android desenvolvido como projeto final do curso Udacity/Google “Developing Android Apps” ● Iniciativa de apoio aos GDG ● Diversos conceitos importantes: Definição de interfaces, SQLite, Providers, Loaders, SyncAdapters, IntentServices e etc. ● API escolhida: Marvel!
  6. 6. Serviços RESTful ● Serviço web que utiliza paradigma arquitetônico REST (Representational State Transfer) ● Exposição e troca de informações usando URIs ● Leve ● Transmissão de dados via HTTP ● APIs RESTful: Google Maps, infor. sobre temperatura, trânsito, Nasa, governo, DPRF, ESPN, API Marvel
  7. 7. JSON ● JavaScript Object Notation ● Formato leve de troca de dados { "id": 1009664, "name": "Thor", "description": "As the Norse God...", "modified": "2013-10-24T14:24:12-0400", "thumbnail": { "path": "http://...", "extension": "jpg" } }
  8. 8. Marvel Comics API ● Serviço RESTful com JSON ● Acesso a dados de mais 70 anos de quadrinhos Marvel ● Personagens, quadrinhos, séries, eventos, estórias e criadores! ● Imagens em diferentes resoluções e tamanhos ● Documentação ● Ferramenta online para testar chamadas à API
  9. 9. Marvel Comics API ● Necessário obter uma chave pública e privada ● Limite de 3000 req./dia ● Link p/ site Marvel; ● Data provided by Marvel. © 2014 Marvel ● Não é permitido cache indefinido! Sugestão: 24 horas ● developer.marvel.com
  10. 10. Marvel Comics API: Imagens ● PORTRAIT, STANDARD, LANDSCAPE ● SMALL, MEDIUM, XLARGE, FANTASTIC, UNCANNY, AMAZING e INCREDIBLE ● DETAIL ● FULL_SIZE
  11. 11. YourHeroes - Tópicos ● Interface de usuário p/ tablets e smartphones ● Persistência ● Loader ● Content Providers (Contract e Provider) ● IntentService ● JSON parsing ● CursorAdapter ● Carregamento de Imagens em uma Thread
  12. 12. Interface Usuário tablets/smartphones ● Fragments! ● layout-sw600dp e values-sw600dp ● Values-v14 (Android 4.0 – Ice Cream Sandw.) ● Pasta drawable ● footer.xml
  13. 13. Fragment ● Parte da Interface de Usuário de uma Activity ● Interface dinâmica e multi-pane ● Comportamento e visualização
  14. 14. Suporte a Diferentes Telas ● Smallest-width Qualifier: sw600dp, sw720dp ● Configurações de acordo com API: v11 (3.0), v14 (4.0) ● Uso da pasta drawable
  15. 15. Por que Persistir Dados? ● Resposta Rápida Para o Usuário ● Redução de Consumo de Bateria ● Instabilidades Eventuais na Rede de Dados ● Locais Sem Serviço de Dados ● Shared Preferences ou SQLite?
  16. 16. Persistência ● SQLite ● Serializable ● Classe Contract ● SQLiteOpenHelper
  17. 17. Content Provider ● Acesso Universal a Dados a partir de URI ● Retorna uma Lista ou Apenas um Item ● Compartilhamento de Dados ● Acesso a Dados Nativos: Calendário, SMS, Contatos e etc.
  18. 18. Content Provider Visualizar os contatos: Uri u = Uri.parse(“content://com.android.contacts/contacs/” ); Intent it = new Intent(Intent.ACTION_PICK, u); startActivity(it);
  19. 19. Loader ● Leitura assíncrona de dados ● Monitora os Dados Utilizando AsyncTask ● Atualiza a UI em Caso de Mudança ● Permite Acesso a Thread de UI ● Reconecta o Cursor Automaticamente em Mudanças de Configurações ● CursorLoader utiliza Contents Provider!
  20. 20. CursorAdapter ● Método de Alta Performance Para Apresentar Dados do SQLite em Listas ● Permite Mapear as Colunas Direto a Partir do Banco de Dados SQLite
  21. 21. IntentService ● Utilizado em Tarefas Longas ● Roda em uma Thread Separada ● Chamada por uma Intent ● Se Comunica com a Main Thread através de Handlers ou Broadcast
  22. 22. IntentService YourHeroes ● Conecta com a API Marvel utilizando uma URL ● Carrega os Dados ● Efetua o parsing JSON ● Gera um ArrayList<Person> ● Insere os Registros na Tabela do SQLite ● Utiliza um BradcastReceiver para Notificar o Fim da Tarefa (remover spinner e progresso)
  23. 23. JSON parsing ● Parsing! ● Formato Leve e Simples Para Troca de Dados ● Elementos básicos: objetos, propriedades e arrays ● Objetos: “{}” ; propriedades: “:” ; arrays: “[]” ● JSONObject e JSONArray
  24. 24. JSON parsing { "id": 1009664, "name": "Thor", "description": "As the Norse God...", "modified": "2013-10-24T14:24:12-0400", "thumbnail": { "path": "http://...", "extension": "jpg" } }
  25. 25. Carregamento de Imagens: ImageLoader ● Cria uma Thread para Cada Imagem a ser Carregada da Lista, empilhando-as ● Cada Imagem Carregada é Gravada No Sistema de Arquivos (data/images) ● Se já Estiver em Cache a Imagem é Lida a Partir do Mesmo. Caso Contrário: NET! ● Um Runnable p/ Cada Imagem a Ser Desenhada pelo CursorAdapter
  26. 26. YourHeroes - Issues ● Material Design! ● Acesso a dados de revistas, séries, eventos, estórias e criadores ● Limitar cache para máx. 24 horas ● Aproveitamente Ideal dos Formatos de Imagens Disponíveis pela API ● ?
  27. 27. @eloijr Referências: http://developer.android.com http://developer.marvel.com Email: eloimuon@gmail.com www.facebook.com/eloijr

×