Introdução ao
Desenvolvimento Android
Quem somos?




  José Alexandre Macedo                            Guilherme Meira
         Mestrando em Informática               Graduando de Engenharia da Computação
(Sistemas Distribuídos + Mobile + Multimídia)
Android na Ufes
Mudança
de
cultura
Já não existem barreiras de lugar e
tempo para se conectar a internet...
Situações onde a internet é
    acessada no celular
Números desse mercado
Números desse mercado
Números desse mercado

+ 1.3 milhão ativações diárias
E no Brasil?




                                        Android alcançou 61% do mercado

Fonte: http://g1.globo.com/tecnologia/noticia/2012/03/vendas-de-smartphones-no-brasil-crescem-179-em-2011-diz-pesquisa.html
Oportunidades
Outras áreas quentes...
LEMBRE-SE
  Não é porque os
  dispositivos são
  pequenos que os
projetos são simples!
E o trampo?
Vamos aproveitar essa
       onda!
Sem preconceito com os
  concorrentes, mas...
...Android tem suas
         vantagens!

Dispositivos para todos os bolsos
...Android tem suas
     vantagens!
...Android tem suas
      vantagens!

Desenvolvimento em Java
...Android tem suas
          vantagens!

Programação em Windows, Linux e Mac
Android vai além dos
 smartphones e tablets...




Google lança óculos com Android
Android vai além dos
smartphones e tablets...




Se você desenvolve para Android você
     desenvolve para Google TV!
Android vai além dos
smartphones e tablets...

     Sony SmartWatch
o relógio Android da Sony
Android vai além dos
smartphones e tablets...




 Google quer Android nos
    eletrodomésticos
Sim...




A Google quer dominar o
        mundo!
Breve histórico
Breve histórico
                         Outubro de 2003



    Android, Inc. foi fundada
   em Palo Alto, California por
    Andy Rubin, Rich Miner,
    Nick Sears e Chris White
Breve histórico
Google adquire Android Inc.
                              Julho de 2005
Breve histórico
A Open Handset Alliance é formada


                          5 de Novembro de 2007
Breve histórico

     Android Beta SDK é
       disponibilizado


                12 de Novembro de 2007
Breve histórico

      Lançado o primeiro
       smatphone com
      Android 1.0, o HTC
         Dream (G1)


                23 de Setembro de 2008
Breve histórico

    Aí começou a perdição!
Arquitetura
Arquitetura
Processo de
  desenvolvimento Java
       tradicional

        Compilação            Interpretação




.java                .class                   JVM
Processo de
  desenvolvimento Android

         Compilação                    Compilação
                                          dex



.java                  .class                       .dex
                                apkbuilder




                  Interpretação              Dalvik
                                             Virtual
                                             Machine
        .apk
Componentes de
   Aplicação
Componentes de Aplicação



 Activity
   Responsável por definir a
interface e os comportamentos
    de uma tela da aplicação
Componentes de Aplicação



  Service
 São os processos de fundo sem
   interface com usuário. Podem
        ser locais ou remotos
Componentes de Aplicação


   Content
   Provider
Forma de expor os dados da aplicação
 sem expor suas implementações
Componentes de Aplicação



      Intents
Permite criar propósitos. Ex.: abrir uma
 activity, iniciar um serviço, exibir uma
   página web ou fazer uma ligação
Interface com Usuário
Interface com Usuário

Declaradas em arquivos XML

     Views são os blocos de
          construção básicos


A combinação de views forma um
group view
Ciclo de Vida
Ferramentas necessárias




Android Developer Tools (ADT)
        Plugin Eclipse          SDK
Ferramentas necessárias




       Android Virtual Devices
Logcat

            O melhor
           amigo do
         desenvolvedor!
Logcat




O melhor amigo do desenvolvedor Android!
#partiuEclipse
Criando um novo projeto
Criando um novo projeto
Criando um novo projeto
Criando um novo projeto
Criando um novo projeto
Dissecando
a aplicação
  gerada
Estrutura
 Básica
   dos
 Projeto
Activities,
Services, Content
Providers e outras
   classes Java
Fornece referências
  para os recursos
     disponíveis no
         projeto




Gerada e mantida automaticamente
        NÃO MEXA!
Armazena
arquivos brutos

   Permite
 subdiretórios

 Não gera ids
Um recurso é um
arquivo ou valor
 utilizado pela
   aplicação
A pasta drawable-*
armazena imagens
A values contém
valores que podem
  ser usados em
   vários locais.

  Outros arquivos
  válidos são para
   arrays, colors,
dimensions e styles
A layout contém os
arquivos de interface
     com usuário
Define os conteúdos
e comportamentos
   das aplicações
Antes de executar o
projetos precisamos
  de um virtual
  device (AVD)
Localizem e cliquem no ícone do ADV Manager
Em seguida cliquem em “New...”
Para criarmos um novo emulador
Vamos
configurar
nosso novo
 emulador
Agora é só apertar o play!
Criando nosso 1º aplicativo


        Comparador
            de
          Preços
Qual produto
                  compensa
                     mais?



600ml        360ml
R$ 4,75      R$ 3,20
Estrutura do Projeto
       main.xml                          resultado.xml

1ª Opção
                                       A Xª opção está
R$              mL                     compensando mais
                                       porque está Y%
                                                                   string.xml
            X                          mais barata!
2ª Opção

R$           mL                                               AndroidManifest.xml



        Comparar
                                                                     Criar
                          Transição                                  Modificar
                         com Intents



     MainActivity.java                  ResultActivity.java
1º Passo
Modificar main.xml
2º Passo
Criar resultado.xml
3º Passo
Modificar MainActivity.java


 Crie mais 4 variáveis com nomes quantidadeOp1, precoOp2,
quantidadeOp2, botaoComparacao da mesma forma e usando
                          o id correto
3º Passo
Modificar MainActivity.java
    Método compararPrecos()
4º Passo
Criar ResultActivity.java




Recupere o TextView do resultado usando o método
   findViewById e altere o texto com o resultado
5º Passo
Modificar AndroidManifest.xml
Resultado Final
Desenvolvendo mais!
 Criando nosso 2º aplicativo


Leitor de
Tweets
Estrutura da 1ª Parte
                                      lista_tweets.xml
     main.xml

Digite um termo de busca:             Últimos Tweets
                                         ‘termoBusca’

                                   Mensagem 1                     Criar
 Buscar Tweets                     Mensagem 2                     Modificar

                                   Mensagem 3



                                                                 string.xml

LeitorTweetsActivity.java             TweetsActivity.java

                                                            AndroidManifest.xml



                 Tweet.java   TweetConnection.java
Criando um novo projeto
Antes do passo-a-passo...
 Vamos baixar as classes
Tweet e TweetConnection


                       Tweet.java   TweetConnection.java




bit.ly/leitortwitter
1º Passo
Modificar main.xml
2º Passo
Criar lista_tweets.xml

               LinearLayout
                 (Vertical)




                 ListView
3º Passo
Modificar LeitorTweetsActivity.java
4º Passo
Criar TweetsActivity.java
5º Passo
Modificar AndroidManifest.xml
Resultado Final
Evoluindo o
 Leitor de
  Tweets!

               Aprendendo a criar
               listas com itens
               personalizados e
              conhecendo o poder
                  dos intents
Estrutura da 2ª Parte
     item_lista.xml

  Foto   Mensagem 1
                      Data




                             Compartilhar
    TweetAdapter.java        a mensagem
                             ao tocar nela


                                        Criar
    TweetsActivity.java                 Modificar
1º Passo
Criar item_lista.xml



 ImageView   LinearLayout
               (Vertical)
2º Passo
Criar TweetAdapter.java




                  continua...
2º Passo
Criar TweetAdapter.java
3º Passo
Modificar TweetsActivity.java
3º Passo
Modificar TweetsActivity.java
Resultado Final
Acabei meu aplicativo...




Como publicar no
Google Play?
Publicando no Google Play

1º Registro no Google Play $25

2º   Assinar o aplicativo com uma
          chave privada

3º   Realizar upload do apk e de
      imagens do aplicativo
Android é só alegria?
Android é só alegria?

                 Não!
Android é só alegria?




              Fragmentação é hoje o maior
                      problema
Fonte: http://developer.android.com/resources/dashboard/platform-versions.html
Android é só alegria?




              Fragmentação é hoje o maior
                      problema
Fonte: http://developer.android.com/resources/dashboard/platform-versions.html
Quero mais!

  Como
    Faço?
Android
                                    Training
                           Vídeos
Guias                               Blog
            Documentação

Exemplos
 Código        Tutoriais    Passagem
           Artigos         obrigatória!
Grupos de Discussão
   http://groups.google.com/   http://groups.google.com/
   group/android-developers      group/android-discuss



   http://groups.google.com/   http://stackoverflow.com/
       group/android-ndk       questions/tagged/android
Livros
Dúvidas?
Obrigado!

  josealexandremacedo@gmail.com
  guimeira@guimeira.com


   @jamacedo
   @gtmeira


    jamacedo.com

Introdução ao Desenvolvimento Android