Google android pdf

50
Google Android Avançado Leonardo Rossetto +LeonardoRossetto

Transcript of Google android pdf

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

13

2 minutos de demora == -1 usuario Nenhum feedback == 1 estrela na

PlayStore Perca de informação == Odio eterno

O aplicativo parou… == ?

Porem tenha em mente…

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

26

Armazenar os tokens e dados do usuário no servidor

27

Modelagem

Colar a modelagem aqui

28

Compilar, codificar, testar, fazer 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?

36

Por que design e 70% do negocio

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

» 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

Por que?

48

Mais XML

Configurando o widget provider

49

50

E uma ciosa a mais…

GPlus: +LeonardoRossetto Github: leonardoxh

Email: [email protected] Slide share: leonardoxh Twitter: @leorossetto_