Primeiros passos para o novo desenvolvedor android

46
Primeiros Passos para o Novo Desenvolvedor Android Messias R. Batista @mrafaelbatista Março / 2016

Transcript of Primeiros passos para o novo desenvolvedor android

Primeiros Passos para o Novo Desenvolvedor AndroidMessias R. Batista@mrafaelbatista

Março / 2016

Apresentação

Messias R. Batista

Desenvolvedor Web e AndroidEstudante de Sist. para Internet Pós-graduando em Admin em BD

2004-2009 Graduação em Ciências Socais (UFPB)

2009-2011 Mestrado em Relações Internacionais (UEPB)

Professor da Graduação em RI (UEPB)

2011-2012 Assistente de Pesquisa do IPEA (Brasília-DF)

2012-2013 Graduando em ADS

Coord. Pedagógico de Tecnologia (Microcamp)

2014-2016 Aluno de Sistemas para Internet (Unipê)

Técnico de Suporte do Webcall

Desenvolvedor Web e Mobile

2015-2016 Club do Android (GDG JP)

Pós-graduando em Adm. de Banco de Dados

Agenda

● Referências de Estudo;● Passo 1 - Prepare-se para o Android;● Passo 2 - Ambiente de Desenvolvimento;● Passo 3 - Conhecendo o Android;● Passo 4 - Montando o Android Frankenstein;● Passo 5 - Melhores Práticas.

Referências de Estudo

Referências de Estudo http://www.android.com

Referências de Estudo http://developer.android.com/intl/pt-br/develop/index.html

Referências de Estudo Canal: Android Developers

Referências de Estudo http://android-developers.blogspot.com.br/

Referências de Estudo https://android-arsenal.com/

Referências de Estudo Livros

Referências de Estudo Cursos

Referências de Estudo Cursos

Referências de Estudo GDG João Pessoa

Google Study Jam

Referências de Estudo GDG João Pessoa

Club do Android

● Organização em equipes;

● Grupos de estudo;

● Desenvolvimento de apps;

● Workshops e Meetups;

● Compartilhamento de conhecimento.

Passo1Prepare-se para o Android

Passo 1 - Prepare-se para o Android

Importante

● Orientação à Objetos;● Desenvolver ou Conhecer a Linguagem Java;● Conhecimentos de XML;● Conhecimento dos Principais Padrões de Projetos.

Desejável

● Compreender conceitos de Design Gráfico;● Noções de Material Design;● Noções de Usabilidade de Software.

Passo 1 - Prepare-se para o AndroidComo aprender JAVA?

● Entender com qualidade Orientação à Objetos;○ Encapsulamento;○ Abstração;○ Herança;○ Poliformismo;

● Conceitos○ Classe○ Objeto○ Atributo○ Método

Passo 1 - Prepare-se para o AndroidXML de onde vem para onde vai?

O que é XML?

● eXtensible Markup Language

O XML é um formato para a criação de documentos com dados organizados de forma hierárquica.

Passo 1 - Prepare-se para o AndroidXML de onde vem para onde vai?

E por qual motivo aprender?

● Vários dos arquivos que iremos configurar, personalizar e definir no desenvolvimento de app estão organizados em arquivos XML.

Passo 2Ambiente de Desenvolvimento

Passo 2 - Ambiente de DesenvolvimentoAndroid Studio

● IDE Oficial de app Android baseado no IntelliJ IDEA;

● Flexibilidade baseada no Gradle;

● Construção do apk;

● Modelos de código que auxiliam na padronização dos app;

● Editor com capacidade de drop-down;

● entre outros...

Passo 2 - Ambiente de DesenvolvimentoAndroid Studio

http://goo.gl/dmKx97

Passo 2 - Ambiente de DesenvolvimentoAndroid Studio

Passo 2 - Ambiente de DesenvolvimentoGenymotion

Passo 2 - Ambiente de DesenvolvimentoGenymotion

https://goo.gl/aAkziw

Passo 2 - Ambiente de DesenvolvimentoEmulador Intel

● Tecnologia de virtualização Intel VT-X;

○ KVM para Linux;

○ HAXM para Windows e OS X;

● Utilização de 80% da velocidade nativa do processador;

● Emulador 5x mais rápido.

Passo 2 - Ambiente de DesenvolvimentoEmulador Intel

Passo 3Conhecendo o Android

Passo 3 - Conhecendo o Android

Versão Nome Lançamento

Android 1.5 Cupcake 2009

Android 1.6 Donut 2009

Android 2.0 Eclair 2009

Android 2.2 Froyo 2010

Android 2.3 Gingerbread 2010

Android 3.0 Honeycomb 2011

Android 4.0 Ice Cream Sandwich 2011

Android 4.1 Jelly Bean 2012

Android 4.4 Kit Kat 2013

Android 5.0 Lollipop 2014

Android 6.0 Marshmallow 2015

Passo 3 - Conhecendo o Android

Compilação Compilação DEX DEX File

DEX File apkbuilder Interpretação

Passo 3 - Conhecendo o Android

“O Android fornece uma estrutura de aplicativo rica [...] para dispositivos móveis em ambiente de linguagem Java”

Passo 3 - Conhecendo o Android

Conceitos fundamentais sobre a estrutura de aplicativos do Android

Fundamentos de aplicativos

➔ Android é um Linux multiusuário em que cada app é um usuário diferente;

➔ O sistema atribui a cada app um ID de usuário do Linux;

➔ Cada processo tem sua própria VM, sendo o código de um app executado isoladamente de outros apps;

➔ Cada aplicativo é executado em seu próprio processo Linux. O processo é iniciando quando necessário e finalizado da mesma forma, ou quando o sistema necessita recuperar memória.

Compatibilidade de Dispositivos

➔ Atenção com a diversidade de dispositivos, principalmente no que cerne aos recursos disponíveis;

➔ Estar atento ao controle dos recursos dos dispositivos, que podem ser configurados no arquivo manifest;

➔ Versão da plataforma. Deve-se configurar também no manifest quais versões mínimas e máximas que o app dará suporte;

➔ Desenvolver para o tamanho de tela correta, pois apesar da adaptabilidade do próprio Android, o ideal é poder otimizar a experiência do usuário.

Passo 3 - Conhecendo o AndroidAs partes do Frankenstein

Activity

Intent

Broadcast Receiver

Content Provider

Services

Passo 4Montando o Android Frankenstein

Passo 4 - Montando o Android FrankensteinActivity

“Activity é um componente de

aplicativo que fornece uma tela com

a qual os usuários podem interagir

para fazer algo, como discar um

número no telefone, tirar uma foto,

enviar um e-mail ou ver um mapa”

Passo 4 - Montando o Android FrankensteinActivity

● Apps possuem várias activitys;

● Cada activity pode iniciar outra activity;

● As activitys apresentam um ciclo de vida;

● O ciclo de vida das várias activitys são organizados como uma pilha;

Passo 4 - Montando o Android FrankensteinActivity

As activitys devem possuir um layout!

JAVA XMLR

A classe R é responsável por gerenciar o acesso aos recursos de imagem, layout, menu, values, por exemplo. Este gerenciamento é realizado através da criação de constantes para acessar estes recursos.

Passo 4 - Montando o Android FrankensteinActivity | Layout

● Deve-se - rabiscar cada tela do app;

● Desenvolver protótipos;

● Definir os recursos de cada tela;

● Definir a navegação entre as telas;

O objetivo é melhorar a experiência do usuário.

Passo 4 - Montando o Android FrankensteinIntent

“A Intent é um objeto de mensagem que pode ser usado para solicitar uma ação de outro componente de aplicativo”

Passo 4 - Montando o Android FrankensteinIntent

O que podemos fazer com intent?

● Enviar msg ao SO;● Abrir uma nova tela do app;● Realizar uma ligação;● Abrir o browser com um endereço web;● Exibir endereço ou localização no G. Maps;● Executar Broadcast Reciver ou Service;● Enviar msg para outro app;● Abrir o Google Play para instalar outro app;● Compartilhar conceútos nas Redes Sociais.

● Escuta reações do sistema;

● Executa tarefas rápidas;

● Trabalha em segundo plano;

Passo 4 - Montando o Android FrankensteinBroadcast Receiver

“classe [...] utilizada para que aplicações possam reagir a determinados eventos gerador por uma intent”

Passo 4 - Montando o Android FrankensteinContent Provider

“Provedores de conteúdo gerenciam o acesso a um conjunto estruturado de dados. Eles encapsulam os dados e fornecem

mecanismos para definir a segurança dos dados”

Passo 4 - Montando o Android FrankensteinServices

“Um Service é um componente do aplicativo que pode realizar operações longas e não fornece uma interface do usuário.”

● Executa o processamento em segundo plano;

● Não precisa ter tempo determinado;

● Não precisa interagir com o usuário;

● Continua sua execução mesmo na troca de app;

Passo 5Melhores Práticas

Passo 5 - Melhores Práticas

Ouça seus usuários

Melhore a estabilidade e

elimine os erros

Melhore a capacidade de resposta da UI

Melhore a Usabilidade

Melhore a aparência e

estética

Integre com sistema e

aplicativos de terceiros

Fonte: Improving App Quality; Android Developers Blog http://android-developers.blogspot.com.br/2010/10/improving-app-quality.html

Obrigado!Primeiros Passos para o Novo Desenvolvedor AndroidMessias R. BatistaTwitter: @mrafaelbatistaE-mail: [email protected]: https://br.linkedin.com/in/messiasbatista