SlideShare uma empresa Scribd logo
1 de 20
Luiz Fernando Duarte Jr.
http://www.luiztools.com.br
 Análise de Requisitos
 Construindo sua Aplicação
 Guidelines
 Seu primeiro deploy
 Lembre-se: hardware limitado
› Memória
› Processador
› Disco
› Alto custo associado com transferências
› Conexões de dados não-confiáveis
› Bateria
 Lembre-se: usabilidade limitada
› Baixas resoluções
› Teclados não tão práticos
› Touchscreen capacitivo
› Análise das Apps Nativas
› Simplicidade vs riqueza de detalhes
 Thin ou fat client?
 Lembre-se dos mashups
 Aplicações intercambiáveis
 Dependência de Internet
 Minimize os custos ao usuário
 Esboço de Design:
› Rabisque as telas
› Aponte as transições
› Defina o fluxo de trabalho
› Pense nas possibilidades de orientação
› Mantenha simples
 Arquitetura de Aplicação:
› API Level
› APIs adicionais
› Bibliotecas externas
› Público-alvo
› Acesso à dados locais
› Acesso à dados externos
 Filosofia de Design:
› Pequenos incrementos
› Sempre funcionando
› Código refatorado
› Mantenha simples
 Troca de Orientação
› Você pensou nisso?
› Permitir ou não?
 <activity android:name=".Teste"
 android:screenOrientation="portrait"
 android:label="@string/app_name">
› ScrollView – permite scrolling vertical de tela, o
que é muito útil em landscape
 Alert Padrão:
› Toast.makeText(“teste”).show();
 Dialog Padrão:
› New
AlertDialog.Builder(this).setMessage(“teste”).set
PositiveButton(“Ok”, null).show();
 Menu (via código ou XML)
› Public boolean onCreateOptionsMenu(Menu
menu){
› Super.onCreateOptionsMenu(menu);
› menu.add(1,1,1,”Item 1”);
› menu.add(1,2,2”,”Item 2”);
› }
 (idGrupo, idItem, Ordem, Texto)
 Menu
› Public boolean
onOptionsItemSelected(MenuItem item){
› Int id = item.getItemId();
› If(id == 1){ // do something
› return true
› }else {return
super.onOptionsItemSelected(item);}
› }
 Seja Responsivo:
› App deve responder a qualquer ação do usuário
dentro de 5 segundos
› Notificações do sistema devem encerrar em 10
segundos
› Serviços e threads podem garantir isso
› Caso contrário, diálogo de aplicação não-
responsiva
 Evite aninhamento desnecessário;
 Evite componentes desnecessários (não use
mais de 80)
 Mantenha menos de 10 layouts de
profundidade
 Use os controles padrões pela familiaridade
dos usuários
 Respeite a estrutura de pastas
 Use Orientação à Objetos
 Separe lógica de aplicação de regra de
negócio
 Crie uma Activity para cada “tela” do sistema
 Múltiplas Activities:
› Intent intent = new Intent(MyActivity.this,
NewActivity.class);
› startActivity(intent);
› Colocar no Manifesto para a aplicação enxergar
a nova atividade
› pilha de Activities
› Constantes Intent.something para Intent Filters
› finish();
 Jamais armazenar recursos no banco,
somente as URLs dos mesmos
 Todas tabelas devem ter uma chave auto-
incremental como PK (principalmente por
causa dos Content Providers)
 Exportando APK:
› Bin
› Export -> Android -> Android App
 Introdução ao Mercado Mobile
 Introdução à plataforma Android
 App Development
 App Design
 Acesso à Dados
 Deploy
 ?
 http://www.luiztools.com.br

Mais conteúdo relacionado

Semelhante a Curso de Android - Módulo 11

Engenharia Requisitos
Engenharia RequisitosEngenharia Requisitos
Engenharia Requisitoselliando dias
 
Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013André Borgonovo
 
Workshop - Conceito mobile
Workshop - Conceito mobileWorkshop - Conceito mobile
Workshop - Conceito mobileGustavo Barbosa
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchBernardo Donadio
 
MAX3D - Apresentacao do ADOTI
MAX3D - Apresentacao do ADOTIMAX3D - Apresentacao do ADOTI
MAX3D - Apresentacao do ADOTINilo Guimaraes
 
Adoti apresentacao completa
Adoti apresentacao completaAdoti apresentacao completa
Adoti apresentacao completaIgor Serra
 
Aula2 caracteristicas da_tecnologia_de_banco_de_dados
Aula2 caracteristicas da_tecnologia_de_banco_de_dadosAula2 caracteristicas da_tecnologia_de_banco_de_dados
Aula2 caracteristicas da_tecnologia_de_banco_de_dadosAntony Barbosa
 
Curso de Android - Módulo 07
Curso de Android - Módulo 07Curso de Android - Módulo 07
Curso de Android - Módulo 07Luiz Duarte
 
tdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdftdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdfDouglas Siviotti
 
648021762-Aula-de-Informatica-Slides.pptx
648021762-Aula-de-Informatica-Slides.pptx648021762-Aula-de-Informatica-Slides.pptx
648021762-Aula-de-Informatica-Slides.pptxMaicksinhoTeclas
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
Desktop Linux na Tranquilidade - PortoLinux Presentation
Desktop Linux na Tranquilidade - PortoLinux PresentationDesktop Linux na Tranquilidade - PortoLinux Presentation
Desktop Linux na Tranquilidade - PortoLinux PresentationRui Lapa
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemastaniamaciel
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
 
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BRFazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BRFabio Telles Rodriguez
 

Semelhante a Curso de Android - Módulo 11 (20)

Engenharia Requisitos
Engenharia RequisitosEngenharia Requisitos
Engenharia Requisitos
 
IoT vista como um sistema nervoso
IoT vista como um sistema nervosoIoT vista como um sistema nervoso
IoT vista como um sistema nervoso
 
Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013
 
Apresentação+do+stoq
Apresentação+do+stoqApresentação+do+stoq
Apresentação+do+stoq
 
Workshop - Conceito mobile
Workshop - Conceito mobileWorkshop - Conceito mobile
Workshop - Conceito mobile
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
 
Usabilidade1
Usabilidade1Usabilidade1
Usabilidade1
 
Treinamento hadoop - dia3
Treinamento hadoop - dia3Treinamento hadoop - dia3
Treinamento hadoop - dia3
 
MAX3D - Apresentacao do ADOTI
MAX3D - Apresentacao do ADOTIMAX3D - Apresentacao do ADOTI
MAX3D - Apresentacao do ADOTI
 
Adoti apresentacao completa
Adoti apresentacao completaAdoti apresentacao completa
Adoti apresentacao completa
 
Aula2 caracteristicas da_tecnologia_de_banco_de_dados
Aula2 caracteristicas da_tecnologia_de_banco_de_dadosAula2 caracteristicas da_tecnologia_de_banco_de_dados
Aula2 caracteristicas da_tecnologia_de_banco_de_dados
 
Curso de Android - Módulo 07
Curso de Android - Módulo 07Curso de Android - Módulo 07
Curso de Android - Módulo 07
 
tdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdftdc-2022-poa-quem-tem-medo-low-code.pdf
tdc-2022-poa-quem-tem-medo-low-code.pdf
 
648021762-Aula-de-Informatica-Slides.pptx
648021762-Aula-de-Informatica-Slides.pptx648021762-Aula-de-Informatica-Slides.pptx
648021762-Aula-de-Informatica-Slides.pptx
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Desktop Linux na Tranquilidade - PortoLinux Presentation
Desktop Linux na Tranquilidade - PortoLinux PresentationDesktop Linux na Tranquilidade - PortoLinux Presentation
Desktop Linux na Tranquilidade - PortoLinux Presentation
 
Replicacao Object Sistemas
Replicacao Object SistemasReplicacao Object Sistemas
Replicacao Object Sistemas
 
Pgday campinas 2015
Pgday campinas 2015Pgday campinas 2015
Pgday campinas 2015
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BRFazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
Fazendo Um Elefante Passar Debaixo da Porta - PGCon-BR
 

Mais de Luiz Duarte

Mecanismo de busca em Node.js e MongoDB
Mecanismo de busca em Node.js e MongoDBMecanismo de busca em Node.js e MongoDB
Mecanismo de busca em Node.js e MongoDBLuiz Duarte
 
FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...
FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...
FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...Luiz Duarte
 
Team Building: Passo a Passo
Team Building: Passo a PassoTeam Building: Passo a Passo
Team Building: Passo a PassoLuiz Duarte
 
Curso Scrum e Métodos Ágeis 07
Curso Scrum e Métodos Ágeis 07Curso Scrum e Métodos Ágeis 07
Curso Scrum e Métodos Ágeis 07Luiz Duarte
 
Curso Scrum e Métodos Ágeis 04
Curso Scrum e Métodos Ágeis 04Curso Scrum e Métodos Ágeis 04
Curso Scrum e Métodos Ágeis 04Luiz Duarte
 
Curso Scrum e Métodos Ágeis 02
Curso Scrum e Métodos Ágeis 02Curso Scrum e Métodos Ágeis 02
Curso Scrum e Métodos Ágeis 02Luiz Duarte
 
Curso Scrum e Métodos Ágeis 03
Curso Scrum e Métodos Ágeis 03Curso Scrum e Métodos Ágeis 03
Curso Scrum e Métodos Ágeis 03Luiz Duarte
 
Curso Scrum e Métodos Ágeis - Introdução
Curso Scrum e Métodos Ágeis - IntroduçãoCurso Scrum e Métodos Ágeis - Introdução
Curso Scrum e Métodos Ágeis - IntroduçãoLuiz Duarte
 
Curso Scrum e Métodos Ágeis 01
Curso Scrum e Métodos Ágeis 01Curso Scrum e Métodos Ágeis 01
Curso Scrum e Métodos Ágeis 01Luiz Duarte
 
Curso Scrum e Métodos Ágeis 05
Curso Scrum e Métodos Ágeis 05Curso Scrum e Métodos Ágeis 05
Curso Scrum e Métodos Ágeis 05Luiz Duarte
 
Curso Scrum e Métodos Ágeis 06
Curso Scrum e Métodos Ágeis 06Curso Scrum e Métodos Ágeis 06
Curso Scrum e Métodos Ágeis 06Luiz Duarte
 
Carreira em Agilidade
Carreira em AgilidadeCarreira em Agilidade
Carreira em AgilidadeLuiz Duarte
 
Gamification em Modelos de Maturidade
Gamification em Modelos de MaturidadeGamification em Modelos de Maturidade
Gamification em Modelos de MaturidadeLuiz Duarte
 
Curso de Node.js e MongoDB - 20
Curso de Node.js e MongoDB - 20Curso de Node.js e MongoDB - 20
Curso de Node.js e MongoDB - 20Luiz Duarte
 
Curso de Node.js e MongoDB - 19
Curso de Node.js e MongoDB - 19Curso de Node.js e MongoDB - 19
Curso de Node.js e MongoDB - 19Luiz Duarte
 
Curso de Node.js e MongoDB - 18
Curso de Node.js e MongoDB - 18Curso de Node.js e MongoDB - 18
Curso de Node.js e MongoDB - 18Luiz Duarte
 
Curso de Node.js e MongoDB - 17
Curso de Node.js e MongoDB - 17Curso de Node.js e MongoDB - 17
Curso de Node.js e MongoDB - 17Luiz Duarte
 
Curso de Node.js e MongoDB - 16
Curso de Node.js e MongoDB - 16Curso de Node.js e MongoDB - 16
Curso de Node.js e MongoDB - 16Luiz Duarte
 
Curso de Node.js e MongoDB - 15
Curso de Node.js e MongoDB - 15Curso de Node.js e MongoDB - 15
Curso de Node.js e MongoDB - 15Luiz Duarte
 
Curso de Node.js e MongoDB - 14
Curso de Node.js e MongoDB - 14Curso de Node.js e MongoDB - 14
Curso de Node.js e MongoDB - 14Luiz Duarte
 

Mais de Luiz Duarte (20)

Mecanismo de busca em Node.js e MongoDB
Mecanismo de busca em Node.js e MongoDBMecanismo de busca em Node.js e MongoDB
Mecanismo de busca em Node.js e MongoDB
 
FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...
FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...
FDP, DEEP, INVEST e SMART: entendendo a sopa de letrinhas que todo PO deve co...
 
Team Building: Passo a Passo
Team Building: Passo a PassoTeam Building: Passo a Passo
Team Building: Passo a Passo
 
Curso Scrum e Métodos Ágeis 07
Curso Scrum e Métodos Ágeis 07Curso Scrum e Métodos Ágeis 07
Curso Scrum e Métodos Ágeis 07
 
Curso Scrum e Métodos Ágeis 04
Curso Scrum e Métodos Ágeis 04Curso Scrum e Métodos Ágeis 04
Curso Scrum e Métodos Ágeis 04
 
Curso Scrum e Métodos Ágeis 02
Curso Scrum e Métodos Ágeis 02Curso Scrum e Métodos Ágeis 02
Curso Scrum e Métodos Ágeis 02
 
Curso Scrum e Métodos Ágeis 03
Curso Scrum e Métodos Ágeis 03Curso Scrum e Métodos Ágeis 03
Curso Scrum e Métodos Ágeis 03
 
Curso Scrum e Métodos Ágeis - Introdução
Curso Scrum e Métodos Ágeis - IntroduçãoCurso Scrum e Métodos Ágeis - Introdução
Curso Scrum e Métodos Ágeis - Introdução
 
Curso Scrum e Métodos Ágeis 01
Curso Scrum e Métodos Ágeis 01Curso Scrum e Métodos Ágeis 01
Curso Scrum e Métodos Ágeis 01
 
Curso Scrum e Métodos Ágeis 05
Curso Scrum e Métodos Ágeis 05Curso Scrum e Métodos Ágeis 05
Curso Scrum e Métodos Ágeis 05
 
Curso Scrum e Métodos Ágeis 06
Curso Scrum e Métodos Ágeis 06Curso Scrum e Métodos Ágeis 06
Curso Scrum e Métodos Ágeis 06
 
Carreira em Agilidade
Carreira em AgilidadeCarreira em Agilidade
Carreira em Agilidade
 
Gamification em Modelos de Maturidade
Gamification em Modelos de MaturidadeGamification em Modelos de Maturidade
Gamification em Modelos de Maturidade
 
Curso de Node.js e MongoDB - 20
Curso de Node.js e MongoDB - 20Curso de Node.js e MongoDB - 20
Curso de Node.js e MongoDB - 20
 
Curso de Node.js e MongoDB - 19
Curso de Node.js e MongoDB - 19Curso de Node.js e MongoDB - 19
Curso de Node.js e MongoDB - 19
 
Curso de Node.js e MongoDB - 18
Curso de Node.js e MongoDB - 18Curso de Node.js e MongoDB - 18
Curso de Node.js e MongoDB - 18
 
Curso de Node.js e MongoDB - 17
Curso de Node.js e MongoDB - 17Curso de Node.js e MongoDB - 17
Curso de Node.js e MongoDB - 17
 
Curso de Node.js e MongoDB - 16
Curso de Node.js e MongoDB - 16Curso de Node.js e MongoDB - 16
Curso de Node.js e MongoDB - 16
 
Curso de Node.js e MongoDB - 15
Curso de Node.js e MongoDB - 15Curso de Node.js e MongoDB - 15
Curso de Node.js e MongoDB - 15
 
Curso de Node.js e MongoDB - 14
Curso de Node.js e MongoDB - 14Curso de Node.js e MongoDB - 14
Curso de Node.js e MongoDB - 14
 

Curso de Android - Módulo 11

  • 1. Luiz Fernando Duarte Jr. http://www.luiztools.com.br
  • 2.  Análise de Requisitos  Construindo sua Aplicação  Guidelines  Seu primeiro deploy
  • 3.  Lembre-se: hardware limitado › Memória › Processador › Disco › Alto custo associado com transferências › Conexões de dados não-confiáveis › Bateria
  • 4.  Lembre-se: usabilidade limitada › Baixas resoluções › Teclados não tão práticos › Touchscreen capacitivo › Análise das Apps Nativas › Simplicidade vs riqueza de detalhes
  • 5.  Thin ou fat client?  Lembre-se dos mashups  Aplicações intercambiáveis  Dependência de Internet  Minimize os custos ao usuário
  • 6.  Esboço de Design: › Rabisque as telas › Aponte as transições › Defina o fluxo de trabalho › Pense nas possibilidades de orientação › Mantenha simples
  • 7.  Arquitetura de Aplicação: › API Level › APIs adicionais › Bibliotecas externas › Público-alvo › Acesso à dados locais › Acesso à dados externos
  • 8.  Filosofia de Design: › Pequenos incrementos › Sempre funcionando › Código refatorado › Mantenha simples
  • 9.  Troca de Orientação › Você pensou nisso? › Permitir ou não?  <activity android:name=".Teste"  android:screenOrientation="portrait"  android:label="@string/app_name"> › ScrollView – permite scrolling vertical de tela, o que é muito útil em landscape
  • 10.  Alert Padrão: › Toast.makeText(“teste”).show();  Dialog Padrão: › New AlertDialog.Builder(this).setMessage(“teste”).set PositiveButton(“Ok”, null).show();
  • 11.  Menu (via código ou XML) › Public boolean onCreateOptionsMenu(Menu menu){ › Super.onCreateOptionsMenu(menu); › menu.add(1,1,1,”Item 1”); › menu.add(1,2,2”,”Item 2”); › }  (idGrupo, idItem, Ordem, Texto)
  • 12.  Menu › Public boolean onOptionsItemSelected(MenuItem item){ › Int id = item.getItemId(); › If(id == 1){ // do something › return true › }else {return super.onOptionsItemSelected(item);} › }
  • 13.  Seja Responsivo: › App deve responder a qualquer ação do usuário dentro de 5 segundos › Notificações do sistema devem encerrar em 10 segundos › Serviços e threads podem garantir isso › Caso contrário, diálogo de aplicação não- responsiva
  • 14.  Evite aninhamento desnecessário;  Evite componentes desnecessários (não use mais de 80)  Mantenha menos de 10 layouts de profundidade  Use os controles padrões pela familiaridade dos usuários
  • 15.  Respeite a estrutura de pastas  Use Orientação à Objetos  Separe lógica de aplicação de regra de negócio  Crie uma Activity para cada “tela” do sistema
  • 16.  Múltiplas Activities: › Intent intent = new Intent(MyActivity.this, NewActivity.class); › startActivity(intent); › Colocar no Manifesto para a aplicação enxergar a nova atividade › pilha de Activities › Constantes Intent.something para Intent Filters › finish();
  • 17.  Jamais armazenar recursos no banco, somente as URLs dos mesmos  Todas tabelas devem ter uma chave auto- incremental como PK (principalmente por causa dos Content Providers)
  • 18.  Exportando APK: › Bin › Export -> Android -> Android App
  • 19.  Introdução ao Mercado Mobile  Introdução à plataforma Android  App Development  App Design  Acesso à Dados  Deploy