SlideShare una empresa de Scribd logo
1 de 132
Treinamento	
  em	
  Google	
  Android	
  
 Por:	
  	
  	
  	
  	
  Iury	
  Teixeira	
  
 Email:	
  iuryteixeira@nooclix.com.br	
  
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  franciury@gmail.com	
  
 Msn:	
  	
  	
  franciury@hotmail.com	
   	
  	
  	
  	
  
                                	
  	
  	
  
Quem	
  sou	
  ?	
  

•  Bacharel	
  em	
  Sistemas	
  de	
  Informação	
  
•  Especialização	
  em	
  Desenvolvimento	
  Web	
  com	
  
   JavaEE	
  (Cursando)	
  
•  Jug	
  Leader	
  CaJUG	
  
•  Sócio	
  na	
  nooclix	
  
•  Professor	
  
•  Cer3ficações:	
  SCJP	
  6	
  	
  	
  	
  	
  (CSM)	
  	
  
Quem	
  é	
  você?	
  
Agenda	
  

•  Android	
  ?	
  
    –  O	
  que	
  é	
  ?	
             •    Um	
  pouco	
  mais	
  de	
  conceitos	
  
    –  OHA	
                            •    Componentes	
  Básicos	
  
    –  Estrutura	
                      •    Widgets	
  
    –  Dalvik	
                         •    Ac3vity	
  
    –  Kernel	
                         •    Intent	
  
    –  Android	
  Market	
              •    Um	
  pouco	
  de	
  Layout	
  
    –  Emulador	
                       •    No3fica3on	
  
    –  Config.	
  Ambiente	
             •    HEpConnec3on	
  
    –  HelloWorld	
  Android	
  !	
  
Bibliografias	
  
Introdução	
  

•  O	
  mercado	
  mobile	
  cresceu	
  muito	
  nos	
  úlmos	
  
   anos;	
  
•  Uma	
  grande	
  procura	
  por:	
  	
  
       •  Jogos	
  3D	
  
       •  Internet	
  a	
  qualquer	
  hora	
  
       •  GPS	
  
       •  TV	
  Digital	
  
       •  Musicas	
  
       •  Ah,	
  e	
  fazer	
  ligações…!	
  
Introdução	
  

•  Todos	
  estamos	
  nos	
  acostumandos	
  com	
  a	
  
   comodidade;	
  
•  Opções	
  com	
  valor	
  elevado;	
  
•  Solução	
  acessível,	
  flexivel	
  e	
  poderosa;	
  
   –  Para	
  empresas;	
  
   –  Para	
  usuários;	
  
   –  Para	
  operadoras;	
  
   –  Para	
  nós,	
  desenvolvedores.	
  
O	
  Android	
  !	
  

•  Para	
  tanto	
  surgiu	
  o	
  Google	
  Android	
  !	
  
•  Plataforma	
  de	
  Desenvolvimento	
  para	
  
   aplicavos	
  móveis;	
  
•  Baseada	
  em	
  Linux;	
  
•  Já	
  possui	
  diversos	
  recursos	
  instalados	
  e	
  pré-­‐
   configurados;	
  
O	
  Android	
  !	
  

•  É	
  mando	
  pela	
  Google	
  e	
  	
  outras	
  instuições;	
  
    –  Como	
  assim	
  ?	
  
•  Um	
  grupo	
  chamado	
  OHA,	
  formado	
  por	
  várias	
  
   empresas	
  do	
  seguimento;	
  	
  
•  Uniram-­‐se	
  ao	
  Google	
  para	
  desenvolver	
  um	
  
   solução	
  aberta,	
  moderna	
  e	
  que	
  compesse	
  
   com	
  a	
  Apple;	
  
Open	
  Handset	
  Alliance	
  

•  OHA	
  –	
  Open	
  Handset	
  Alliance	
  
   –  São	
  lideres	
  de	
  mercado,	
  aliados	
  e	
  liderados	
  pelo	
  
      Google;	
  
   –  Como:	
  
       •  HTC,	
  Samsung,	
  Sony,	
  Motorola,	
  LG,	
  Toshiba,	
  Nextel,	
  
       •  T-­‐Mobile,	
  Asus,	
  Intel,	
  etc....	
  
       •  Em	
  tordo	
  de	
  50	
  empresas	
  integram	
  o	
  grupo!	
  

       •  Grande	
  vantagem	
  por	
  ser	
  OpenSource,	
  Free(Gratuito);	
  
Android	
  

•  Pode	
  ser	
  customizado	
  de	
  qualquer	
  forma;	
  

•  Integrar	
  aplicações	
  navas	
  com	
  as	
  suas;	
  

•  Não	
  há	
  diferenças	
  entre	
  as	
  apps	
  navas	
  e	
  as	
  
     desenvolvidas	
  por	
  terceiros;	
  
•  Recursos	
  3D	
  baseados	
  no	
  OpenGL	
  ES	
  
	
  
Depois	
  de	
  tanto	
  poder…	
  
Android	
  e	
  o	
  Linux	
  

•  Android	
  é	
  baseado	
  no	
  Kernel	
  2.6	
  do	
  Linux;	
  

•  O	
  Linux	
  é	
  responsável	
  por	
  gerenciar:	
  
   	
  
    Memória	
                                                Redes	
  
                                Threads	
  
    Processos	
                                              Drivers	
  
                               Segurança	
  
Android	
  e	
  o	
  Linux	
  

•  Gerenciamento	
  de	
  aplicações:	
  
   –  Cada	
  aplicação	
  inicia	
  um	
  processo;	
  
        •  Seja	
  com	
  telas	
  ou	
  em	
  background	
  
   –  Se	
  preciso	
  o	
  sistema	
  poderá	
  encerrar	
  um	
  processo	
  
      para	
  liberar	
  memória	
  e	
  recursos;	
  
        •  Podendo	
  ser	
  reiniciado...	
  


     	
  -­‐	
  Para	
  cada	
  aplicação	
  existe	
  um	
  usuário	
  no	
  
sistema	
  operacional;	
  	
  
	
  
Máquina	
  Virtual	
  

  –  Assim	
  como	
  no	
  Java,	
  o	
  Android	
  possui	
  uma	
  VM,	
  
     chamada	
  Dalvik.	
  VM	
  omizada	
  para	
  baixo	
  
     consumo	
  de	
  recursos	
  

  –  Essa	
  mesma,	
  é	
  responsável	
  por	
  efetuar	
  toda	
  
     compilação	
  e	
  transformar	
  em	
  código	
  executável	
  
     no	
  Android;	
  

  –  Não	
  existe	
  uma	
  JVM	
  no	
  Android;	
  
  –  E	
  como	
  funciona	
  ?	
  
Máquina	
  Virtual	
  
                                      Como	
  funciona	
  a	
  exportação	
  de	
  uma	
  	
  
Código	
  Java	
  
                                      aplicação	
  Android	
  !	
  

                .class	
  (Java	
  
                Compilado)	
  

                                      .dex	
  (Dalvik	
  
                                      Executável)	
  

                                                               .apk	
  (Aplicação,	
  
                                                                  imagens…)	
  
Arquitetura	
  da	
  Plataforma	
  Android	
  
Licença	
  

•  1ª	
  Plataforma	
  móvel	
  completamente	
  Open-­‐
   Source;	
  
•  Várias	
  vantagens;	
  
   –  Desenvolvedores;	
  
   –  Fabricantes	
  de	
  Smartphones;	
  
   –  E	
  Usuários;	
  

   –  A	
  licença	
  da	
  Apache	
  possibilita	
  alterações	
  sem	
  
      obrigar	
  a	
  liberação	
  de	
  código;	
  
                                                	
  
Android	
  Market	
  

•  Objevo:	
  	
  
    –  Possibilitar	
  aos	
  desenvolvedores	
  um	
  local	
  para	
  
       disponibilizar	
  suas	
  Apps.	
  


•  Para	
  ulizar:	
  
    –  Cadastro,	
  pagamento	
  de	
  US$	
  25.00;	
  

    –  Após	
  isso	
  pode	
  ser	
  instalado	
  por	
  qualquer	
  usuário;	
  
Android	
  Market	
  

•  Android	
  Market	
  já	
  possui	
  mais	
  aplica3vos	
  
   gratuitos	
  que	
  a	
  AppStore,	
  da	
  Apple	
  
           – Segundo	
  analistas,	
  loja	
  de	
  aplica6vos	
  do	
  
             Android	
  pode	
  superar	
  a	
  App	
  Store	
  em	
  
             número	
  total	
  de	
  programas	
  em	
  cinco	
  meses	
  
             02	
  de	
  Maio	
  de	
  2011	
  |	
  14:30h	
  
           – OlharDigital	
  	
  
Plataformas	
  ou	
  Versões	
  

•  No	
   mundo	
   Android	
   as	
  
   versões	
   são	
   conhecidas	
  
   como	
  plataformas;	
  
Plataformas	
  ou	
  Versões	
  

•  No	
  dia	
  10/05	
  	
  
     –  nova	
   versão,	
   Ice	
   Cream	
  
        Sandwich;	
  
     –  Unificar	
  as	
  plataformas	
  
          •  Smartphone	
  e	
  Tablets	
  
     –  Features:	
  
          •  Reconhecimento	
  de	
  Faces;	
  
          •  Reconhecimento	
  de	
  Voz	
  
                –  Superando	
  o	
  iOS;	
  
          •  Mudança	
  de	
  Foco	
  
                                                                                  	
  esse	
  ano	
  
                                                                 iliz ado	
  ainda
                                                D i sp o n i b
Android	
  SDK	
  

•  Contém:	
  	
  
    –  toda	
  a	
  API	
  necessária	
  para	
  desenvolver	
  ulizando	
  
       a	
  linguagem	
  Java;	
  

    –  Contém	
  o	
  emulador;	
  
        •  Sendo	
  possível	
  plugar	
  um	
  celular	
  na	
  USB	
  para	
  executar/
           testar	
  a	
  aplicação;	
  
        •  Para	
   isso	
   necessita	
   do	
   driver	
   do	
   celular	
   instalado	
   na	
  
           máquina;	
  
Android	
  SDK	
  

•  Instalando	
  o	
  SDK...	
  

    –  hvp://developer.android.com/sdk/	
  


•  Instalando	
  o	
  plugin	
  no	
  eclipse	
  –	
  ADT	
  

    –  hvp://dl.google.com/android/ADT-­‐10.0.1.zip	
  
Configurando	
  a	
  plataforma	
  no	
  SDK	
  

•  O	
   SDK	
   vem	
   vazio,	
   ou	
   seja,	
   sem	
   plataforma	
  
   alguma;	
  

•  Vamos	
  ulizar	
  a	
  versão	
  2.2;	
  

•  Para	
   isso	
   vamos	
   ulizar	
   a	
   ferramenta	
   inclusa	
  
   no	
   SDK	
   chamada,	
   Android	
   SDK	
   and	
   AVD	
  
   Manager.	
  
Android	
  SDK	
  And	
  AVD	
  Manager	
  

•  Instalar	
  novas	
  plataformas	
  

•  Documentação	
  

•  Add-­‐ons,	
  como:	
  Google	
  Maps	
  

•  Drivers	
  USB	
  
Android	
  SDK	
  And	
  AVD	
  Manager	
  

•  Para	
  iniciar	
  a	
  ferramenta	
  clique	
  em:	
  
Android	
  SDK	
  And	
  AVD	
  Manager	
  

•  Poderá	
  acontecer	
  o	
  seguinte:	
  
Android	
  SDK	
  And	
  AVD	
  Manager	
  

•  Solução	
  



      1º	
  Passo	
  
Android	
  SDK	
  And	
  AVD	
  Manager	
  

•  Solução	
  
                                 2º	
  Passo	
  
Android	
  SDK	
  And	
  AVD	
  Manager	
  

•  Solução	
  
                                 3º	
  Passo	
  
Android	
  SDK	
  And	
  AVD	
  Manager	
  

•  Solução	
  

    4º	
  Passo	
  
Android	
  SDK	
  And	
  AVD	
  Manager	
  

•  Para	
   visualizar	
   os	
   pacotes	
   que	
   estão	
  
   instalados,	
   clique	
   no	
   menu	
   de	
   opções	
   a	
  
   esquerda	
  em,	
  Installed	
  Packages.	
  
Android	
  SDK	
  And	
  AVD	
  Manager	
  

•  Para	
  instalar	
  uma	
  nova	
  plataforma,	
  faça:	
  
Android	
  SDK	
  And	
  AVD	
  Manager	
  

•  Mas	
  o	
  que	
  é	
  AVD	
  ?	
  

     –  Android	
  Virtual	
  Device	
  

     –  Criação	
   de	
   uma	
   configuração,	
   para	
   que	
   o	
  
        emulador	
  possa	
  simular	
  a	
  mesma;	
  
Android	
  SDK	
  And	
  AVD	
  Manager	
  
                                              Android	
  2.1	
  
                              AVD	
  1	
      SD	
  1024	
  MB	
  
                                              Resol.:	
  HVGA	
  




                                              Android	
  2.2	
  
                                              SD	
  500	
  MB	
  
                              AVD	
  2	
      Resol.:	
  HVGA	
  




                                             Android	
  2.2	
  
                                             SD	
  1024	
  MB	
  
                              AVD	
  3	
     Resol.:	
  WQVGA432	
  
Criando	
  uma	
  nova	
  AVD	
  

•  Clique	
  em	
  New	
  
HelloWorld	
  !	
  

•  Crie	
  um	
  novo	
  projeto	
  
    –  File	
  >	
  New	
  >	
  Android	
  Project	
  
HelloWorld	
  !	
  

•  Na	
  proxima	
  janela	
  
       •  Project	
  Name:	
  Nome	
  do	
  projeto;	
  
       •  Build	
  Target:	
  Plataforma	
  ulizada	
  (2.2)	
  
       •  Applica3on	
  Name:	
  No	
  da	
  aplicação	
  que	
  será	
  exibida	
  no	
  
          celular;	
  
       •  Package	
  Name:	
  br.com.nooclix.zn	
  	
  
             –  Manterá	
  a	
  Acvity	
  principal	
  (	
  Único	
  );	
  
       •  Create	
  Ac3vity:	
  Tela	
  principal	
  da	
  aplicação;	
  
       •  Min	
  SDK	
  Version:	
  	
  Level	
  da	
  API	
  (	
  2.2	
  =	
  8)	
  	
  
Criando	
  o	
  HelloWorld	
  !	
  


Após	
  preencher	
  	
  
todos	
  os	
  campos	
  	
  
clique	
  em	
  Finish	
  
Criando	
  o	
  HelloWorld	
  !	
  
Estrutura	
  do	
  Projeto	
  

•  Src	
  –	
  Código	
  Java	
  
•  Gen	
   –	
   Classe	
   R.	
   Permi	
   acessar	
   os	
   recursos	
   (imagens,	
   arquivos,	
  
   componentes)	
   através	
   de	
   constantes;	
   Não	
   pode	
   ser	
   alterada	
  
   manualmente;	
  
•  Assests	
  –	
  Contém	
  arquivos	
  customizados,	
  como	
  fontes;	
  
•  Res	
  –	
  Contém	
  subpastas	
  de	
  recursos;	
  
•  Drawable	
  –	
  Imagens	
  ulizadas	
  na	
  aplicação;	
  
•  Layout	
  –	
  Pasta	
  com	
  layouts	
  em	
  XML;	
  
•  Values	
  –	
  Arquivos	
  XML,	
  como:	
  Strings	
  para	
  internacionalização;	
  
     –  Cores,	
  Eslos,	
  etc.	
  
Executando	
  o	
  Projeto	
  


  Botão	
  direito	
  no	
  projeto	
  e	
  siga	
  os	
  passos	
  abaixo:	
  
Entendendo	
  os	
  arquivos	
  do	
  projeto	
  

•  /res/layout/main.xml	
  

•  Os	
  arquivos	
  XML	
  na	
  pasta	
  layout	
  representa	
  uma	
  tela	
  da	
  aplicação;	
  

•  As	
  TAGS	
  representa	
  os	
  componentes,	
  a	
  criação	
  da	
  Visão;	
  

•  Os	
  componentes	
  visuais	
  podem	
  ser	
  criados	
  via	
  API	
  Java;	
  
Entendendo	
  os	
  arquivos	
  do	
  projeto	
  

•  /res/values/string.xml	
  
•  Chave	
  -­‐	
  Valor;	
  
•  Muito	
  importante	
  para	
  internacionalização;	
  




                            Chave	
                   Valor	
  
Entendendo	
  os	
  arquivos	
  do	
  projeto	
  
•  A	
  Classe	
  R	
  

•  Possui	
  constantes	
  (do	
  po	
  INT)	
  para	
  todos	
  os	
  recursos	
  criados;	
  
•  Acessa	
  imagens;	
  
•  É	
  atualizada	
  automacamente	
  pelo	
  ADT(Plugin),	
  quando	
  a	
  pasta	
  res	
  
   é	
  alterada;	
  

     –    R.drawable.imagem1;	
  
     –    R.layout.meu_layout;	
  
     –    R.string.valor_string;	
  
     –    R.style.meu_eslo;	
  
Entendendo	
  os	
  arquivos	
  do	
  projeto	
  

•  IMPORTANTE:	
  

     Todos	
  os	
  recursos	
  devem	
  ter:	
  nomes	
  
   minusculos	
  e	
  sem	
  espaços.	
  Caso	
  não	
  siga	
  a	
  
      regra	
  a	
  classe	
  R	
  não	
  será	
  compilada.	
  
Entendendo	
  o	
  Código	
  
AndroidManifest.xml	
  
•  Deve-­‐se	
  manter	
  na	
  raiz	
  do	
  projeto;	
  
•  Mantem	
  todas	
  as	
  configurações	
  do	
  projeto:	
  
      –    Nome,	
  pacote	
  base,	
  ícone	
  
      –    Acvity’s	
  
      –    Versão	
  SDK	
  
      –    Permissões	
  


•  Com	
  o	
  eclipse	
  existe	
  um	
  editor	
  visual;	
  
•  Semelhante	
  ao	
  web.xml;	
  
AndroidManifest.xml	
  
AndroidManifest.xml	
  

  O	
  que	
  significa	
  essas	
  linhas?	
  


Pode	
  ser	
  executada	
  isoladamente,	
  ponto	
  inicial	
  


            A	
  Acvity	
  estará	
  na	
  tela	
  inicial	
  
Obtendo	
  componentes	
  

•  Em	
  certos	
  casos	
  é	
  necessário	
  capturar	
  valores	
  da	
  
   visão,	
  assim	
  como	
  adiciona-­‐los	
  de	
  forma	
  
   dinâmica;	
  

•  Método	
  findById(id);	
  

•  É	
  preciso	
  fazer	
  um	
  cast,	
  para	
  o	
  componente	
  
   ulizado;	
  
Obtendo	
  componentes	
  
Arquivo	
  XML	
  (	
  layout/main.xml	
  )	
  




Arquivo	
  Java	
  (	
  Principal.java	
  )	
  
Tratamento	
  de	
  Eventos	
  

•  Para	
  controlar	
  eventos,	
  iremos	
  o	
  ulizar	
  o	
  
   método	
  setOnClickListener(listener);	
  Veja;	
  
Exercicio	
  1	
  
•  Crie	
  um	
  projeto	
  chamado	
  tandroid;	
  
    –  Crie	
  as	
  seguintes	
  Strings	
  (string.xml)	
  
            •  Produto;	
  Quandade;	
  Valor;	
  Calcular;	
  
    –  E	
  faça:	
  
  Efetue	
  o	
  valor	
  total	
  da	
  compra	
  
E	
  o	
  SysOut	
  ?	
  

	
  
•  Ao	
  ulizar	
  o	
  método	
  System.out.println(),	
  nada	
  
     acontece;	
  
•  Normal;	
  
•  É	
  preciso	
  usar	
  o	
  LogCat,	
  com	
  a	
  chamada:	
  

               Log.i(“categoria”,	
  “mensagem”);	
  

              Log.w(“categoria”,	
  “mensagem”);	
  
Widgets	
  Iniciando…	
  



     Bem	
  vindo	
  ao	
  mundo	
  dos	
  
             Widgets	
  
TextView	
  e	
  EditText	
  
•  Propriedades:	
  
   –    layout_width	
  =	
  [“wrap_content”	
  	
  ou	
  “fill_parent”]	
  	
  -­‐>	
  Preenchimento	
  Lateral	
  
   –    layout_heigth	
  =	
  [“wrap_content”	
  	
  ou	
  “fill_parent”]	
  	
  -­‐>	
  Preenchimento	
  Altura	
  
   –    background	
  =	
  “#FFFF34”	
  -­‐>	
  Cor	
  de	
  Fundo	
  
   –    textColor	
  =	
  “#FFFF34”	
  -­‐>	
  Cor	
  da	
  Fonte	
  
   –    hint	
  =	
  “qualquer	
  texto”-­‐>	
  Mensagem	
  se	
  o	
  texto	
  esver	
  vazio.	
  
   –    autoLink	
  =	
  [“web	
  ou	
  map	
  e	
  etc”]	
  -­‐	
  >	
  o	
  TextView	
  Funciona	
  como	
  link.	
  
   –    password	
  	
  =	
  [true|false]	
  -­‐>	
  Campo	
  de	
  senha(******)	
  

   –  layout_weight	
  =	
  [“valor	
  inteiro”]	
  -­‐>	
  Refere-­‐se	
  a	
  porcentagem	
  que	
  o	
  
      componente	
  irá	
  ocupar	
  na	
  tela;	
  


         OBS:	
  A	
  parr	
  da	
  API	
  Level	
  8(2.2	
  Froyo)	
  fill_parent	
  tornou-­‐se	
  	
  match_parent	
  
CheckBox	
  e	
  ToggleBuvom	
  
         •  Componentes	
  para	
  seleção	
  de	
  iten	
  opcionais;	
  
         •  Propriedades:	
  
              –  textOn:	
  Exibe	
  um	
  texto	
  quando	
  selecionado;	
  
              –  textOff:	
  Exibe	
  um	
  texto	
  quando	
  não	
  está	
  selecionado;	
  
         •  Método	
  isChecked():	
  
              –  Retorna	
  a	
  situação	
  da	
  seleção;	
  



om	
  



 	
  
CheckBox	
  e	
  ToggleBuvom	
  

Arquivo	
  da	
  visão	
  anterior	
  (XML)	
  
RadioBuvom	
  
•  Seleção	
  Única	
  
•  É	
  ulizado	
  com	
  o	
  auxilio	
  de	
  um	
  RadioGroup	
  
•  Propriedades:	
  
     –  Text:	
  Texto	
  a	
  ser	
  exibido;	
  
     –  Checked:	
  Se	
  o	
  botão	
  iniciará	
  marcado	
  ou	
  não	
  	
  [	
  true	
  |	
  false	
  ]	
  


•  Método	
  para	
  obter	
  o	
  radio	
  selecionado,	
  pertence	
  ao	
  Group:	
  
     –  getCheckedRadioBuvonId();	
  
RadioBuvom	
  
•  Layout	
  XML	
  
Exercicio	
  2	
  
•  Crie	
  um	
  novo	
  layout,	
  calc_salario	
  

    –  Calcule	
  a	
  previsão	
  salarial	
  dos	
  funcionários:	
  

        •  Que	
  sejam	
  de	
  TI;	
  

        •  O	
  funcionário	
  escolherá	
  o	
  percentual	
  de	
  aumento;	
  
Exercicio	
  2	
  
Exercicio	
  2	
  
AutoCompleteTextView	
  
•  Efetua	
  uma	
  busca	
  enquanto	
  digita;	
  
   –  Propriedades:	
  
       •  comple3onThreshold:	
  Número	
  minimo	
  para	
  iniciar	
  o	
  
          autocomplete	
  (default	
  =	
  2)	
  
       •  comple3onHint:	
  Texto	
  de	
  dica	
  exibido	
  abaixo	
  da	
  caixa;	
  	
  


   –  É	
  necessário	
  ulizar	
  um	
  Adapter	
  
       •  ListAdapter	
  
AutoCompleteTextView	
  
•  Arquivo	
  XML	
  e	
  Java	
  
Buvon	
  e	
  ImageBuvon	
  
•  Ambos	
  são	
  botões;	
  

•  Porém,	
  o	
  Buvom	
  não	
  pode	
  ter	
  um	
  icone;	
  

•  O	
  ImageBuvon	
  tem	
  um	
  icone;	
  
ImageView	
  
•  Permi	
  a	
  visualização	
  de	
  imagens:	
  JPG,	
  PNG	
  e	
  
   GIF;	
  
    –  A	
  imagem	
  no	
  XML	
  é	
  adicionada	
  através	
  da	
  
       propriedade	
  src=@drawable/suaimagem;	
  
    –  Em	
  Java:	
  
ImageView	
  
•  Arquivo	
  XML	
  e	
  Java	
  
Spinner	
  
•  Funciona	
  como	
  um	
  ComboBox;	
  
•  Propriedades:	
  
   –  Prompt:	
  Similar	
  a	
  um	
  Titulo	
  de	
  Janela;	
  
•  Métodos:	
  
   –  Object	
  getSelectedItem()	
  :	
  Item	
  selecionado;	
  
   –  long	
  getSelecteditemId()	
  :	
  id	
  do	
  item	
  selecionado;	
  
   –  int	
  getSelectedItemPosion()	
  :	
  Posição	
  do	
  Item;	
  
            –  Ligado	
  ao	
  Array;	
  	
  


                                                setOnItemSelectedListener	
  
Spinner	
  
•  Arquivo	
  XML	
  e	
  Java	
  
ProgressDialog	
  
•  Mensagem	
  de	
  espera;	
  
•  Mantem-­‐se	
  em	
  execução	
  através	
  do	
  método	
  
   show()	
  até	
  que	
  o	
  método	
  dismiss();	
  
Exercicio	
  3	
  
•  Criar	
  uma	
  tela	
  com:	
  
    –  Spinner	
  com	
  nome	
  de	
  carros;	
  
    –  ImageView	
  para	
  exibir	
  as	
  fotos	
  quando	
  	
  
       clicados	
  no	
  Spinner	
  
    –  Obtenha	
  uma	
  das	
  imagens	
  da	
  internet:	
  URL;	
  
        •  Ulize	
  a	
  ProgressDialog;	
  
    –  Adicione	
  um	
  efeito	
  de	
  transição	
  
ImageGallery	
  
•  Exibi	
  diversas	
  imagens	
  de	
  uma	
  só	
  vez;	
  

•  As	
  fotos	
  são	
  passadas	
  com	
  o	
  indicador
   (mouse);	
  

•  É	
  necessário	
  a	
  criação	
  de	
  uma	
  classe	
  Adapter;	
  
    –  Herda	
  de	
  BaseAdapter	
  
ImageGallery	
  
•  Exemplo	
  (	
  adicione	
  imagens	
  em	
  drawable)	
  
          •  Criando	
  o	
  adapter	
  
	
  
ImageGallery	
  
•  Exemplo	
  (	
  adicione	
  imagens	
  em	
  drawable)	
  
          •  Criando	
  o	
  adapter	
  
	
  
ImageGallery	
  
•  Exemplo	
  (	
  adicione	
  imagens	
  em	
  drawable)	
  
          •  Criando	
  o	
  adapter	
  
	
  
ImageGallery	
  
•  Criando	
  a	
  Acvity	
  (	
  deve	
  ter	
  um	
  layout	
  para	
  isso	
  )	
  
ImageGallery	
  
•  Capturando	
  a	
  imagem	
  selecionada	
  
Acvity	
  Iniciando…	
  



     Bem	
  vindo	
  ao	
  mundo	
  dos	
  
               Ac3vity	
  
Acvity	
  
•  Representa	
  uma	
  tela	
  da	
  aplicação;	
  

•  Tem	
  a	
  função	
  de	
  gerenciar	
  os	
  eventos	
  da	
  tela;	
  

•  Regra	
  de	
  Visão;	
  

•  Configurar	
  o	
  View	
  a	
  ser	
  exibido;	
  
Acvity	
  
•  Deve	
  herdar	
  de	
  Acvity	
  ou	
  subclasses;	
  

•  Deve	
  implementar	
  onCreate:	
  
   –  Inicializar	
  	
  View;	
  
   –  Criar	
  os	
  elementos	
  da	
  tela;	
  


•  Deve	
  ser	
  informado	
  no	
  AndroidManifest.xml	
  
Acvity	
  
•  Estados	
  de	
  uma	
  acvity	
  
                            Executando	
  


             Temporariamente	
  interrompida	
  


                             Destruída	
  
Acvity	
  
•  Cada	
  Acvity	
  é	
  adicionada	
  a	
  um	
  stack	
  acvity;	
  

•  Outras	
  podem	
  estar:	
  
        •  Executando	
  em	
  segundo	
  plano;   	
  	
  
        •  Pausadas;	
  
        •  Paradas;	
  


•  Toda	
  tela	
  é	
  uma	
  Acvity:	
  ligação,	
  mensagem…	
  
Acvity	
  Ciclo	
  de	
  Vida	
  




                                     Finish()	
  
Navegando	
  entre	
  telas	
  
•  Para	
  navegarmos	
  entre	
  várias	
  telas,	
  
   ulizaremos	
  os	
  seguintes	
  métodos:	
  
   –  startAcvity(intent);	
  
       •  Pode	
  enviar	
  parâmetros	
  
       •  Exibe	
  uma	
  nova	
  acvity	
  
   –  startAcvityForResult(intent,codigo);	
  
       •  Pode	
  enviar	
  parâmetros	
  
       •  Exibe	
  uma	
  nova	
  acvity	
  
       •  Espera	
  um	
  retorno	
  da	
  mesma	
  
Enviando	
  parâmetros	
  
•  Para	
  se	
  enviar	
  parâmetros	
  uliza-­‐se	
  a	
  classe	
  
   Intent	
  em	
  união	
  com	
  a	
  Bundle,	
  ou	
  não;	
  
•  É	
  similar	
  a	
  um	
  HashMap;	
  




                                           Valor	
  INT	
  e	
  STRING	
  	
  
Enviando	
  parâmetros	
  
•  Para	
  se	
  enviar	
  parâmetros	
  abreviando…	
  
•  É	
  similar	
  a	
  um	
  HashMap;	
  




                                  Valor	
  Boolean	
  
Retornando	
  valores	
  
•  Uliza-­‐se	
  o	
  método	
  setResult(codigo,	
  intent);	
  
   –  Em	
  seguida	
  chama	
  o	
  método	
  finish();	
  
           –  Para	
  finalizar	
  a	
  Acvity	
  
Retornando	
  valores	
  
•  Capturando	
  o	
  retorno	
  
   –  onAcvityResult(int	
  requestCode,	
  int	
  resultCode,	
  Intent	
  data);	
  
   –  Efetua	
  a	
  leitura	
  do	
  intent	
  de	
  acordo	
  com	
  resultCode	
  
   –  requestCode	
  =	
  codigo	
  da	
  Intent	
  do	
  startAcvityForResult(i,	
  codigo);	
  
ListAcvity	
  
•  Exibe	
  dados	
  em	
  forma	
  de	
  lista;	
  

•  Subclasse	
  de	
  Acvity;	
  

•  Já	
  possui	
  métodos	
  relacionado	
  ao	
  
   componente	
  ListView;	
  
ListAcvity	
  
•  Já	
  possui	
  barra	
  de	
  rolagem;	
  

•  Método	
  setContentView(listView),	
  é	
  chamado	
  
   automáco;	
  

•  Necessário	
  um	
  ListAdapter;	
  
        •  Fazendo	
  a	
  ligação	
  entre	
  o	
  ListView	
  e	
  os	
  dados.	
  
ListAcvity	
  
•  Um	
  rápido	
  exemplo…	
  




                                  Array	
  com	
  itens	
  do	
  ListView	
  (Lista)	
  
ListAcvity	
  
•  Um	
  rápido	
  exemplo…	
  
Exercicio	
  4	
  
•  Crie	
  um	
  Menu	
  ulizando	
  uma	
  ListAcvity	
  
   –  Com	
  Icones	
  

   –  Ao	
  clicar	
  em	
  um	
  item,	
  navegar	
  para	
  a	
  	
  
      respecva	
  tela;	
  
   –  Esse	
  Menu	
  deve	
  conter	
  Icones,	
  Imagem	
  de	
  Fundo	
  
      (Adicione	
  um	
  tela	
  de	
  Login);	
  
       •  Precisa-­‐se	
  de	
  um	
  layout.xml	
  
       •  Uma	
  classe	
  representando	
  cada	
  Item	
  
       •  Adapter	
  


                                                                  Códigos	
  
Exercicio	
  4	
  
•  Criando	
  o	
  layout_list.xml	
  
Exercicio	
  4	
  
•  Criando	
  a	
  classe	
  Icones	
  
        •  Representando	
  cada	
  item	
  da	
  lista	
  
Exercicio	
  4	
  
•  Criando	
  o	
  a	
  classe	
  Icones	
  (Connuação)	
  
       •  Representando	
  cada	
  item	
  da	
  lista	
  
Exercicio	
  4	
  
•  Criando	
  o	
  a	
  classe	
  IconesAdapter	
  (Connuação)	
  
       •  Adaptor	
  para	
  a	
  List	
  
Exercicio	
  4	
  
•  Criando	
  o	
  a	
  classe	
  IconesAdapter	
  (Connuação)	
  
       •  Adaptor	
  para	
  a	
  List	
  
Exercicio	
  4	
  
•  Criando	
  o	
  a	
  classe	
  IconesAdapter	
  (Connuação)	
  
       •  Adaptor	
  para	
  a	
  List	
  
Exercicio	
  4	
  
•  Configurando	
  a	
  Acvity	
  
Exercicio	
  4	
  
•  Configurando	
  a	
  Acvity	
  
Intent	
  Iniciando…	
  



     Bem	
  vindo	
  ao	
  mundo	
  das	
  
                 Intent	
  
Intent	
  
•  Representa	
  uma	
  “ação”,	
  que	
  será	
  executada	
  
   pela	
  aplicação	
  em	
  conjunto	
  com	
  o	
  sistema	
  
   operacional;	
  
•  Exemplos:	
  
   –  Abrir	
  uma	
  nova	
  tela	
  startAcvity(intent);	
  
   –  Efetuar	
  uma	
  ligação;	
  
   –  Abrir	
  o	
  browser;	
  
   –  Abrir	
  um	
  mapa;	
  
Intent	
  
•  Algumas	
  das	
  avidades/intenções	
  precisam	
  de	
  
   autorização/permissão;	
  
   –  Internet:	
  
       •  android.permission.INTERNET	
  
   –  Contatos:	
  
       •  android.permission.READ_CONTACTS	
  
   –  Ligação:	
  
       •  android.permission.CALL_PHONE	
  
Vamos	
  a	
  praca	
  
•  Abrindo	
  o	
  browser	
  
Vamos	
  a	
  praca	
  
•  Faça	
  uma	
  ligação	
  
    –  Ação:	
  Intent.ACTION_CALL;	
  
    –  URI:	
  “tel:numerodesejado”;	
  
    –  android.permission.CALL_PHONE	
  
Intent	
  Finalizando	
  
•  Pode	
  ser	
  ulizado	
  para	
  comunicar	
  aplicações	
  
   disntas;	
  
   –  IntentFilter	
  
•  Exemplos:	
  
   –  Nossas	
  aplicações;	
  
   –  Abrir	
  mapa	
  em	
  determinadas	
  coordenadas;	
  
   –  Listar	
  contatos	
  ou	
  UM	
  contato	
  por	
  id;	
  
   –  Tocar	
  músicas,	
  videos…	
  
Layouts	
  Iniciando…	
  



     Bem	
  vindo	
  ao	
  mundo	
  dos	
  
              Layouts	
  
Layouts	
  
•  Define	
  um	
  forma	
  de	
  organizar	
  os	
  
   componentes	
  na	
  tela/View;	
  
    –  Horizontal	
  ou	
  Vercal;	
  	
  

    –  Exatas	
  coordenadas;	
  
        •  Podendo	
  ser	
  indicado	
  X	
  e	
  Y;	
  


    –  Tabular;	
  
Layouts	
  –	
  Hierarquia	
  de	
  Componentes	
  
                      View	
  



                                          ViewGroup	
  
 TextView	
  


     ImageView	
  
                     AbsoluteLayout	
        LinearLayout	
  



                                             TableLayout	
  
Layouts	
  
•  Propriedades	
  como:	
  
   –  Layout_width:	
  receber	
  inteiros(dpi,	
  px)	
  
       •  fill_parent,	
  match_parent,	
  wrap_content;	
  
   –  Layout_heightreceber	
  inteiros(dpi,	
  px)	
  
       •  fill_parent,	
  match_parent,	
  wrap_content;	
  
   –  Layout_weight	
  
   –  Layout_gravity	
  
   –  Layout_marginTop,	
  Layout_marginRight	
  
   –  background	
  
   –  Entre	
  outros….	
  
LinearLayout	
  
•  Possibilita	
  a	
  organização/alinhamento	
  de	
  
   componentes	
  na	
  vercal	
  ou	
  horizontal(padrão);	
  

•  Controlado	
  pela	
  propriedade	
  orientaon;	
  

•  Pode-­‐se	
  controlar	
  alinhamento	
  com	
  gravity;	
  

•  Pode-­‐se	
  controlar	
  preenchimento	
  com	
  weight;	
  
   –  Relevância	
  (quem	
  pode	
  mais);	
  
TableLayout	
  
•  Semelhante	
  a	
  uma	
  tabela;	
  
    –  Ul	
  para	
  formulários;	
  


•  Cada	
  linha	
  é	
  representada	
  por:	
  
    –  TableRow	
  subclasse	
  de	
  LinearLayout;	
  
    –  Cada	
  componente	
  inserido	
  representa	
  uma	
  
       coluna	
  automacamente;	
  
Layouts	
  Iniciando…	
  



     Bem	
  vindo	
  ao	
  mundo	
  das	
  
        No3fica3ons	
  
Noficaons	
  
•  Classe:	
  android.app.Noficaon	
  

•  Exibi	
  uma	
  mensagem	
  na	
  barra	
  de	
  	
  
   	
  status;	
  

•  Possui	
  um	
  conteúdo/mensagem;	
  

•  Visualizando	
  o	
  conteúdo	
  uma	
  Intent	
  	
  
   	
  pode	
  ser	
  disparada;	
  
Noficaons	
  
•  Úl	
  para	
  não	
  abrir	
  uma	
  tela	
  sem	
  permissão;	
  

•  Aplicação	
  em	
  segundo	
  plano	
  disparar	
  um	
  
   Alerta;	
  

•  Evita	
  atrapalhar	
  o	
  usuário	
  de	
  forma	
  elegante;	
  
Noficaons	
  
•  Configurando	
  
Noficaons	
  
•  Configurando	
  parâmetros	
  
   –  New	
  Noficaon	
  
      •  Icone	
  
      •  Texto	
  para	
  exibição	
  na	
  barra	
  de	
  status	
  
      •  Hora	
  e	
  Data	
  de	
  inicialização	
  
   –  PendingIntent	
  
      •  Contexto	
  
      •  Codigo	
  da	
  requisicao	
  
      •  Intent	
  (a	
  ser	
  executada	
  no	
  clique	
  );	
  
      •  Controlar	
  a	
  abertura	
  da	
  Intent	
  
Noficaons	
  
•  Configurando	
  parâmetros	
  
   –  LatesEventInfo	
  
      •  Contexto	
  
      •  Titulo	
  da	
  noficaon	
  
      •  Conteudo	
  
      •  PendingIntent	
  
   –  Nofy(id,	
  noficaon)	
  
      •  Id:	
  idenfica	
  a	
  noficacao	
  
Noficaons	
  
•  Configurando	
  para	
  cancelar	
  




     Ou	
  adicionar	
  no	
  onDestroy(),	
  para	
  encerra	
  junto	
  com	
  
     a	
  Acvity	
  que	
  a	
  iniciou!	
  
Hvp	
  Iniciando…	
  



      Bem	
  vindo	
  ao	
  mundo	
  do	
  
                   HEp	
  
HTTP	
  
•  Muitas	
  vezes	
  manter	
  os	
  dados	
  no	
  disposivo	
  é	
  
   caro;	
  complexo;	
  inseguro;	
  
•  Para	
  isso	
  a	
  solução	
  seria	
  ulizar	
  conexões	
  Hvp;	
  
    –  Teremos	
  acesso	
  a	
  dados	
  complexos;	
  
    –  Informações	
  seguras;	
  

•  Atualmente	
  as	
  aplicações	
  tornam-­‐se	
  on-­‐line;	
  
    –  Tento	
  acesso	
  em	
  tempo	
  real;	
  
•  Importante:	
  
    –  Quanto	
  maior	
  o	
  número	
  de	
  serviços	
  de	
  uma,	
  maior	
  
       será	
  o	
  seu	
  valor;	
  
HTTP	
  
•  Comumente	
  existe	
  a	
  necessidade	
  de	
  
   comunicação	
  com	
  um	
  servidor	
  para	
  troca	
  de	
  
   informações;	
  

•  Essa	
  comunicação	
  é	
  independente	
  de	
  
   linguagem,	
  visto	
  que	
  é	
  através	
  do	
  protocolo	
  
   HTTP;	
  
HTTP	
  Post	
  
•  Indica-­‐se	
  ulizar	
  o	
  método	
  POST	
  

•  Por	
  quê?	
  
    –  1º:	
  Dados	
  colocados	
  no	
  corpo	
  da	
  mensagem;	
  
    –  2º:	
  Separados	
  da	
  URI	
  
    –  3º:	
  São	
  encapsulados	
  para	
  o	
  usuário	
  
HTTP	
  Post	
  
•  Como	
  efetuar	
  a	
  comunicação	
  de	
  envio?	
  
HTTP	
  Post	
  
•  Como	
  efetuar	
  a	
  comunicação	
  de	
  retorno?	
  
Exercicio	
  Final	
  
•  Vamos	
  criar	
  uma	
  aplicação	
  para	
  cadastro	
  	
  
   	
  de	
  clientes	
  via	
  HTTP;	
  
    –  Nome	
  
    –  Endereço,	
  Numero	
  
    –  Tipo	
  de	
  Pessoa(FISICA	
  ou	
  JURIDICA)	
  
    –  Isento	
  de	
  ICMS	
  
Exercicio	
  Final	
  
•  Vamos	
  criar	
  uma	
  aplicação	
  para	
  enviar	
  email	
  
   	
  via	
  HTTP;	
  
   –  Email	
  enviado	
  disparar	
  uma	
  	
  
      noficação;	
  
Obrigado	
  


    Muito	
  Obrigado!	
  

Más contenido relacionado

La actualidad más candente

Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAmazon Web Services LATAM
 
Primeiros passos utilizando o AWS Mobile Hub
Primeiros passos utilizando o AWS Mobile HubPrimeiros passos utilizando o AWS Mobile Hub
Primeiros passos utilizando o AWS Mobile HubAmazon Web Services LATAM
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSAmazon Web Services LATAM
 
DevOps: desenvolvedores e sysadmins cooperando na prática
DevOps: desenvolvedores e sysadmins cooperando na práticaDevOps: desenvolvedores e sysadmins cooperando na prática
DevOps: desenvolvedores e sysadmins cooperando na práticaAri Stopassola Junior
 
Construindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsConstruindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsCamila Carrera
 
Webinar: Como obter valor comercial com Big Data
Webinar: Como obter valor comercial com Big DataWebinar: Como obter valor comercial com Big Data
Webinar: Como obter valor comercial com Big DataAmazon Web Services LATAM
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRElvis Rocha
 
Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Pablo Nóbrega
 
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...Dan El Pierre Rezende
 
Multicloud APIs Deployment using Azure DevOps, AKS, GKE and OpenShift
Multicloud APIs Deployment using Azure DevOps, AKS, GKE and OpenShiftMulticloud APIs Deployment using Azure DevOps, AKS, GKE and OpenShift
Multicloud APIs Deployment using Azure DevOps, AKS, GKE and OpenShiftAndré Dias
 
DevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaDevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaAmazon Web Services LATAM
 
Liderando inovação no mundo enterprise na velocidade das startups
Liderando inovação no mundo enterprise na velocidade das startupsLiderando inovação no mundo enterprise na velocidade das startups
Liderando inovação no mundo enterprise na velocidade das startupsAmazon Web Services LATAM
 
TheDevConf - Implantando Arquitetura de Microsserviços em Alta Disponibilidad...
TheDevConf - Implantando Arquitetura de Microsserviços em Alta Disponibilidad...TheDevConf - Implantando Arquitetura de Microsserviços em Alta Disponibilidad...
TheDevConf - Implantando Arquitetura de Microsserviços em Alta Disponibilidad...André Dias
 
SATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWSSATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWSAnderson Contreira
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsRicardo Martins ☁
 

La actualidad más candente (20)

Jboss eap 6
Jboss eap 6Jboss eap 6
Jboss eap 6
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWS
 
JavaME - Aula 1
JavaME - Aula 1JavaME - Aula 1
JavaME - Aula 1
 
Primeiros passos utilizando o AWS Mobile Hub
Primeiros passos utilizando o AWS Mobile HubPrimeiros passos utilizando o AWS Mobile Hub
Primeiros passos utilizando o AWS Mobile Hub
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWS
 
DevOps: desenvolvedores e sysadmins cooperando na prática
DevOps: desenvolvedores e sysadmins cooperando na práticaDevOps: desenvolvedores e sysadmins cooperando na prática
DevOps: desenvolvedores e sysadmins cooperando na prática
 
Como começar com Amazon EKS
Como começar com Amazon EKSComo começar com Amazon EKS
Como começar com Amazon EKS
 
Construindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOpsConstruindo pipelines com Azure DevOps
Construindo pipelines com Azure DevOps
 
Webinar: Como obter valor comercial com Big Data
Webinar: Como obter valor comercial com Big DataWebinar: Como obter valor comercial com Big Data
Webinar: Como obter valor comercial com Big Data
 
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BRJBoss Fuse Service Works - O Fuse além da integração - PT-BR
JBoss Fuse Service Works - O Fuse além da integração - PT-BR
 
Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2
 
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
AWS SUMMIT São Paulo - DEV02 AWS e DevOps - Explore e aproveite o melhor dos ...
 
Multicloud APIs Deployment using Azure DevOps, AKS, GKE and OpenShift
Multicloud APIs Deployment using Azure DevOps, AKS, GKE and OpenShiftMulticloud APIs Deployment using Azure DevOps, AKS, GKE and OpenShift
Multicloud APIs Deployment using Azure DevOps, AKS, GKE and OpenShift
 
DevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaDevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínua
 
Liderando inovação no mundo enterprise na velocidade das startups
Liderando inovação no mundo enterprise na velocidade das startupsLiderando inovação no mundo enterprise na velocidade das startups
Liderando inovação no mundo enterprise na velocidade das startups
 
ESX Tech Lives - DevOps
ESX Tech Lives - DevOpsESX Tech Lives - DevOps
ESX Tech Lives - DevOps
 
TheDevConf - Implantando Arquitetura de Microsserviços em Alta Disponibilidad...
TheDevConf - Implantando Arquitetura de Microsserviços em Alta Disponibilidad...TheDevConf - Implantando Arquitetura de Microsserviços em Alta Disponibilidad...
TheDevConf - Implantando Arquitetura de Microsserviços em Alta Disponibilidad...
 
Deep dive com Microserviços e Docker
Deep dive com Microserviços e DockerDeep dive com Microserviços e Docker
Deep dive com Microserviços e Docker
 
SATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWSSATADS 2019 - Desenvolvimento com recursos da AWS
SATADS 2019 - Desenvolvimento com recursos da AWS
 
Iac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deploymentsIac & DevOps no Azure: Automatizando deployments
Iac & DevOps no Azure: Automatizando deployments
 

Similar a Treinamento Android Nooclix

Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma AndroidNatanael Fonseca
 
Desenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaDesenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaWaldir R. Pires Jr
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)Walanem Figueiredo
 
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Afonso Machado
 
Palestra Dispositivos Móveis
Palestra Dispositivos MóveisPalestra Dispositivos Móveis
Palestra Dispositivos MóveisGrendene S/A
 
Write once, run "everywhere"
Write once, run "everywhere"Write once, run "everywhere"
Write once, run "everywhere"Stefan Horochovec
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para AndroidClaudio Pereira
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - BásicoHugoDalevedove
 
Iniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google AndroidIniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google AndroidSalvador Torres
 
Aula01 mobilidade android
Aula01 mobilidade androidAula01 mobilidade android
Aula01 mobilidade androidRoberson Alves
 
Android: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelAndroid: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelCampus Party Brasil
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o AndroidHeider Lopes
 
Android: Uma nova maneira de pensar
Android: Uma nova maneira de pensarAndroid: Uma nova maneira de pensar
Android: Uma nova maneira de pensarcezarsignori
 
Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012guisester
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidRafael Sakurai
 
Desenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGapDesenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGapMayron Cachina
 

Similar a Treinamento Android Nooclix (20)

Phonegap
PhonegapPhonegap
Phonegap
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
 
Desenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaDesenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em Java
 
Android Studio
Android StudioAndroid Studio
Android Studio
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)
 
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1
 
Palestra Dispositivos Móveis
Palestra Dispositivos MóveisPalestra Dispositivos Móveis
Palestra Dispositivos Móveis
 
Android
AndroidAndroid
Android
 
Write once, run "everywhere"
Write once, run "everywhere"Write once, run "everywhere"
Write once, run "everywhere"
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - Básico
 
Iniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google AndroidIniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google Android
 
Aula01 mobilidade android
Aula01 mobilidade androidAula01 mobilidade android
Aula01 mobilidade android
 
Android: Conheça o Futuro Inevitável
Android: Conheça o Futuro InevitávelAndroid: Conheça o Futuro Inevitável
Android: Conheça o Futuro Inevitável
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o Android
 
Android: Uma nova maneira de pensar
Android: Uma nova maneira de pensarAndroid: Uma nova maneira de pensar
Android: Uma nova maneira de pensar
 
Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012
 
Apresentação Google Android
Apresentação Google AndroidApresentação Google Android
Apresentação Google Android
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao Android
 
Desenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGapDesenvolvendo para Android com PhoneGap
Desenvolvendo para Android com PhoneGap
 

Treinamento Android Nooclix

  • 1. Treinamento  em  Google  Android   Por:          Iury  Teixeira   Email:  iuryteixeira@nooclix.com.br                          franciury@gmail.com   Msn:      franciury@hotmail.com                
  • 2. Quem  sou  ?   •  Bacharel  em  Sistemas  de  Informação   •  Especialização  em  Desenvolvimento  Web  com   JavaEE  (Cursando)   •  Jug  Leader  CaJUG   •  Sócio  na  nooclix   •  Professor   •  Cer3ficações:  SCJP  6          (CSM)    
  • 4. Agenda   •  Android  ?   –  O  que  é  ?   •  Um  pouco  mais  de  conceitos   –  OHA   •  Componentes  Básicos   –  Estrutura   •  Widgets   –  Dalvik   •  Ac3vity   –  Kernel   •  Intent   –  Android  Market   •  Um  pouco  de  Layout   –  Emulador   •  No3fica3on   –  Config.  Ambiente   •  HEpConnec3on   –  HelloWorld  Android  !  
  • 6. Introdução   •  O  mercado  mobile  cresceu  muito  nos  úlmos   anos;   •  Uma  grande  procura  por:     •  Jogos  3D   •  Internet  a  qualquer  hora   •  GPS   •  TV  Digital   •  Musicas   •  Ah,  e  fazer  ligações…!  
  • 7. Introdução   •  Todos  estamos  nos  acostumandos  com  a   comodidade;   •  Opções  com  valor  elevado;   •  Solução  acessível,  flexivel  e  poderosa;   –  Para  empresas;   –  Para  usuários;   –  Para  operadoras;   –  Para  nós,  desenvolvedores.  
  • 8. O  Android  !   •  Para  tanto  surgiu  o  Google  Android  !   •  Plataforma  de  Desenvolvimento  para   aplicavos  móveis;   •  Baseada  em  Linux;   •  Já  possui  diversos  recursos  instalados  e  pré-­‐ configurados;  
  • 9. O  Android  !   •  É  mando  pela  Google  e    outras  instuições;   –  Como  assim  ?   •  Um  grupo  chamado  OHA,  formado  por  várias   empresas  do  seguimento;     •  Uniram-­‐se  ao  Google  para  desenvolver  um   solução  aberta,  moderna  e  que  compesse   com  a  Apple;  
  • 10. Open  Handset  Alliance   •  OHA  –  Open  Handset  Alliance   –  São  lideres  de  mercado,  aliados  e  liderados  pelo   Google;   –  Como:   •  HTC,  Samsung,  Sony,  Motorola,  LG,  Toshiba,  Nextel,   •  T-­‐Mobile,  Asus,  Intel,  etc....   •  Em  tordo  de  50  empresas  integram  o  grupo!   •  Grande  vantagem  por  ser  OpenSource,  Free(Gratuito);  
  • 11. Android   •  Pode  ser  customizado  de  qualquer  forma;   •  Integrar  aplicações  navas  com  as  suas;   •  Não  há  diferenças  entre  as  apps  navas  e  as   desenvolvidas  por  terceiros;   •  Recursos  3D  baseados  no  OpenGL  ES    
  • 12. Depois  de  tanto  poder…  
  • 13. Android  e  o  Linux   •  Android  é  baseado  no  Kernel  2.6  do  Linux;   •  O  Linux  é  responsável  por  gerenciar:     Memória   Redes   Threads   Processos   Drivers   Segurança  
  • 14. Android  e  o  Linux   •  Gerenciamento  de  aplicações:   –  Cada  aplicação  inicia  um  processo;   •  Seja  com  telas  ou  em  background   –  Se  preciso  o  sistema  poderá  encerrar  um  processo   para  liberar  memória  e  recursos;   •  Podendo  ser  reiniciado...    -­‐  Para  cada  aplicação  existe  um  usuário  no   sistema  operacional;      
  • 15. Máquina  Virtual   –  Assim  como  no  Java,  o  Android  possui  uma  VM,   chamada  Dalvik.  VM  omizada  para  baixo   consumo  de  recursos   –  Essa  mesma,  é  responsável  por  efetuar  toda   compilação  e  transformar  em  código  executável   no  Android;   –  Não  existe  uma  JVM  no  Android;   –  E  como  funciona  ?  
  • 16. Máquina  Virtual   Como  funciona  a  exportação  de  uma     Código  Java   aplicação  Android  !   .class  (Java   Compilado)   .dex  (Dalvik   Executável)   .apk  (Aplicação,   imagens…)  
  • 18. Licença   •  1ª  Plataforma  móvel  completamente  Open-­‐ Source;   •  Várias  vantagens;   –  Desenvolvedores;   –  Fabricantes  de  Smartphones;   –  E  Usuários;   –  A  licença  da  Apache  possibilita  alterações  sem   obrigar  a  liberação  de  código;    
  • 19. Android  Market   •  Objevo:     –  Possibilitar  aos  desenvolvedores  um  local  para   disponibilizar  suas  Apps.   •  Para  ulizar:   –  Cadastro,  pagamento  de  US$  25.00;   –  Após  isso  pode  ser  instalado  por  qualquer  usuário;  
  • 20. Android  Market   •  Android  Market  já  possui  mais  aplica3vos   gratuitos  que  a  AppStore,  da  Apple   – Segundo  analistas,  loja  de  aplica6vos  do   Android  pode  superar  a  App  Store  em   número  total  de  programas  em  cinco  meses   02  de  Maio  de  2011  |  14:30h   – OlharDigital    
  • 21. Plataformas  ou  Versões   •  No   mundo   Android   as   versões   são   conhecidas   como  plataformas;  
  • 22. Plataformas  ou  Versões   •  No  dia  10/05     –  nova   versão,   Ice   Cream   Sandwich;   –  Unificar  as  plataformas   •  Smartphone  e  Tablets   –  Features:   •  Reconhecimento  de  Faces;   •  Reconhecimento  de  Voz   –  Superando  o  iOS;   •  Mudança  de  Foco    esse  ano   iliz ado  ainda D i sp o n i b
  • 23. Android  SDK   •  Contém:     –  toda  a  API  necessária  para  desenvolver  ulizando   a  linguagem  Java;   –  Contém  o  emulador;   •  Sendo  possível  plugar  um  celular  na  USB  para  executar/ testar  a  aplicação;   •  Para   isso   necessita   do   driver   do   celular   instalado   na   máquina;  
  • 24. Android  SDK   •  Instalando  o  SDK...   –  hvp://developer.android.com/sdk/   •  Instalando  o  plugin  no  eclipse  –  ADT   –  hvp://dl.google.com/android/ADT-­‐10.0.1.zip  
  • 25. Configurando  a  plataforma  no  SDK   •  O   SDK   vem   vazio,   ou   seja,   sem   plataforma   alguma;   •  Vamos  ulizar  a  versão  2.2;   •  Para   isso   vamos   ulizar   a   ferramenta   inclusa   no   SDK   chamada,   Android   SDK   and   AVD   Manager.  
  • 26. Android  SDK  And  AVD  Manager   •  Instalar  novas  plataformas   •  Documentação   •  Add-­‐ons,  como:  Google  Maps   •  Drivers  USB  
  • 27. Android  SDK  And  AVD  Manager   •  Para  iniciar  a  ferramenta  clique  em:  
  • 28. Android  SDK  And  AVD  Manager   •  Poderá  acontecer  o  seguinte:  
  • 29. Android  SDK  And  AVD  Manager   •  Solução   1º  Passo  
  • 30. Android  SDK  And  AVD  Manager   •  Solução   2º  Passo  
  • 31. Android  SDK  And  AVD  Manager   •  Solução   3º  Passo  
  • 32. Android  SDK  And  AVD  Manager   •  Solução   4º  Passo  
  • 33. Android  SDK  And  AVD  Manager   •  Para   visualizar   os   pacotes   que   estão   instalados,   clique   no   menu   de   opções   a   esquerda  em,  Installed  Packages.  
  • 34. Android  SDK  And  AVD  Manager   •  Para  instalar  uma  nova  plataforma,  faça:  
  • 35. Android  SDK  And  AVD  Manager   •  Mas  o  que  é  AVD  ?   –  Android  Virtual  Device   –  Criação   de   uma   configuração,   para   que   o   emulador  possa  simular  a  mesma;  
  • 36. Android  SDK  And  AVD  Manager   Android  2.1   AVD  1   SD  1024  MB   Resol.:  HVGA   Android  2.2   SD  500  MB   AVD  2   Resol.:  HVGA   Android  2.2   SD  1024  MB   AVD  3   Resol.:  WQVGA432  
  • 37. Criando  uma  nova  AVD   •  Clique  em  New  
  • 38. HelloWorld  !   •  Crie  um  novo  projeto   –  File  >  New  >  Android  Project  
  • 39. HelloWorld  !   •  Na  proxima  janela   •  Project  Name:  Nome  do  projeto;   •  Build  Target:  Plataforma  ulizada  (2.2)   •  Applica3on  Name:  No  da  aplicação  que  será  exibida  no   celular;   •  Package  Name:  br.com.nooclix.zn     –  Manterá  a  Acvity  principal  (  Único  );   •  Create  Ac3vity:  Tela  principal  da  aplicação;   •  Min  SDK  Version:    Level  da  API  (  2.2  =  8)    
  • 40. Criando  o  HelloWorld  !   Após  preencher     todos  os  campos     clique  em  Finish  
  • 42. Estrutura  do  Projeto   •  Src  –  Código  Java   •  Gen   –   Classe   R.   Permi   acessar   os   recursos   (imagens,   arquivos,   componentes)   através   de   constantes;   Não   pode   ser   alterada   manualmente;   •  Assests  –  Contém  arquivos  customizados,  como  fontes;   •  Res  –  Contém  subpastas  de  recursos;   •  Drawable  –  Imagens  ulizadas  na  aplicação;   •  Layout  –  Pasta  com  layouts  em  XML;   •  Values  –  Arquivos  XML,  como:  Strings  para  internacionalização;   –  Cores,  Eslos,  etc.  
  • 43. Executando  o  Projeto   Botão  direito  no  projeto  e  siga  os  passos  abaixo:  
  • 44. Entendendo  os  arquivos  do  projeto   •  /res/layout/main.xml   •  Os  arquivos  XML  na  pasta  layout  representa  uma  tela  da  aplicação;   •  As  TAGS  representa  os  componentes,  a  criação  da  Visão;   •  Os  componentes  visuais  podem  ser  criados  via  API  Java;  
  • 45. Entendendo  os  arquivos  do  projeto   •  /res/values/string.xml   •  Chave  -­‐  Valor;   •  Muito  importante  para  internacionalização;   Chave   Valor  
  • 46. Entendendo  os  arquivos  do  projeto   •  A  Classe  R   •  Possui  constantes  (do  po  INT)  para  todos  os  recursos  criados;   •  Acessa  imagens;   •  É  atualizada  automacamente  pelo  ADT(Plugin),  quando  a  pasta  res   é  alterada;   –  R.drawable.imagem1;   –  R.layout.meu_layout;   –  R.string.valor_string;   –  R.style.meu_eslo;  
  • 47. Entendendo  os  arquivos  do  projeto   •  IMPORTANTE:   Todos  os  recursos  devem  ter:  nomes   minusculos  e  sem  espaços.  Caso  não  siga  a   regra  a  classe  R  não  será  compilada.  
  • 49. AndroidManifest.xml   •  Deve-­‐se  manter  na  raiz  do  projeto;   •  Mantem  todas  as  configurações  do  projeto:   –  Nome,  pacote  base,  ícone   –  Acvity’s   –  Versão  SDK   –  Permissões   •  Com  o  eclipse  existe  um  editor  visual;   •  Semelhante  ao  web.xml;  
  • 51. AndroidManifest.xml   O  que  significa  essas  linhas?   Pode  ser  executada  isoladamente,  ponto  inicial   A  Acvity  estará  na  tela  inicial  
  • 52. Obtendo  componentes   •  Em  certos  casos  é  necessário  capturar  valores  da   visão,  assim  como  adiciona-­‐los  de  forma   dinâmica;   •  Método  findById(id);   •  É  preciso  fazer  um  cast,  para  o  componente   ulizado;  
  • 53. Obtendo  componentes   Arquivo  XML  (  layout/main.xml  )   Arquivo  Java  (  Principal.java  )  
  • 54. Tratamento  de  Eventos   •  Para  controlar  eventos,  iremos  o  ulizar  o   método  setOnClickListener(listener);  Veja;  
  • 55. Exercicio  1   •  Crie  um  projeto  chamado  tandroid;   –  Crie  as  seguintes  Strings  (string.xml)   •  Produto;  Quandade;  Valor;  Calcular;   –  E  faça:   Efetue  o  valor  total  da  compra  
  • 56. E  o  SysOut  ?     •  Ao  ulizar  o  método  System.out.println(),  nada   acontece;   •  Normal;   •  É  preciso  usar  o  LogCat,  com  a  chamada:   Log.i(“categoria”,  “mensagem”);   Log.w(“categoria”,  “mensagem”);  
  • 57. Widgets  Iniciando…   Bem  vindo  ao  mundo  dos   Widgets  
  • 58. TextView  e  EditText   •  Propriedades:   –  layout_width  =  [“wrap_content”    ou  “fill_parent”]    -­‐>  Preenchimento  Lateral   –  layout_heigth  =  [“wrap_content”    ou  “fill_parent”]    -­‐>  Preenchimento  Altura   –  background  =  “#FFFF34”  -­‐>  Cor  de  Fundo   –  textColor  =  “#FFFF34”  -­‐>  Cor  da  Fonte   –  hint  =  “qualquer  texto”-­‐>  Mensagem  se  o  texto  esver  vazio.   –  autoLink  =  [“web  ou  map  e  etc”]  -­‐  >  o  TextView  Funciona  como  link.   –  password    =  [true|false]  -­‐>  Campo  de  senha(******)   –  layout_weight  =  [“valor  inteiro”]  -­‐>  Refere-­‐se  a  porcentagem  que  o   componente  irá  ocupar  na  tela;   OBS:  A  parr  da  API  Level  8(2.2  Froyo)  fill_parent  tornou-­‐se    match_parent  
  • 59. CheckBox  e  ToggleBuvom   •  Componentes  para  seleção  de  iten  opcionais;   •  Propriedades:   –  textOn:  Exibe  um  texto  quando  selecionado;   –  textOff:  Exibe  um  texto  quando  não  está  selecionado;   •  Método  isChecked():   –  Retorna  a  situação  da  seleção;   om    
  • 60. CheckBox  e  ToggleBuvom   Arquivo  da  visão  anterior  (XML)  
  • 61. RadioBuvom   •  Seleção  Única   •  É  ulizado  com  o  auxilio  de  um  RadioGroup   •  Propriedades:   –  Text:  Texto  a  ser  exibido;   –  Checked:  Se  o  botão  iniciará  marcado  ou  não    [  true  |  false  ]   •  Método  para  obter  o  radio  selecionado,  pertence  ao  Group:   –  getCheckedRadioBuvonId();  
  • 63. Exercicio  2   •  Crie  um  novo  layout,  calc_salario   –  Calcule  a  previsão  salarial  dos  funcionários:   •  Que  sejam  de  TI;   •  O  funcionário  escolherá  o  percentual  de  aumento;  
  • 66. AutoCompleteTextView   •  Efetua  uma  busca  enquanto  digita;   –  Propriedades:   •  comple3onThreshold:  Número  minimo  para  iniciar  o   autocomplete  (default  =  2)   •  comple3onHint:  Texto  de  dica  exibido  abaixo  da  caixa;     –  É  necessário  ulizar  um  Adapter   •  ListAdapter  
  • 68. Buvon  e  ImageBuvon   •  Ambos  são  botões;   •  Porém,  o  Buvom  não  pode  ter  um  icone;   •  O  ImageBuvon  tem  um  icone;  
  • 69. ImageView   •  Permi  a  visualização  de  imagens:  JPG,  PNG  e   GIF;   –  A  imagem  no  XML  é  adicionada  através  da   propriedade  src=@drawable/suaimagem;   –  Em  Java:  
  • 70. ImageView   •  Arquivo  XML  e  Java  
  • 71. Spinner   •  Funciona  como  um  ComboBox;   •  Propriedades:   –  Prompt:  Similar  a  um  Titulo  de  Janela;   •  Métodos:   –  Object  getSelectedItem()  :  Item  selecionado;   –  long  getSelecteditemId()  :  id  do  item  selecionado;   –  int  getSelectedItemPosion()  :  Posição  do  Item;   –  Ligado  ao  Array;     setOnItemSelectedListener  
  • 72. Spinner   •  Arquivo  XML  e  Java  
  • 73. ProgressDialog   •  Mensagem  de  espera;   •  Mantem-­‐se  em  execução  através  do  método   show()  até  que  o  método  dismiss();  
  • 74. Exercicio  3   •  Criar  uma  tela  com:   –  Spinner  com  nome  de  carros;   –  ImageView  para  exibir  as  fotos  quando     clicados  no  Spinner   –  Obtenha  uma  das  imagens  da  internet:  URL;   •  Ulize  a  ProgressDialog;   –  Adicione  um  efeito  de  transição  
  • 75. ImageGallery   •  Exibi  diversas  imagens  de  uma  só  vez;   •  As  fotos  são  passadas  com  o  indicador (mouse);   •  É  necessário  a  criação  de  uma  classe  Adapter;   –  Herda  de  BaseAdapter  
  • 76. ImageGallery   •  Exemplo  (  adicione  imagens  em  drawable)   •  Criando  o  adapter    
  • 77. ImageGallery   •  Exemplo  (  adicione  imagens  em  drawable)   •  Criando  o  adapter    
  • 78. ImageGallery   •  Exemplo  (  adicione  imagens  em  drawable)   •  Criando  o  adapter    
  • 79. ImageGallery   •  Criando  a  Acvity  (  deve  ter  um  layout  para  isso  )  
  • 80. ImageGallery   •  Capturando  a  imagem  selecionada  
  • 81. Acvity  Iniciando…   Bem  vindo  ao  mundo  dos   Ac3vity  
  • 82. Acvity   •  Representa  uma  tela  da  aplicação;   •  Tem  a  função  de  gerenciar  os  eventos  da  tela;   •  Regra  de  Visão;   •  Configurar  o  View  a  ser  exibido;  
  • 83. Acvity   •  Deve  herdar  de  Acvity  ou  subclasses;   •  Deve  implementar  onCreate:   –  Inicializar    View;   –  Criar  os  elementos  da  tela;   •  Deve  ser  informado  no  AndroidManifest.xml  
  • 84. Acvity   •  Estados  de  uma  acvity   Executando   Temporariamente  interrompida   Destruída  
  • 85. Acvity   •  Cada  Acvity  é  adicionada  a  um  stack  acvity;   •  Outras  podem  estar:   •  Executando  em  segundo  plano;     •  Pausadas;   •  Paradas;   •  Toda  tela  é  uma  Acvity:  ligação,  mensagem…  
  • 86. Acvity  Ciclo  de  Vida   Finish()  
  • 87. Navegando  entre  telas   •  Para  navegarmos  entre  várias  telas,   ulizaremos  os  seguintes  métodos:   –  startAcvity(intent);   •  Pode  enviar  parâmetros   •  Exibe  uma  nova  acvity   –  startAcvityForResult(intent,codigo);   •  Pode  enviar  parâmetros   •  Exibe  uma  nova  acvity   •  Espera  um  retorno  da  mesma  
  • 88. Enviando  parâmetros   •  Para  se  enviar  parâmetros  uliza-­‐se  a  classe   Intent  em  união  com  a  Bundle,  ou  não;   •  É  similar  a  um  HashMap;   Valor  INT  e  STRING    
  • 89. Enviando  parâmetros   •  Para  se  enviar  parâmetros  abreviando…   •  É  similar  a  um  HashMap;   Valor  Boolean  
  • 90. Retornando  valores   •  Uliza-­‐se  o  método  setResult(codigo,  intent);   –  Em  seguida  chama  o  método  finish();   –  Para  finalizar  a  Acvity  
  • 91. Retornando  valores   •  Capturando  o  retorno   –  onAcvityResult(int  requestCode,  int  resultCode,  Intent  data);   –  Efetua  a  leitura  do  intent  de  acordo  com  resultCode   –  requestCode  =  codigo  da  Intent  do  startAcvityForResult(i,  codigo);  
  • 92. ListAcvity   •  Exibe  dados  em  forma  de  lista;   •  Subclasse  de  Acvity;   •  Já  possui  métodos  relacionado  ao   componente  ListView;  
  • 93. ListAcvity   •  Já  possui  barra  de  rolagem;   •  Método  setContentView(listView),  é  chamado   automáco;   •  Necessário  um  ListAdapter;   •  Fazendo  a  ligação  entre  o  ListView  e  os  dados.  
  • 94. ListAcvity   •  Um  rápido  exemplo…   Array  com  itens  do  ListView  (Lista)  
  • 95. ListAcvity   •  Um  rápido  exemplo…  
  • 96. Exercicio  4   •  Crie  um  Menu  ulizando  uma  ListAcvity   –  Com  Icones   –  Ao  clicar  em  um  item,  navegar  para  a     respecva  tela;   –  Esse  Menu  deve  conter  Icones,  Imagem  de  Fundo   (Adicione  um  tela  de  Login);   •  Precisa-­‐se  de  um  layout.xml   •  Uma  classe  representando  cada  Item   •  Adapter   Códigos  
  • 97. Exercicio  4   •  Criando  o  layout_list.xml  
  • 98. Exercicio  4   •  Criando  a  classe  Icones   •  Representando  cada  item  da  lista  
  • 99. Exercicio  4   •  Criando  o  a  classe  Icones  (Connuação)   •  Representando  cada  item  da  lista  
  • 100. Exercicio  4   •  Criando  o  a  classe  IconesAdapter  (Connuação)   •  Adaptor  para  a  List  
  • 101. Exercicio  4   •  Criando  o  a  classe  IconesAdapter  (Connuação)   •  Adaptor  para  a  List  
  • 102. Exercicio  4   •  Criando  o  a  classe  IconesAdapter  (Connuação)   •  Adaptor  para  a  List  
  • 103. Exercicio  4   •  Configurando  a  Acvity  
  • 104. Exercicio  4   •  Configurando  a  Acvity  
  • 105. Intent  Iniciando…   Bem  vindo  ao  mundo  das   Intent  
  • 106. Intent   •  Representa  uma  “ação”,  que  será  executada   pela  aplicação  em  conjunto  com  o  sistema   operacional;   •  Exemplos:   –  Abrir  uma  nova  tela  startAcvity(intent);   –  Efetuar  uma  ligação;   –  Abrir  o  browser;   –  Abrir  um  mapa;  
  • 107. Intent   •  Algumas  das  avidades/intenções  precisam  de   autorização/permissão;   –  Internet:   •  android.permission.INTERNET   –  Contatos:   •  android.permission.READ_CONTACTS   –  Ligação:   •  android.permission.CALL_PHONE  
  • 108. Vamos  a  praca   •  Abrindo  o  browser  
  • 109. Vamos  a  praca   •  Faça  uma  ligação   –  Ação:  Intent.ACTION_CALL;   –  URI:  “tel:numerodesejado”;   –  android.permission.CALL_PHONE  
  • 110. Intent  Finalizando   •  Pode  ser  ulizado  para  comunicar  aplicações   disntas;   –  IntentFilter   •  Exemplos:   –  Nossas  aplicações;   –  Abrir  mapa  em  determinadas  coordenadas;   –  Listar  contatos  ou  UM  contato  por  id;   –  Tocar  músicas,  videos…  
  • 111. Layouts  Iniciando…   Bem  vindo  ao  mundo  dos   Layouts  
  • 112. Layouts   •  Define  um  forma  de  organizar  os   componentes  na  tela/View;   –  Horizontal  ou  Vercal;     –  Exatas  coordenadas;   •  Podendo  ser  indicado  X  e  Y;   –  Tabular;  
  • 113. Layouts  –  Hierarquia  de  Componentes   View   ViewGroup   TextView   ImageView   AbsoluteLayout   LinearLayout   TableLayout  
  • 114. Layouts   •  Propriedades  como:   –  Layout_width:  receber  inteiros(dpi,  px)   •  fill_parent,  match_parent,  wrap_content;   –  Layout_heightreceber  inteiros(dpi,  px)   •  fill_parent,  match_parent,  wrap_content;   –  Layout_weight   –  Layout_gravity   –  Layout_marginTop,  Layout_marginRight   –  background   –  Entre  outros….  
  • 115. LinearLayout   •  Possibilita  a  organização/alinhamento  de   componentes  na  vercal  ou  horizontal(padrão);   •  Controlado  pela  propriedade  orientaon;   •  Pode-­‐se  controlar  alinhamento  com  gravity;   •  Pode-­‐se  controlar  preenchimento  com  weight;   –  Relevância  (quem  pode  mais);  
  • 116. TableLayout   •  Semelhante  a  uma  tabela;   –  Ul  para  formulários;   •  Cada  linha  é  representada  por:   –  TableRow  subclasse  de  LinearLayout;   –  Cada  componente  inserido  representa  uma   coluna  automacamente;  
  • 117. Layouts  Iniciando…   Bem  vindo  ao  mundo  das   No3fica3ons  
  • 118. Noficaons   •  Classe:  android.app.Noficaon   •  Exibi  uma  mensagem  na  barra  de      status;   •  Possui  um  conteúdo/mensagem;   •  Visualizando  o  conteúdo  uma  Intent      pode  ser  disparada;  
  • 119. Noficaons   •  Úl  para  não  abrir  uma  tela  sem  permissão;   •  Aplicação  em  segundo  plano  disparar  um   Alerta;   •  Evita  atrapalhar  o  usuário  de  forma  elegante;  
  • 121. Noficaons   •  Configurando  parâmetros   –  New  Noficaon   •  Icone   •  Texto  para  exibição  na  barra  de  status   •  Hora  e  Data  de  inicialização   –  PendingIntent   •  Contexto   •  Codigo  da  requisicao   •  Intent  (a  ser  executada  no  clique  );   •  Controlar  a  abertura  da  Intent  
  • 122. Noficaons   •  Configurando  parâmetros   –  LatesEventInfo   •  Contexto   •  Titulo  da  noficaon   •  Conteudo   •  PendingIntent   –  Nofy(id,  noficaon)   •  Id:  idenfica  a  noficacao  
  • 123. Noficaons   •  Configurando  para  cancelar   Ou  adicionar  no  onDestroy(),  para  encerra  junto  com   a  Acvity  que  a  iniciou!  
  • 124. Hvp  Iniciando…   Bem  vindo  ao  mundo  do   HEp  
  • 125. HTTP   •  Muitas  vezes  manter  os  dados  no  disposivo  é   caro;  complexo;  inseguro;   •  Para  isso  a  solução  seria  ulizar  conexões  Hvp;   –  Teremos  acesso  a  dados  complexos;   –  Informações  seguras;   •  Atualmente  as  aplicações  tornam-­‐se  on-­‐line;   –  Tento  acesso  em  tempo  real;   •  Importante:   –  Quanto  maior  o  número  de  serviços  de  uma,  maior   será  o  seu  valor;  
  • 126. HTTP   •  Comumente  existe  a  necessidade  de   comunicação  com  um  servidor  para  troca  de   informações;   •  Essa  comunicação  é  independente  de   linguagem,  visto  que  é  através  do  protocolo   HTTP;  
  • 127. HTTP  Post   •  Indica-­‐se  ulizar  o  método  POST   •  Por  quê?   –  1º:  Dados  colocados  no  corpo  da  mensagem;   –  2º:  Separados  da  URI   –  3º:  São  encapsulados  para  o  usuário  
  • 128. HTTP  Post   •  Como  efetuar  a  comunicação  de  envio?  
  • 129. HTTP  Post   •  Como  efetuar  a  comunicação  de  retorno?  
  • 130. Exercicio  Final   •  Vamos  criar  uma  aplicação  para  cadastro      de  clientes  via  HTTP;   –  Nome   –  Endereço,  Numero   –  Tipo  de  Pessoa(FISICA  ou  JURIDICA)   –  Isento  de  ICMS  
  • 131. Exercicio  Final   •  Vamos  criar  uma  aplicação  para  enviar  email    via  HTTP;   –  Email  enviado  disparar  uma     noficação;  
  • 132. Obrigado   Muito  Obrigado!