boas práticas em android

111
boas práticas em android @ramonrabello segunda-feira, 12 de dezembro de 11

Upload: ramon-rabello

Post on 17-Dec-2014

3.565 views

Category:

Technology


2 download

DESCRIPTION

Palestra apresentada durante o VII Fórum Paraense de Software Livre, no dia 12/12/2011, sobre boas práticas em desenvolvimento de aplicações móveis em Android.

TRANSCRIPT

Page 1: Boas Práticas em Android

boas práticas em android

@ramonrabello

segunda-feira, 12 de dezembro de 11

Page 2: Boas Práticas em Android

prazer, eu sou Ramon Rabello...

segunda-feira, 12 de dezembro de 11

Page 3: Boas Práticas em Android

Engenheiro de Software pela dddddddd

+1

prazer, eu sou Ramon Rabello...

palestrante daAndroidConf 2011

um dos idealizadores do projeto Andromeda, apresentado durante o

DroidCon `09

acompanhoAndroid

desde o início

trabalho com desde 2005

Ciência da ComputaçãoUniversidade da Amazônia

(UNAMA)

Instrutor do

segunda-feira, 12 de dezembro de 11

Page 4: Boas Práticas em Android

Quem és tu, sumano?

segunda-feira, 12 de dezembro de 11

Page 5: Boas Práticas em Android

Quem és tu, sumano?

?

segunda-feira, 12 de dezembro de 11

Page 6: Boas Práticas em Android

Quem és tu, sumano?

segunda-feira, 12 de dezembro de 11

Page 7: Boas Práticas em Android

Quem és tu, sumano?

sou a 1a plataforma móvel

aberta!

segunda-feira, 12 de dezembro de 11

Page 8: Boas Práticas em Android

Quem és tu, sumano?

segunda-feira, 12 de dezembro de 11

Page 9: Boas Práticas em Android

Quem és tu, sumano?

amigo do Tux...

segunda-feira, 12 de dezembro de 11

Page 10: Boas Práticas em Android

Quem és tu, sumano?

segunda-feira, 12 de dezembro de 11

Page 11: Boas Práticas em Android

Quem és tu, sumano?

e do Duke...

segunda-feira, 12 de dezembro de 11

Page 12: Boas Práticas em Android

Quem és tu, sumano?

segunda-feira, 12 de dezembro de 11

Page 13: Boas Práticas em Android

Quem és tu, sumano?

e gosto muito de doces e sobremesas!

segunda-feira, 12 de dezembro de 11

Page 14: Boas Práticas em Android

Quem és tu, sumano?

segunda-feira, 12 de dezembro de 11

Page 15: Boas Práticas em Android

Quem és tu, sumano?

também sou um kit de

desenvolvimento completo!

segunda-feira, 12 de dezembro de 11

Page 16: Boas Práticas em Android

Quem és tu, sumano?

segunda-feira, 12 de dezembro de 11

Page 17: Boas Práticas em Android

Quem és tu, sumano?

plataforma que mais cresce no mundo!

segunda-feira, 12 de dezembro de 11

Page 18: Boas Práticas em Android

Quem és tu, sumano?

segunda-feira, 12 de dezembro de 11

Page 19: Boas Práticas em Android

Quem és tu, sumano?

Vejam como eu fui projetado!

segunda-feira, 12 de dezembro de 11

Page 20: Boas Práticas em Android

Arquitetura

segunda-feira, 12 de dezembro de 11

Page 21: Boas Práticas em Android

Arquitetura

Minha base é um Kernel Linux!

segunda-feira, 12 de dezembro de 11

Page 22: Boas Práticas em Android

Arquitetura

segunda-feira, 12 de dezembro de 11

Page 23: Boas Práticas em Android

Arquitetura

Venho com bibliotecas e

máquina virtual otimizada!

segunda-feira, 12 de dezembro de 11

Page 24: Boas Práticas em Android

Arquitetura

segunda-feira, 12 de dezembro de 11

Page 25: Boas Práticas em Android

Já disponibilizo

vários serviços para você!

Arquitetura

segunda-feira, 12 de dezembro de 11

Page 26: Boas Práticas em Android

Arquitetura

segunda-feira, 12 de dezembro de 11

Page 27: Boas Práticas em Android

Forneço uma camada para os

desenvs!

Arquitetura

segunda-feira, 12 de dezembro de 11

Page 28: Boas Práticas em Android

Entendendo os componentes principais

segunda-feira, 12 de dezembro de 11

Page 29: Boas Práticas em Android

Entendendo os componentes principais

Conheçam as minhas

engrenagens!

segunda-feira, 12 de dezembro de 11

Page 30: Boas Práticas em Android

TextView

EditText

Button

ImageView

Widgets e Layouts: os componentes gráficos da sua aplicação

segunda-feira, 12 de dezembro de 11

Page 31: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

Título da Activity

Corpo da Activity com vários componentes gráficos

Activity: cada tela de sua aplicação

segunda-feira, 12 de dezembro de 11

Page 32: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

Compartilha tipos de dados comuns para outras aplicações:

(imagens, audio, video, contatos...)

Um ContentProvider abstrai o mecanismo de persistência de dados, por meio de URIs!

Em Android, bancos de dados são locais às aplicacões

Content Provider: compartilhe suas bases de dados

segunda-feira, 12 de dezembro de 11

Page 33: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

Serviços em execução

Services: execute aplicações em paralelo

segunda-feira, 12 de dezembro de 11

Page 34: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

responsável por receber notificações (intents) a cada

intervalo de tempo específico

comunica a aplicação para que a mesma atualize seus dados, caso

seja necessário

Broadcast Receiver: receptor de requisições para sua aplicação

segunda-feira, 12 de dezembro de 11

Page 35: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

AndroidManifest.xml: O manifesto para suas aplicações

segunda-feira, 12 de dezembro de 11

Page 36: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

AndroidManifest.xml: O manifesto para suas aplicações

segunda-feira, 12 de dezembro de 11

Page 37: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

facilita a portabilidade e compatibilidade entre

versões do SDK

AndroidManifest.xml: O manifesto para suas aplicações

segunda-feira, 12 de dezembro de 11

Page 38: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

informações da aplicação

facilita a portabilidade e compatibilidade entre

versões do SDK

AndroidManifest.xml: O manifesto para suas aplicações

segunda-feira, 12 de dezembro de 11

Page 39: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

informações da aplicação

informações dos componentes

facilita a portabilidade e compatibilidade entre

versões do SDK

AndroidManifest.xml: O manifesto para suas aplicações

segunda-feira, 12 de dezembro de 11

Page 40: Boas Práticas em Android

Montando o ambiente de desenvolvimento

segunda-feira, 12 de dezembro de 11

Page 41: Boas Práticas em Android

Montando o ambiente de desenvolvimento

Quer saber o que precisa para desenvolver em

Android?

segunda-feira, 12 de dezembro de 11

Page 42: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

Ferramentas necessárias para desenvolver em Android

segunda-feira, 12 de dezembro de 11

Page 43: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

1

tem que ser um JDK!

Ferramentas necessárias para desenvolver em Android

segunda-feira, 12 de dezembro de 11

Page 44: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

1 2

tem que ser um JDK!

pode ser qualquer versão (Classic, Java for EE Developers, ...)

Ferramentas necessárias para desenvolver em Android

segunda-feira, 12 de dezembro de 11

Page 45: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

1 2

3

tem que ser um JDK!

pode ser qualquer versão (Classic, Java for EE Developers, ...)

Ferramentas necessárias para desenvolver em Android

segunda-feira, 12 de dezembro de 11

Page 46: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

instalando o SDK...Instalando o SDK...

segunda-feira, 12 de dezembro de 11

Page 47: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

instalando o SDK...1 No portal do desenvolvedor, clique na aba “SDK”.

Instalando o SDK...

segunda-feira, 12 de dezembro de 11

Page 48: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

instalando o SDK...1 No portal do desenvolvedor, clique na aba “SDK”.

2 Faça download do SDK de acordo com o seu Sistema Operacional

Instalando o SDK...

segunda-feira, 12 de dezembro de 11

Page 49: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

instalando o SDK...1 No portal do desenvolvedor, clique na aba “SDK”.

2 Faça download do SDK de acordo com o seu Sistema Operacional

3 Descompacte o arquivo baixado em algum local do seu computador

Instalando o SDK...

segunda-feira, 12 de dezembro de 11

Page 50: Boas Práticas em Android

Montando o Ambiente de Desenvolvimento

segunda-feira, 12 de dezembro de 11

Page 51: Boas Práticas em Android

Montando o Ambiente de Desenvolvimento

Agora vo ensinar como Configurar o

ADT!

segunda-feira, 12 de dezembro de 11

Page 52: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

baixando o plugin ADTBaixando o ADT...

segunda-feira, 12 de dezembro de 11

Page 53: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

baixando o plugin ADT

1 No Eclipse, aponte para Help > Install New Software...

Baixando o ADT...

segunda-feira, 12 de dezembro de 11

Page 54: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

baixando o plugin ADT

1 No Eclipse, aponte para Help > Install New Software...

2 Na janela que abrir, clique no botão Add...

Baixando o ADT...

segunda-feira, 12 de dezembro de 11

Page 55: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

baixando o plugin ADT

1 No Eclipse, aponte para Help > Install New Software...

2 Na janela que abrir, clique no botão Add...

3 Depois, em Name informe uma descricão e em Location, informe a URL, conforme a figura abaixo:

Baixando o ADT...

segunda-feira, 12 de dezembro de 11

Page 56: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

baixando o plugin ADT

1 No Eclipse, aponte para Help > Install New Software...

2 Na janela que abrir, clique no botão Add...

3 Depois, em Name informe uma descricão e em Location, informe a URL, conforme a figura abaixo:

3 Finalize, clicando em OK.

Baixando o ADT...

segunda-feira, 12 de dezembro de 11

Page 57: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

baixando o plugin ADT (2)Baixando o ADT...

segunda-feira, 12 de dezembro de 11

Page 58: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

baixando o plugin ADT (2)1

A próxima tela exibe os componentes do plugin que serão instalados. Clique em Developer Tools para instalá-los.

Baixando o ADT...

segunda-feira, 12 de dezembro de 11

Page 59: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

baixando o plugin ADT (2)1

A próxima tela exibe os componentes do plugin que serão instalados. Clique em Developer Tools para instalá-los.

Baixando o ADT...

segunda-feira, 12 de dezembro de 11

Page 60: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

baixando o plugin ADT (2)1

A próxima tela exibe os componentes do plugin que serão instalados. Clique em Developer Tools para instalá-los.

2 Clique em Next para prosseguir a instalação.

Baixando o ADT...

segunda-feira, 12 de dezembro de 11

Page 61: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

baixando o plugin ADT (2)1

A próxima tela exibe os componentes do plugin que serão instalados. Clique em Developer Tools para instalá-los.

2 Clique em Next para prosseguir a instalação.

3 Confirme a lista das ferramentas que serão instaladas. Clique Next.

Baixando o ADT...

segunda-feira, 12 de dezembro de 11

Page 62: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

baixando o plugin ADT (2)1

A próxima tela exibe os componentes do plugin que serão instalados. Clique em Developer Tools para instalá-los.

2 Clique em Next para prosseguir a instalação.

3 Confirme a lista das ferramentas que serão instaladas. Clique Next.

4 Para finalizar, leia e aceite o termo de licença e clique em Finish.

Baixando o ADT...

segunda-feira, 12 de dezembro de 11

Page 63: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

baixando o plugin ADT (2)1

A próxima tela exibe os componentes do plugin que serão instalados. Clique em Developer Tools para instalá-los.

2 Clique em Next para prosseguir a instalação.

3 Confirme a lista das ferramentas que serão instaladas. Clique Next.

4 Para finalizar, leia e aceite o termo de licença e clique em Finish.

5 Ao término da instalacão, o Eclipse será reiniciado.

Baixando o ADT...

segunda-feira, 12 de dezembro de 11

Page 64: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

configurando o ADT para “enxergar” o SDKConfigurando o ADT...Configurando o ADT...

segunda-feira, 12 de dezembro de 11

Page 65: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

configurando o ADT para “enxergar” o SDK

1No Eclipse, aponte para Window > Preferences... (no Mac OS X: Eclipse > Preferences).

Configurando o ADT...Configurando o ADT...

segunda-feira, 12 de dezembro de 11

Page 66: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

configurando o ADT para “enxergar” o SDK

1No Eclipse, aponte para Window > Preferences... (no Mac OS X: Eclipse > Preferences).

Configurando o ADT...Configurando o ADT...

segunda-feira, 12 de dezembro de 11

Page 67: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

configurando o ADT para “enxergar” o SDK

1No Eclipse, aponte para Window > Preferences... (no Mac OS X: Eclipse > Preferences).

2Selecione Android, ao lado esquerdoda tela de preferências.

Configurando o ADT...Configurando o ADT...

segunda-feira, 12 de dezembro de 11

Page 68: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

configurando o ADT para “enxergar” o SDK

1No Eclipse, aponte para Window > Preferences... (no Mac OS X: Eclipse > Preferences).

2Selecione Android, ao lado esquerdoda tela de preferências.

3Clique em Browse... para selecionar o diretório raiz do SDK.

Configurando o ADT...Configurando o ADT...

segunda-feira, 12 de dezembro de 11

Page 69: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

configurando o ADT para “enxergar” o SDK

1No Eclipse, aponte para Window > Preferences... (no Mac OS X: Eclipse > Preferences).

2Selecione Android, ao lado esquerdoda tela de preferências.

3Clique em Browse... para selecionar o diretório raiz do SDK.

4 Finalize clicando em OK.

Configurando o ADT...Configurando o ADT...

segunda-feira, 12 de dezembro de 11

Page 70: Boas Práticas em Android

Montando o Ambiente de Desenvolvimento

segunda-feira, 12 de dezembro de 11

Page 71: Boas Práticas em Android

Montando o Ambiente de Desenvolvimento

Agora, basta vc baixar e

configurar os componentes do

SDK!

segunda-feira, 12 de dezembro de 11

Page 72: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

Android SDK Manager: gerenciador de versões do SDK...Android SDK Manager: o gerenciador de versões da plataforma

segunda-feira, 12 de dezembro de 11

Page 73: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

AVD Manager: gerenciador de dispositivos virtuais...Android Virtual Device Manager: gerenciador de dispositivos virtuais

segunda-feira, 12 de dezembro de 11

Page 74: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

AVD Manager: gerenciador de dispositivos virtuais...Android Virtual Device Manager: gerenciador de dispositivos virtuais

segunda-feira, 12 de dezembro de 11

Page 75: Boas Práticas em Android

Criando seu primeiro “HelloAndroid”

segunda-feira, 12 de dezembro de 11

Page 76: Boas Práticas em Android

Criando seu primeiro “HelloAndroid”

Agora, é só utilizar sua

criatividade e sair desenvolvendo!

segunda-feira, 12 de dezembro de 11

Page 77: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

criando um projeto AndroidCriando seu primeiro “HelloAndroid”

segunda-feira, 12 de dezembro de 11

Page 78: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

criando um projeto Android

1No Eclipse, aponte para File > New > Project... > Android Project

OU

Clique neste ícone na barra de ferramentas

Criando seu primeiro “HelloAndroid”

segunda-feira, 12 de dezembro de 11

Page 79: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

criando um projeto Android

1No Eclipse, aponte para File > New > Project... > Android Project

OU

Clique neste ícone na barra de ferramentas

2Na tela que abrir, preencha as informações da sua aplicação. Clique em Next para prosseguir.

3Clique em Finish, para concluir a criacão do seuprojeto.

Criando seu primeiro “HelloAndroid”

segunda-feira, 12 de dezembro de 11

Page 80: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

criando um projeto Android

1No Eclipse, aponte para File > New > Project... > Android Project

OU

Clique neste ícone na barra de ferramentas

2Na tela que abrir, preencha as informações da sua aplicação. Clique em Next para prosseguir.

3Clique em Finish, para concluir a criacão do seuprojeto.

Criando seu primeiro “HelloAndroid”

segunda-feira, 12 de dezembro de 11

Page 81: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

criando um projeto Android

1No Eclipse, aponte para File > New > Project... > Android Project

OU

Clique neste ícone na barra de ferramentas

2Na tela que abrir, preencha as informações da sua aplicação. Clique em Next para prosseguir.

3Clique em Finish, para concluir a criacão do seuprojeto.

Criando seu primeiro “HelloAndroid”

segunda-feira, 12 de dezembro de 11

Page 82: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

criando um projeto Android

1No Eclipse, aponte para File > New > Project... > Android Project

OU

Clique neste ícone na barra de ferramentas

2Na tela que abrir, preencha as informações da sua aplicação. Clique em Next para prosseguir.

3Clique em Finish, para concluir a criacão do seuprojeto.

Criando seu primeiro “HelloAndroid”

segunda-feira, 12 de dezembro de 11

Page 83: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

todo projeto Android, é organizado assim...Estrutura de um projeto Android

segunda-feira, 12 de dezembro de 11

Page 84: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

todo projeto Android, é organizado assim...

código-fonte da aplicação

Estrutura de um projeto Android

segunda-feira, 12 de dezembro de 11

Page 85: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

todo projeto Android, é organizado assim...

versão do SDK

Estrutura de um projeto Android

segunda-feira, 12 de dezembro de 11

Page 86: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

todo projeto Android, é organizado assim...

pasta alternativa para recursos(ex: fontes TrueType)

Estrutura de um projeto Android

segunda-feira, 12 de dezembro de 11

Page 87: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

todo projeto Android, é organizado assim...

pasta para os binários compilados

Estrutura de um projeto Android

segunda-feira, 12 de dezembro de 11

Page 88: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

todo projeto Android, é organizado assim...

pasta de recursos gráficos

Estrutura de um projeto Android

segunda-feira, 12 de dezembro de 11

Page 89: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

todo projeto Android, é organizado assim...

descritor da aplicação

Estrutura de um projeto Android

segunda-feira, 12 de dezembro de 11

Page 90: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

arquivo de config para obfuscador

todo projeto Android, é organizado assim...Estrutura de um projeto Android

segunda-feira, 12 de dezembro de 11

Page 91: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

todo projeto Android, é organizado assim...

arquivo de propriedades do ant

Estrutura de um projeto Android

segunda-feira, 12 de dezembro de 11

Page 92: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

Analisando cada arquivo: HelloAndroidActivity.javaHelloworldActivity.java

segunda-feira, 12 de dezembro de 11

Page 93: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

Analisando cada arquivo: R.javaR.java

segunda-feira, 12 de dezembro de 11

Page 94: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

Analisando cada arquivo: main.xmlmain.xml

segunda-feira, 12 de dezembro de 11

Page 95: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

Analisando cada arquivo: strings.xmlstrings.xml

segunda-feira, 12 de dezembro de 11

Page 96: Boas Práticas em Android

Formacão Completa em Android - @androidnarede

Analisando cada arquivo: AndroidManifest.xmlAndroidManifest.xml

segunda-feira, 12 de dezembro de 11

Page 97: Boas Práticas em Android

Agora vamos para as boas práticas em Android!

segunda-feira, 12 de dezembro de 11

Page 98: Boas Práticas em Android

Agora vamos para as boas práticas em Android!

Agora vou dar dicas para vc criar aplicações

de sucesso!

segunda-feira, 12 de dezembro de 11

Page 99: Boas Práticas em Android

Mantenha a compatibilidade

segunda-feira, 12 de dezembro de 11

Page 100: Boas Práticas em Android

Utilize interfaces gráficas amigáveis

segunda-feira, 12 de dezembro de 11

Page 101: Boas Práticas em Android

O usuário é o mais importante. Mantenha-o sempre informado.

segunda-feira, 12 de dezembro de 11

Page 102: Boas Práticas em Android

Projete aplicações intuitivas

segunda-feira, 12 de dezembro de 11

Page 103: Boas Práticas em Android

Otimize a memória e processamento da sua aplicação

segunda-feira, 12 de dezembro de 11

Page 104: Boas Práticas em Android

Otimize a memória e processamento da sua aplicação

segunda-feira, 12 de dezembro de 11

Page 105: Boas Práticas em Android

Invista na segurança de sua aplicação

segunda-feira, 12 de dezembro de 11

Page 106: Boas Práticas em Android

Agora é no código!

segunda-feira, 12 de dezembro de 11

Page 107: Boas Práticas em Android

Agora é no código!

Vou demonstrar agora

como criarmos uma aplicação

inteligente! :)

segunda-feira, 12 de dezembro de 11

Page 108: Boas Práticas em Android

Aplicação Exemplo: “Fala Sumano” - Fala que eu encontro!

Tela Inicial Pesquisando por voz... Pesquisa capturada... Exibindo o resultado...

segunda-feira, 12 de dezembro de 11

Page 109: Boas Práticas em Android

Site Oficial do Desenvolvedor Androidd.android.com

Ajude a evoluir a plataforma!source.android.com

Portal Androidportalandroid.org

Formação Completa Android na Redeandroidnarede.com.br

Entre para o mundo Android!

segunda-feira, 12 de dezembro de 11

Page 110: Boas Práticas em Android

Dúvidas, pessoal?

segunda-feira, 12 de dezembro de 11

Page 111: Boas Práticas em Android

Dúvidas, pessoal?

MuitoObrigado!

about.me/ramonrabellotasafo.org

@tasafo@ramonrabello@androidnarede

segunda-feira, 12 de dezembro de 11