Este minicurso tem como objetivo apresentar o Android como plataforma de desenvolvimento. O minicurso ensina os principais conceitos do Android, como preparar-se para desenvolver aplicativos, e inclui quatro práticas de desenvolvimento de aplicativos simples para consolidar os conceitos discutidos.
2. Agenda
O objetivo principal deste minicurso é
apresentar o Android como plataforma
de desenvolvimento. Os participantes
poderão trocar experiências sobre os
principais conceitos, os pilares de
desenvolvimento da plataforma, as
técnicas de design do material e
principalmente desenvolvendo um app
para consolidar tudo o que for
discutido.
1. Quem sou eu?
2. Quero aprender Android, como faço?
3. Preparação para o Android
4. Prática I: Hello World
5. Prática II: Genymotion
6. O Robozinho Verde da Googlelandia
7. Introdução ao Material Design*
8. Prática III: App Comparativo
9. Melhores Práticas*
10. Prática IV: App Intents
4. Quem sou eu?
Messias R. Batista
Desenvolvedor Web e Android
Estudante 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 (Faculdade Projeção)
Coord. Pedagógico de Tecnologia (Microcamp)
2014-2016 Aluno de Sistemas para Internet (Unipê)
Técnico de Suporte do Webcall
2015-2016 Club do Android (GDG JP)
Pós-graduando em Adm. de Banco de Dados
Desenvolvedor Web e Android no Webcall
15. 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.
17. Importante
Preparação para o Android
Conceitos de Lógica de Programação
Paradigma de Orientação à Objetos
Linguagem de Programação Java
Linguagem de Marcação XML
Ambiente de Desenvolvimento
Principais Conceitos de Padrões de Projeto
Prática e Conceitos de Design Gráfico
Noções de Material Design
Noções de Usabilidade de Software
18. Preparação para o Android
Paradigma de OO
Encapsulamento Abstração Herança Polimorfismo
Pilares da Orientação à Objetos
19. Preparação para o Android
Linguagem Java
Classes
Objetos
Atributos
Métodos
Sobre a Linguagem Java
Formas de Objeto
Criado a partir da forma
Características
Comportamentos
20. Preparação para o Android
Exemplo de Activity e métodos implementados
21. Preparação para o Android
XML 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.
23. Preparação para o Android
Vantagens do Android 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...
25. Preparação para o Android
Genymotion
Necessário utilizar o
Virtualbox.
26. Preparação para o Android
Tecnologia de Virtualização Intel VT-X
● 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.
29. Vamos criar um Hello World?
1. Abrir o Android Studio
2. Criar um novo projeto
3. Entender a estrutura do Android Studio
4. Criar uma AVD (Android Virtual Device)
5. Iniciar o Hello World na AVD
31. Vamos configurar o Genymotion?
1. Instalar os pacotes
a. Virtualbox
b. Genymotion
2. Criar uma virtualização do Android
3. Macete: Google Play Services
4. Configuração no Android Studio
5. Iniciando o Hello World no Genymotion
34. O Robozinho Verde da Googlelandia
História das Versões do 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
Android 7.0 Andoid N 2016
35. O Robozinho Verde da Googlelandia
Dalvik Virtual Machine
Compilação Compilação DEX
DEX
File
DEX
File
apkbuilder
Interpretação
36. O Robozinho Verde da Googlelandia
Conceitos sobre a estrutura de Apps
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.
37. O Robozinho Verde da Googlelandia
As partes do Frankenstein
● Activity
● Intent
● Broadcast Receiver
● Content Provider
● Services
38. Activity
“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”
39. O Robozinho Verde da Googlelandia
Ciclo de Vida da Activity
● 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;
40. O Robozinho Verde da Googlelandia
Exemplo de Activity e métodos implementados
41. O Robozinho Verde da Googlelandia
Activity
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.
42. Intent
“A Intent é um objeto de mensagem que
pode ser usado para solicitar uma ação de
outro componente de aplicativo”
43. O Robozinho Verde da Googlelandia
O que fazer com uma Intent?
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 conteúdos nas Redes Sociais.
55. 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