@eloijr
www.facebook.com/eloijr
Eloi Jr
● Iniciou na área mobile em 2002
● Palestrou em diversos eventos de TI
● Escreveu artigos técnicos
● Desenvolvedor...
Imperatriz-MA
Imperatriz-MA
● Segundo maior centro político, cultural e
populacional do Maranhão: +400hab
● Beira-rio Tocantins: 33º às ...
YourHeroes
● App Android desenvolvido como projeto final do
curso Udacity/Google “Developing Android
Apps”
● Iniciativa de...
Serviços RESTful
● Serviço web que utiliza paradigma
arquitetônico REST (Representational State
Transfer)
● Exposição e tr...
JSON
● JavaScript Object Notation
● Formato leve de troca de dados
{
"id": 1009664,
"name": "Thor",
"description": "As the...
Marvel Comics API
● Serviço RESTful com JSON
● Acesso a dados de mais 70 anos de
quadrinhos Marvel
● Personagens, quadrinh...
Marvel Comics API
● Necessário obter uma chave pública e privada
● Limite de 3000 req./dia
● Link p/ site Marvel;
● Data p...
Marvel Comics API: Imagens
● PORTRAIT, STANDARD, LANDSCAPE
● SMALL, MEDIUM, XLARGE, FANTASTIC,
UNCANNY, AMAZING e INCREDIB...
YourHeroes - Tópicos
● Interface de usuário p/ tablets e smartphones
● Persistência
● Loader
● Content Providers (Contract...
Interface Usuário
tablets/smartphones
● Fragments!
● layout-sw600dp e values-sw600dp
● Values-v14 (Android 4.0 – Ice Cream...
Fragment
● Parte da Interface de Usuário de uma Activity
● Interface dinâmica e multi-pane
● Comportamento e visualização
Suporte a Diferentes Telas
● Smallest-width Qualifier: sw600dp, sw720dp
● Configurações de acordo com API: v11 (3.0),
v14 ...
Por que Persistir Dados?
● Resposta Rápida Para o Usuário
● Redução de Consumo de Bateria
● Instabilidades Eventuais na Re...
Persistência
● SQLite
● Serializable
● Classe Contract
● SQLiteOpenHelper
Content Provider
● Acesso Universal a Dados a partir de URI
● Retorna uma Lista ou Apenas um Item
● Compartilhamento de Da...
Content Provider
Visualizar os contatos:
Uri u =
Uri.parse(“content://com.android.contacts/contacs/” );
Intent it = new In...
Loader
● Leitura assíncrona de dados
● Monitora os Dados Utilizando AsyncTask
● Atualiza a UI em Caso de Mudança
● Permite...
CursorAdapter
● Método de Alta Performance Para Apresentar
Dados do SQLite em Listas
● Permite Mapear as Colunas Direto a ...
IntentService
● Utilizado em Tarefas Longas
● Roda em uma Thread Separada
● Chamada por uma Intent
● Se Comunica com a Mai...
IntentService YourHeroes
● Conecta com a API Marvel utilizando uma URL
● Carrega os Dados
● Efetua o parsing JSON
● Gera u...
JSON parsing
● Parsing!
● Formato Leve e Simples Para Troca de Dados
● Elementos básicos: objetos, propriedades e
arrays
●...
JSON parsing
{
"id": 1009664,
"name": "Thor",
"description": "As the Norse God...",
"modified": "2013-10-24T14:24:12-0400"...
Carregamento de Imagens:
ImageLoader
● Cria uma Thread para Cada Imagem a ser
Carregada da Lista, empilhando-as
● Cada Ima...
YourHeroes - Issues
● Material Design!
● Acesso a dados de revistas, séries, eventos,
estórias e criadores
● Limitar cache...
@eloijr
Referências:
http://developer.android.com
http://developer.marvel.com
Email: eloimuon@gmail.com
www.facebook.com/e...
Próximos SlideShares
Carregando em…5
×

Projeto Android Your Heroes que Utiliza a API Marvel

498 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
498
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

×