Google Android Avançado 
Leonardo Rossetto 
+LeonardoRossetto
Quem? 
• Trabalha com Android e Java web a mais 
de 4 anos, atualmente trabalha com 
desenvolvimento de softwares voltado 
para rastreamento. 
• Gosta de metal e cerveja. 
2
Esse cara sou eu... 
3
Tópicos 
» Google Play Services 
– Google plus (autenticação, posts, share) 
– Google maps 
– Push notifications 
– StreetView, rotas etc 
» Contas de sincronização 
» Patterns (Action bar, search view) 
» Widgets 
4
Tudo isso em 1 aplicativo 
5
6 
O Play services não roda em 
emulador…
7 
Para isso, Genymotion 
Vamos configurar o play services no 
Genymotion
8 
Criar o projeto…
9 
Antes de mais nada… 
Compilar offline com o Gradle
O servidor, sempre o servidor 
10 
https://github.com/leonardoxh/Android-TempoReal
O desafio 
• Criar um aplicativo que irá sincronizar 
noticias e comentários do servidor. 
• De hora em hora para pegar as 
atualizações do servidor, mas, quando 
uma dessas alterações for feita no 
servidor ela irá atualizar real time no 
aplicativo. 
• Será possível fazer share dessas 
atualizações. 
11
12
Porem tenha em mente… 
2 minutos de demora == -1 usuario 
Nenhum feedback == 1 estrela na 
13 
PlayStore 
Perca de informação == Odio eterno 
O aplicativo parou… == ?
14
Criando o projeto 
Dependências... 
15
16 
SDK Manager
Gradle 
• com.google.android.gms:play-services: 
5.0.89 
• com.android.support:support-v4:20.0.0 
17
Sincronização 
• Permissão; 
• Autenticação; 
• Oauth 2.0; 
• Registro junto ao servidor; 
• Buscar os dados; 
• Contas no aparelho; 
• Tudo isso transparente ao usuário. 
18
Frameworks 
• OKHTTP 
• ORMLite 
• Jackson JSON Processor 
19
Dependências... 
» com.squareup.okhttp:okhttp:2.0.0 
» com.j256.ormlite:ormlite-android:4.48 
» com.fasterxml.jackson.core:jackson-core: 
2.4.0 
» com.fasterxml.jackson.core:jackson-databind: 
2.4.0 
» com.fasterxml.jackson.core:jackson-annotations: 
2.4.0 
20
Gambiarras... 
packagingOptions { 
exclude 'LICENSE.txt' 
exclude 'META-INF/LICENSE' 
exclude 'META-INF/NOTICE' 
} 
21
22 
Qual usuario? 
Google Plus, Facebook, Twitter, Github
23 
Qual conta? 
Mais de 1 aparelho? 
Tudo integrado? 
Real time?
24 
Google Play Services 
» 1 API para tudo 
» Metodos estáticos 
» Sem complicação 
» Sem burocracia
25 
Como funciona 
http://developer.android.com/google/play-services/index.html
Armazenar os tokens e dados do 
26 
usuário no servidor
27 
Modelagem 
Colar a modelagem aqui
Compilar, codificar, testar, fazer 
28 
gambiarras… 
Nao necessariamente nessa ordem…
29
30 
Problemas?
31 
Consumir e compartilhar… 
» Registro do GCM 
» Sincronizar 
» Visualizar 
» Compartilhar
32 
» Compartilhar 
» Compartilhar 
» Compartilhar 
» Compartilhar 
» Compartilhar 
E mais…
33 
Opa! Noticia modificada 
» Receber o PUSH 
» Acessar a informação 
» Notificar o usuario 
» Publicar
34 
Adicionar uma nova noticia no 
servidor
35 
Tudo funcionando? 
Ta legal de ver?
Por que design e 70% do negocio 
36
37
38 
Patterns 
» Action bar 
» SearchView 
» Navigation drawer 
» Tabs 
» Cards 
» Float Buttons 
» Muito mais…
39 
GPS… 
Existem empresas que usam simplesmente os 
recursos de GPS do Android
40 
Mais um desafio 
» Localizar o aparelho 
» Pegar as coordenadas 
» Salvar no servidor 
» Criar pontos de referencia (de qualquer 
lugar) 
» Sincronizar esses pontos de referencia 
» Ver os pontos de referencia no Google 
Maps
41 
Play Services, de novo
42 
Sim a mesma API
43 
Mais tabelas 
Adicionar mais uma parte da modelarem
44 
O que? 
» Criar 
» Salvar 
» Salvar na nuvem 
» Compartilhar
45 
Compilar, testar, rezar…
46 
Widgets
47 
Por que? 
» Sao mini apps 
» Sao legais 
» Sao rápidos de fazer 
» Pode ajudar muito o usuário em tarefas 
comuns 
» Esta sempre aberto ali mostrando os 
dados
48 
Mais XML 
Configurando o widget provider
49
50 
E uma ciosa a mais… 
GPlus: +LeonardoRossetto 
Github: leonardoxh 
Email: leonardoxh@gmail.com 
Slide share: leonardoxh 
Twitter: @leorossetto_

Google android pdf

  • 1.
    Google Android Avançado Leonardo Rossetto +LeonardoRossetto
  • 2.
    Quem? • Trabalhacom Android e Java web a mais de 4 anos, atualmente trabalha com desenvolvimento de softwares voltado para rastreamento. • Gosta de metal e cerveja. 2
  • 3.
  • 4.
    Tópicos » GooglePlay Services – Google plus (autenticação, posts, share) – Google maps – Push notifications – StreetView, rotas etc » Contas de sincronização » Patterns (Action bar, search view) » Widgets 4
  • 5.
    Tudo isso em1 aplicativo 5
  • 6.
    6 O Playservices não roda em emulador…
  • 7.
    7 Para isso,Genymotion Vamos configurar o play services no Genymotion
  • 8.
    8 Criar oprojeto…
  • 9.
    9 Antes demais nada… Compilar offline com o Gradle
  • 10.
    O servidor, sempreo servidor 10 https://github.com/leonardoxh/Android-TempoReal
  • 11.
    O desafio •Criar um aplicativo que irá sincronizar noticias e comentários do servidor. • De hora em hora para pegar as atualizações do servidor, mas, quando uma dessas alterações for feita no servidor ela irá atualizar real time no aplicativo. • Será possível fazer share dessas atualizações. 11
  • 12.
  • 13.
    Porem tenha emmente… 2 minutos de demora == -1 usuario Nenhum feedback == 1 estrela na 13 PlayStore Perca de informação == Odio eterno O aplicativo parou… == ?
  • 14.
  • 15.
    Criando o projeto Dependências... 15
  • 16.
  • 17.
    Gradle • com.google.android.gms:play-services: 5.0.89 • com.android.support:support-v4:20.0.0 17
  • 18.
    Sincronização • Permissão; • Autenticação; • Oauth 2.0; • Registro junto ao servidor; • Buscar os dados; • Contas no aparelho; • Tudo isso transparente ao usuário. 18
  • 19.
    Frameworks • OKHTTP • ORMLite • Jackson JSON Processor 19
  • 20.
    Dependências... » com.squareup.okhttp:okhttp:2.0.0 » com.j256.ormlite:ormlite-android:4.48 » com.fasterxml.jackson.core:jackson-core: 2.4.0 » com.fasterxml.jackson.core:jackson-databind: 2.4.0 » com.fasterxml.jackson.core:jackson-annotations: 2.4.0 20
  • 21.
    Gambiarras... packagingOptions { exclude 'LICENSE.txt' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' } 21
  • 22.
    22 Qual usuario? Google Plus, Facebook, Twitter, Github
  • 23.
    23 Qual conta? Mais de 1 aparelho? Tudo integrado? Real time?
  • 24.
    24 Google PlayServices » 1 API para tudo » Metodos estáticos » Sem complicação » Sem burocracia
  • 25.
    25 Como funciona http://developer.android.com/google/play-services/index.html
  • 26.
    Armazenar os tokense dados do 26 usuário no servidor
  • 27.
    27 Modelagem Colara modelagem aqui
  • 28.
    Compilar, codificar, testar,fazer 28 gambiarras… Nao necessariamente nessa ordem…
  • 29.
  • 30.
  • 31.
    31 Consumir ecompartilhar… » Registro do GCM » Sincronizar » Visualizar » Compartilhar
  • 32.
    32 » Compartilhar » Compartilhar » Compartilhar » Compartilhar » Compartilhar E mais…
  • 33.
    33 Opa! Noticiamodificada » Receber o PUSH » Acessar a informação » Notificar o usuario » Publicar
  • 34.
    34 Adicionar umanova noticia no servidor
  • 35.
    35 Tudo funcionando? Ta legal de ver?
  • 36.
    Por que designe 70% do negocio 36
  • 37.
  • 38.
    38 Patterns »Action bar » SearchView » Navigation drawer » Tabs » Cards » Float Buttons » Muito mais…
  • 39.
    39 GPS… Existemempresas que usam simplesmente os recursos de GPS do Android
  • 40.
    40 Mais umdesafio » Localizar o aparelho » Pegar as coordenadas » Salvar no servidor » Criar pontos de referencia (de qualquer lugar) » Sincronizar esses pontos de referencia » Ver os pontos de referencia no Google Maps
  • 41.
  • 42.
    42 Sim amesma API
  • 43.
    43 Mais tabelas Adicionar mais uma parte da modelarem
  • 44.
    44 O que? » Criar » Salvar » Salvar na nuvem » Compartilhar
  • 45.
  • 46.
  • 47.
    47 Por que? » Sao mini apps » Sao legais » Sao rápidos de fazer » Pode ajudar muito o usuário em tarefas comuns » Esta sempre aberto ali mostrando os dados
  • 48.
    48 Mais XML Configurando o widget provider
  • 49.
  • 50.
    50 E umaciosa a mais… GPlus: +LeonardoRossetto Github: leonardoxh Email: leonardoxh@gmail.com Slide share: leonardoxh Twitter: @leorossetto_