SlideShare uma empresa Scribd logo
1 de 100
Baixar para ler offline
Erisvaldo Gadelha Saraiva Júnior

Faculdade de Tecnologia de João Pessoa (FATEC-JP)
Especialização em Desenvolvimento para Dispositivos Móveis
Disciplina: Tecnologias para Dispositivos Móveis

Android
                               E-mail: erisvaldojunior@gmail.com
                                  Site: http://erisvaldojunior.com
                                        Twitter: @erisvaldojunior
Sobre mim


     Empreendedor Yupi Studios
     (http://yupistudios.com);

     Desenvolvedor Mobile (LAViD);

     Mestrando em Informática (UFPB);

     Analista de Sistemas (Cehap).
Sobre a Yupi Studios




    www.yupistudios.com
Games (MinerMan)
Aplicativos (Pump Me Up!)
Soluções Corporativas (Cardápio Digital)
O que será exposto na aula?

                         Conceitos Introdutórios;
Organize with Sections



                         Mercado Mobile;

                         Expor as Tecnologias e Tendências;

                         Introduzir o Android e preparar o
                         ambiente de desenvolvimento.
Era da Computação Ubíqua
Conceitos Introdutórios
Computação Móvel / Pervasiva / Ubíqua
Conceitos Introdutórios
Computação Móvel / Pervasiva / Ubíqua
Conceitos Introdutórios
Computação em Nuvem (Cloud Computing)
Conceitos Introdutórios
Computação em Nuvem (Cloud Computing)
Conceitos Introdutórios
Conceitos Introdutórios
                          Realidade Aumentada
Roteiro da Aula


 VISÃO GERAL   PLATAFORMAS E         A PLATAFORMA
 DO MERCADO      TENDÊNCIAS             ANDROID




                       Entendendo o Mundo da Mobilidade
VISÃO GERAL DO
MERCADO


   Números do Mercado Mobile no Brasil e no Mundo
O Mercado Mobile



                         Mercado brasileiro de telefonia móvel;
Organize with Sections




                         Números do mercado internacional;

                         Mercado de jogos (Brasil e mundo).
Celulares no Brasil (2007 a 2009)
Market Share das operadoras no Brasil (2007 a 2009)
Mercado brasileiro de celulares (2010)


      202 milhões e 944 mil celulares
      Crescimento de 16,7%;
      104,7 celulares a cada 100 habitantes.


      Operadoras
      Vivo - 29,7%
      Claro - 25,4%
      TIM – 25,1%
      Oi – 19,4%
Celulares no mundo (2000 a 2009)
Principais mercados de celular no mundo (2008 e 2009)
Operadoras de telefonia no mundo (2008 e 2009)
Market Share dos fabricantes (2005 a 2007)
Market Share dos fabricantes (2009 e 2010)
Mercado americano de jogos para dispositivos móveis
Mercado mundial de jogos para dispositivos móveis




                        Gartner
Plataformas e Tendências



   Plataformas de Mobilidade e Tendências do Mercado
SOs para Desenvolvimento (no Presente)




              iOS                     Android
              RIM                        SYMBIAN



    PALM OS          Windows Mobile                MAEMO
iOS (Apple)

        iPod, iPhone (2007) e iPad (2010);

        Baseado no Mac OS X (Objective-C);

        Kit de desenvolvimento exclusivo para
        Mac OS;

        Aplicativos exclusivamente na Apple
        App Store.
Android (Open Handset Alliance, liderada pelo Google)

       Plataforma aberta baseada em Linux;

       Android Development Tools (ADT)
       Plugin para Eclipse;

       Desenvolvimento em Java (Linux /
       Windows / Mac OS);

       1º smartphone: HTC G1 (2008);
       1º tablet: Samsung Galaxy Tab (2010).
Plataformas para Desenvolvimento (no Presente)



                     JavaME
                    Flash Lite

                      PyS60

                      BREW
JavaME



         Quase 2 bilhões de aparelhos;

         Grande comunidade de
         desenvolvedores;

         Atingiu 95% dos aparelhos em 2007.
Comparativo entre JavaME e Flash Lite
Comparativo entre Tecnologias
SOs para Desenvolvimento (Apostas para o Futuro)




                                        Windows
   BADA              MeeGo
                                        Phone 7
Mercado Mobile em 2010 (Divisão dos SOs)
                         Segundo a AdMob, dados de 2010, o Android ocupa a segunda
                         posição entre os sistemas operacionais para smartphone no mundo,
                         possuindo 26% do mercado e atrás apenas do iOS, que detém 40%.
Organize with Sections
Mercado Mobile em 2010 (Crescimento dos SOs)
                         Um aspecto interessante, porém, é o crescimento do Android no
                         mercado. O SO vem em uma ascendente contínua, ao contrário do
                         iOS, que vem oscilando, e do Symbian OS, que perdeu mercado.
Organize with Sections
Mercado Mobile em 2010 (Divisão dos Fabricantes)
                     A AdMob também mostra que a Apple (aparelhos iOS) possui a maior fatia
                     de smartphones do mercado. A Nokia (aparelhos Symbian e Maemo)
                     detém a segunda posição.
Organize with Sections
Android deve superar iOS em breve
Várias pesquisas e especialistas apontam que o Android deve se tornar
mais popular que o iOS nos próximos anos.

                            Android deve superar sistema operacional do iPhone em 2012, diz estudo.
   Organize with Sections

                            http://www.tecnologia3g.com.br/site/pt/page/noticias_detalhe.asp?cod=261

                            Android é a plataforma que mais cresce, diz consultoria
                            http://tecnologia.ig.com.br/noticia/2010/11/03/android+e+a+plataforma+que
                            +mais+cresce+diz+consultoria+9956087.html

                            Co-fundador da Apple (Steve Wozniak) acredita que Android ganhará corrida
                            entre smartphones
                            http://olhardigital.uol.com.br/produtos/digital_news/co-fundador-da-apple-
                            acredita-que-android-ganhara-corrida-entre-smartphones/14935

                            Demanda por desenvolvedores Android cresceu 710% em um ano
                            http://imasters.com.br/noticia/18931/carreira/demanda_por_desenvolvedore
                            s_android_cresceu_710_em_um_ano/
Lojas de Aplicativos para Dispositivos Móveis (App Stores)

                   Modelo Antigo (antes das App Stores)

 Desenvolvedor /
                        Publisher / Grande Empresa            Operadoras
Pequena Empresa




            A porcentagem final para o desenvolvedor independente ou
            pequena empresa acabava sendo menor que 20% do total.
Lojas de Aplicativos para Dispositivos Móveis (App Stores)

                   Novo Modelo (era das App Stores)

Desenvolvedor /                                          Loja de aplicativos do
   Empresa                                             Fabricante ou Operadora




            A porcentagem final para o desenvolvedor independente ou
                   empresa agora gira em torno de 70% do total.
Apple App Store
             Loja de aplicativos para iOS (iPod, iPhone e iPad) gerenciada
             pela Apple e disponível através dos próprios aparelhos.
             Lançada em julho de 2008;

             340 mil aplicativos e 10 bilhões de downloads até
             janeiro de 2011;
App Stores




             Disponível em cerca de 90 países;

             Share de 70% Desenvolvedor e 30% Apple;

             Desenvolvedor paga inscrição e anuidade no valor
             de U$ 99,00.
Google Android Market
             Loja de aplicativos para Android gerenciada pela Google e
             disponível através dos próprios aparelhos.
              Lançado em outubro de 2008;

              Mais de 200 mil aplicativos e 3 bilhões de
              downloads até janeiro de 2011;
App Stores




              Disponível em cerca de 48 países;

              Share de 70% Desenvolvedor e 30% Google;

              Desenvolvedor paga taxa única de inscrição no
              valor de U$ 25,00.
Comparativo Android Market X Apple App Store
                 Dados referentes ao ano de 2009, quando a distância entre
                 Android Market e a Apple App Store ainda era muito grande.
Organize with Sections
Comparativo Android Market x Apple App Store
A média de downloads da Apple App Store é superior a do Android
Market, bem como a porcentagem de usuários que compram aplicações
(dados de 2009).
  Organize with Sections
Nokia Ovi Store
             Loja de aplicativos para dispositivos Nokia (Symbian, QT, Flash
             Lite e JavaME) e disponível através dos próprios aparelhos.

               Lançada em maio de 2009;

               50 mil aplicativos e média de 3 milhões de
               downloads por dia (janeiro de 2011);
App Stores




               Disponível em mais de 200 países;

               Share de 70% Desenvolvedor e 30% Nokia;

               Desenvolvedor paga taxa única de inscrição
               de apenas 1 (um) euro.
Comparação entre App Stores (custo para desenvolvedores)
Relação de App Stores (distimo.com)
In-App Payment é uma tendência
             Jogos e aplicativos são gratuitos à priori, embora vários
             recursos possam ser comprados dentro do próprio aplicativo.
App Stores
A plataforma Android



      Introdução ao Android, Arquitetura e Layouts
Definição do Android



Pilha de Software para Dispositivos Móveis que
inclui um Sistema Operacional, um Middleware e
aplicações-chave.

O Android SDK provê ferramentas e APIs para o
desenvolvimento de aplicações na plataforma
Android usando a linguagem de programação Java.
Recursos do Android

• Biblioteca Gráfica 2D e Suporte a 3D (OpenGL ES 1.0);

• SQLite;

• Suporte a Mídias diversas (MPEG-4, H.264, MP3, AAC, AMR, JPG, PNG,
GIF);

• Bluetooth, EDGE, 3G e WiFi (dependente do hardware);

• Câmera, GPS, Bússola e Acelerômetro (dependente do hardware);

• Para desenvolvedores: Android Development Tools (ADT) Plugin para
Eclipse.
História do Android

     Julho de 2005: Google comprou a
     startup Android;

     Novembro de 2007: Google anunciou a
     Open Handset Alliance (OHA) e o
     Android;

     Ainda nesse mês, liberou a primeira
     versão do Android SDK.
História do Android


     Outubro de 2008: Android se torna
     Open Source;

     Ainda nesse mês, lançado o primeiro
     smartphone com Android: o HTC G1;

     Lançado o primeiro Android Developer
     Phone (ADP), baseado no G1.
História do Android

     Julho de 2009: HTC Hero, concorrente
     direto do iPhone;

     Novembro de 2009: Motorola Droid, 1
     milhão de unidades em pouco mais de
     dois meses;

     Chegou no Brasil como Motorola
     Milestone e foi sucesso de vendas.
História do Android


     Em 2010, dezenas de ótimos
     smartphones Android foram lançados;

     Setembro de 2010: Samsung Galaxy Tab,
     primeiro tablet a concorrer com o iPad;

     Dezembro de 2010: Quarto ADP
     lançado, o Samsung Nexus S.
Versões do Android




                     AndroidManifest.xml
Android 1.1 (fevereiro de 2009)
•Alarm Clock
•API Demos
•Browser
•Calculadora
•Camera
•Contatos
•Dev Tools
•Dialer
•Email
•Maps (e StreetView)
•Mensagem
•Música
•Imagens (Galeria)
•Configurações
Android 1.5 Cupcake (maio de 2009)


Grande evolução na interface (UI),
adicionando as seguintes novidades:

•Gravação de vídeos
•Bluetooth A2DP
•Conexão Bluetooth Automática
•Upload de vídeos para YouTube e Picasa
•Copiar e Colar
Android 1.6 Donut (setembro de 2009)

O HTC Hero trazia essa versão, que incluia o
novo Android Market, além das seguintes
melhorias:

•Integração de câmera, gravação de vídeos e
galeria
•Busca por gestos e voz
•Integração de aplicativos
•Grande melhoria no Text-To-Speech
Android 2.0/2.1 Eclair (outubro de 2009)

Uma das versões mais usadas até hoje.

•Desempenho otimizado
•Mais opções de tamanho e resolução de tela
•UI bastante melhorada
•Suporte ao Exchange
•Live wallpapers
•Teclado virtual melhorado
•Bluetooth 2.1
•Google Maps 3.1.2
Android 2.2 Froyo (maio de 2010)



•Suporte completo ao Flash 10.1
•Desempenho bastante otimizado (até 5x)
•Hotspot para até 8 aparelhos
•Home Screen melhorada (atalhos dedicados)
•Melhoria do Exchange
•Melhoria da câmera
•Salvar aplicativos no cartão de memória
•Discagem por bluetooth
Android 2.3 Gingerbread (dezembro de 2010)



•Melhoria do Copiar e Colar
•Interface melhorada
•Suporte a NTFC
•Teclado multitouch
•Suporte a SIP
•Gerenciador de Downloads
•Suporte a câmera frontal e vídeo-conferência
Google App Inventor for Android
                           Criação de aplicações para Android visualmente, sem a
App Inventor for Android

                           necessidade de escrever código.
Google App Inventor for Android
                           Orientado a blocos, basta definir as suas propriedades visuais e
App Inventor for Android

                           as suas ações para determinados eventos.
App Inventor for Android   Google App Inventor for Android
Arquitetura do Android
Arquitetura do Android
     Applications
     Conjunto de aplicações-chave nativas do Android, incluindo um cliente
     de e-mail, gerenciador de SMS, calendário, mapa, navegador,
     gerenciador de contatos e outros. Todas essas aplicações foram escritas
     em Java.


     Application Framework
     Desenvolvedores tem acesso completo às mesmas APIs que as
     aplicações-chave. O framework provê um conjunto de Views que podem
     ser utilizados para construir a interface da aplicação, incluindo listas,
     tabelas, caixas de texto, botões e até mesmo um browser embutido.
     Disponibiliza também Content Providers que permitem o acesso a dados
     de outras aplicações (como o gerenciador de Contatos). Há, ainda, o
     Resource Manager (provê acesso a recursos como imagens e arquivos
     de layout), o Notification Manager (permite que a aplicação mostre
     avisos personalizados) e o Activity Manager (gerencia o ciclo de vida da
     aplicação e a sua navegação).
Arquitetura do Android
     Libraries
     Conjunto de bibliotecas C/C++ utilizadas por vários componentes do
     Android. Essas bibliotecas provêem recursos que são expostos aos
     desenvolvedores através de sua camada sobrejacente: Application
     Framework.


     Android Runtime
     Cada aplicação no Android roda em um processo diferente no Linux e
     para cada processo é criada uma instância da máquina virtual Dalvik.
     Essa máquina virtual foi criada de forma que um dispositivo possa
     executar múltiplas instâncias de forma eficiente.
     As classes compiladas da aplicação são transformadas para o formato
     .dex (Dalvik Executable), otimizado para uma mínima utilização de
     memória. A Dalvik VM interage diretamente com o kernel Linux para
     execução de funcionalidades subjacentes como tratamento de
     concorrência e gerenciamento de memória.
Noções sobre aplicações Android


           As aplicações são escritas em Java e o seu código compilado,
           juntamente com os recursos que a aplicação utilizada, são
           empacotados em um arquivo .apk pela ferramenta aapt. É
           esse arquivo .apk que é usado para distribuir a aplicação e
           instalá-la nos dispositivos Android;



           Por padrão, cada aplicação é executada como um processo
           separado, com ID único e máquina virtual própria, isolando o
           seu código das demais aplicações.
Componentes da Aplicação
Um recurso fundamental do Android é o reuso de componentes. Caso uma
aplicação precise disponibilizar uma lista de imagens com scrolling e outra
aplicação apresenta tal componente e o disponibilizou para as demais, pode-
se invocar esse componente.


Devido a essa organização dos aplicativos em componentes, as aplicações
Android não possuem um único ponto de entrada (não há um método main(),
por exemplo). Ao invés disso, as aplicações apresentam componentes
essenciais que o sistema pode instanciar e executar quando necessário. Esses
componentes podem ser de quatro tipos:
            Activities (apresenta uma interface visual para o usuário)

            Services (roda em segundo plano por um período de tempo indeterminado)

            Broadcast Receivers (recebe e reage a eventos do sistema)

            Content providers (dados do aplicativo disponíveis para os demais)
Ativando e desativando componentes
Content Providers são ativados por meio de uma requisição de um
ContentResolver. Os demais componentes (Activities, Services e Broadcast
Receivers) são ativados por mensagens assíncronas denominadas intents. Trata-
se de um objeto da classe Intent que armazena o conteúdo da mensagem. Para
activities e services, o objeto apresenta o nome da ação que está sendo
requisitada bem como o endereço do dado em que atuará, além de outras coisas.
No caso de uma Activity, por exemplo, pode conter uma requisição para
apresentar uma imagem ao usuário ou permitir que o usuário edite algum texto.
Já para Broadcast Receivers, o objeto Intent pode anunciar que um botão da
câmera foi pressionado, por exemplo.



 Content Provider e BroadCast Receiver não precisam ser desativados, uma vez
 que permanecem ativos somente enquanto estão respondendo requisições.
 Já Activities e Services podem permanecer em execução por um longo
 período de tempo, daí a necessidade de finalizá-los através dos métodos
 finish() e stopSelf(), respectivamente.
Activities

O componente mais comum de uma aplicação é um Activity. É implementado
como uma subclasse de Activity e uma aplicação pode conter uma ou mais
activities. Cada qual representa uma interface visual e uma delas é marcada
como sendo a inicial que deve ser apresentada quando a aplicação é iniciada.
Mover-se de uma Activity para outra consiste em fazer com que a Activity atual
invoque a próxima.



Cada Activity possui uma janela padrão para
                                                 O visual da janela é composto
desenhar. Normalmente a janela ocupa a tela
                                                 por uma hierarquia de views,
toda mas também pode ser menor e flutuar
                                                 objetos derivados da classe
sobre outras janelas. Uma Activity pode
                                                 base View. As views também
conter janelas adicionais, como por exemplo
                                                 são      responsáveis     por
um dialog que exige uma resposta do usuário
                                                 responder às ações do usuário
ou mostra um aviso quando um dado item é
                                                 direcionadas ao seu espaço.
selecionado.
Activities e Tasks

Conforme dito anteriormente, uma Activity pode iniciar outra, inclusive uma que
pertença a outro aplicativo. Por exemplo: uma aplicação deseja mostrar o mapa
de algum local. Já existe uma Activity que o faz, então tudo o que a sua Activity
precisa fazer é chamar o método startActivity() passando como parâmetro o
objeto da classe Intent com as informações necessárias. O mapa será mostrado e,
quando o usuário pressionar a tecla voltar, sua Activity será mostrada novamente
na tela.



  Para o usuário, isso é transparente. O Android mantém ambas as activities na
  mesma Task. Uma Task, para o usuário, é como se fosse uma aplicação.
  Tecnicamente é um grupo de Activities relacionadas que foram adicionadas
  em uma pilha. A base da pilha é a primeira Activity que é mostrada quando a
  Task é iniciada, enquanto que o topo é a Activity que está sendo executada no
  momento, ou seja, que está recebendo o foco das ações do usuário.
Ciclo de vida de uma Activity
Basicamente, uma Activity possui
         três estados:

         Ativo: quando a Activity está
         no topo da pilha (visível na
         tela e recebendo as ações do
         usuário);

         Pausado: quando a Activity
         perdeu     o    foco     mas
         permanece visível ao usuário.
         Ou seja, há outra Activity no
         topo que é transparente ou
         não ocupa toda a tela;

         Parado: quando a Activity
         está ofuscada por outra.
         Mantém o estado mas pode
         ser eliminada pelo sistema
         em caso de falta de memória.
Ciclo de vida de uma Activity
Services
Diferentemente de activities, os services não possuem interface e executam em
segundo plano por um período de tempo indeterminado. Cada serviço é uma
classe que herda de Service.




 Um exemplo clássico de Service é um tocador
 de músicas. A aplicação deve consistir de uma
 ou mais activities que permitem ao usuário
 selecionar as músicas e começar a tocá-las.
 Contudo, a execução das músicas em si não
 faz parte da Activity mas sim de um Service,
 uma vez que o usuário espera que a música
 continue a ser tocada após sair da tela.
Ciclo de vida de um Service
Broadcast Receivers

Componente que recebe e reage a anúncios de broadcast, geralmente oriundos
do sistema. Cada receiver é uma classe que herda de BroadCastReceiver.



 Mudança no fuso horário, anúncio de bateria
 fraca e mudança da linguagem por parte do
 usuário são exemplos de anúncios que podem
 ser capturados por Broadcast Receivers.

 Uma aplicação pode conter quantos
 receptores quiser. Os receptores podem
 iniciar uma Activity ou utilizar o
 NotificationManager para alertar o usuário
 (acender a luz do aparelho, vibrar, executar
 um som, etc).
Ciclo de vida de Broadcast Receivers



Quando uma mensagem de broadcast chega ao receptor, o Android invoca o
método onReceive(), passando como parâmetro um objeto Intent contendo a
mensagem.




 O Broadcast Receiver fica ativo apenas enquanto está executando esse método.
Content Providers

Componente que torna um conjunto específico de dados da aplicação disponível
para outras aplicações. Cada provider é uma classe que herda de ContentProvider
e disponibiliza um conjunto padrão de métodos para que outras aplicações
possam recuperar e armazenar dados do tipo que o provedor controla.




     As aplicações não podem acessar
     os métodos de um Content
     Provider diretamente. Para isso,
     elas precisam de um objeto
     ContentResolver, o qual pode
     conversar com qualquer Content
     Provider.
Como o Android suporta múltiplas telas?
                            Desde o Android 1.6, a plataforma provê suporte a múltiplos
Suporte a Múltiplas Telas

                            tamanhos de tela e resoluções, adequando-se aos muitos tipos e
                            tamanhos de dispositivos com Android.

                            Assim, a partir do Android 1.6, a plataforma divide a infinidade de
                            tamanhos de tela e resoluções suportadas em:

                            • Um conjunto de três tamanhos: large, normal e small;
                            • Um conjunto de três densidades: hdpi (high), mdpi (medium) e ldpi (low).

                            Dessa forma, a aplicação pode prover layouts e imagens para qualquer
                            um desses três conjuntos, sem a necessidade de trabalhar com o
                            tamanho físico real da tela do aparelho.

                            Em tempo de execução, o Android carrega o conjunto adequado de
                            recursos, baseado no dispositivo em questão.
Suporte a Múltiplas Telas
Suporte a Múltiplas Telas
Suporte a Múltiplas Telas
                            Organização de pastas de layout e imagens para uma aplicação que, em tese,
                                         suporta todos os tamanhos de telas e resoluções.
Views e ViewGroups em Android
Em Android, todos os componentes de interface gráfica são representados por
subclasses de android.view.View que representam os componentes gráficos
como TextView, Button, TextEdit, RadioButton, CheckBox, etc. Além da classe
android.view.ViewGroup, que representa um container de views e também de
ViewGroups. Ela é a classe base para componentes de layouts, como
LinearLayout, RelativeLayout, AbsoluteLayout, FrameLayout, TableLayout, etc.
Hierarquia de classes de UI
Layouts e Layout Params em Android

Para que os componentes possam ser acomodados de acordo com o layout de
seu pai, os mesmos devem manter uma relação de obediência. Sendo assim, cada
filho deve configurar os seus parâmetros de layouts, por meio da classe
ViewGroup.LayoutParams, que permite que estes determinem suas propriedades
de posição e tamanho referente ao layout de seus pais.
LinearLayout
O layout básico, padrão quando da geração de um .XML de layout no Android, é o
LinearLayout. Como o próprio nome diz, ele dispõe os componentes linearmente
em uma unica direção definida pelo atributo android:layout_orientation.
LinearLayout e LayoutParams


android:layout_gravity: similar ao float do CSS, o
gravity define a posição do conteúdo do
LinearLayout na tela, podendo-se usar top,
bottom, left, right, center, center_vertical,
center_horizontal, etc. Pode-se usar combinações
através do conector “|”. Por exemplo: “bottom |
right”.

android:layout_weight: indica quanto do espaço
extra no LinearLayout será alocado para a visão
associada aos LayoutParams. Ou seja, pode-se
dividir a tela entre os layouts atribuindo a cada
um deles um peso que define qual deles terá
maior espaçamento e, casa todos tenham o
mesmo peso, a tela é dividida igualmente.             Aplicação de peso (weight) em
                                                     um componente do LinearLayout
LinearLayout (Código)
FrameLayout

Arranja seus filhos de acordo com uma pilha de componentes que são
adicionados, sendo que o topo da pilha contém o objeto que foi adicionado por
último. Pode-se usar quando se tem várias imagens e uma é sobreposta pela
outra (como um slide de imagens) conforme vão sendo adicionadas.




          Criando uma pilha de
      componentes com FrameLayout                 Sobreposição de componentes
                                                       com FrameLayout
FrameLayout (Código)




Nota: O FrameLayout é usado comumente a partir de uma de suas subclasses,
tais como ImageSwitcher, ViewAnimator, ViewSwitcher, ScrollView, TabHost, etc.
AbsoluteLayout

Implementa um plano cartesiano e posiciona os componentes em coordenadas X,
Y de forma absoluta.




                                                 Posicionando componentes no
                                                        AbsoluteLayout
AbsoluteLayout (Código)
RelativeLayout

Os componentes são ajustados através de relacionamentos entre si ou ao seu pai.
RelativeLayout (Código)
TableLayout
Comporta seus filhos em linhas e colunas. Cada filho é representado por um
TableRow (uma espécie de LinearLayout na horizontal) que permite que uma ou
ais células sejam adicionadas horizontalmente, sendo que cada célula pode
conter um único View.
TableLayout (Código)
What’s Your Message?
OBRIGADO!

Mais conteúdo relacionado

Mais procurados

Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento MobileElton Minetto
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional AndroidLucas Damasceno
 
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...Pedro Edson Silva Barros
 
Aula 7 - Modelos de Ciclo de Vida.pptx
Aula 7 - Modelos de Ciclo de Vida.pptxAula 7 - Modelos de Ciclo de Vida.pptx
Aula 7 - Modelos de Ciclo de Vida.pptxALEXANDRELISBADASILV
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Javaamaankhan
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de SoftwareLeinylson Fontinele
 
Palestra Mobilidade - Computação móvel, Dispositivos e Aplicativos (setembro ...
Palestra Mobilidade - Computação móvel, Dispositivos e Aplicativos (setembro ...Palestra Mobilidade - Computação móvel, Dispositivos e Aplicativos (setembro ...
Palestra Mobilidade - Computação móvel, Dispositivos e Aplicativos (setembro ...Carlos Eugenio Torres
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2Carlos Eugenio Torres
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao AndroidJanynne Gomes
 
Slides - minicurso app inventor
Slides - minicurso app inventorSlides - minicurso app inventor
Slides - minicurso app inventorMichel de Souza
 

Mais procurados (20)

Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Android
AndroidAndroid
Android
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
 
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
Desenvolvimento de Aplicações para Dispositivos Móveis: Aplicativos Nativos, ...
 
Aula 7 - Modelos de Ciclo de Vida.pptx
Aula 7 - Modelos de Ciclo de Vida.pptxAula 7 - Modelos de Ciclo de Vida.pptx
Aula 7 - Modelos de Ciclo de Vida.pptx
 
Linguagem Dart (Google)
Linguagem Dart (Google)Linguagem Dart (Google)
Linguagem Dart (Google)
 
Android
AndroidAndroid
Android
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
Palestra Mobilidade - Computação móvel, Dispositivos e Aplicativos (setembro ...
Palestra Mobilidade - Computação móvel, Dispositivos e Aplicativos (setembro ...Palestra Mobilidade - Computação móvel, Dispositivos e Aplicativos (setembro ...
Palestra Mobilidade - Computação móvel, Dispositivos e Aplicativos (setembro ...
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
 
Introdução a React Native
Introdução a React NativeIntrodução a React Native
Introdução a React Native
 
Introdução ao Android
Introdução ao AndroidIntrodução ao Android
Introdução ao Android
 
Desenvolvimento IOS - Mobile
Desenvolvimento IOS - MobileDesenvolvimento IOS - Mobile
Desenvolvimento IOS - Mobile
 
Slides - minicurso app inventor
Slides - minicurso app inventorSlides - minicurso app inventor
Slides - minicurso app inventor
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Introdução ao Android Studio
Introdução ao Android StudioIntrodução ao Android Studio
Introdução ao Android Studio
 

Destaque

Certificação ITIL e Curso ITIL Virtual
Certificação ITIL e Curso ITIL VirtualCertificação ITIL e Curso ITIL Virtual
Certificação ITIL e Curso ITIL VirtualFernando Palma
 
Snc 2º ano - 2012
Snc   2º ano - 2012Snc   2º ano - 2012
Snc 2º ano - 2012Maria Costa
 
Monthly Planner 2017
Monthly Planner 2017Monthly Planner 2017
Monthly Planner 2017Rigo Sigala
 
Passos bíblicos para o fim
Passos bíblicos para o fimPassos bíblicos para o fim
Passos bíblicos para o fimabimaelfilho
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsGilmar Pupo
 
Controle biológico
Controle biológicoControle biológico
Controle biológicounesp
 
Belgique : enquête d'opinion sur le tourisme responsable
Belgique : enquête d'opinion sur le tourisme responsableBelgique : enquête d'opinion sur le tourisme responsable
Belgique : enquête d'opinion sur le tourisme responsableSamuel Poos
 
Comprendre la crise financière (2009)
Comprendre la crise financière (2009) Comprendre la crise financière (2009)
Comprendre la crise financière (2009) Philippe Watrelot
 
Exemple d'appareillage de la main atteinte de polyarthrite rhumatoïde
Exemple d'appareillage de la main atteinte de polyarthrite rhumatoïdeExemple d'appareillage de la main atteinte de polyarthrite rhumatoïde
Exemple d'appareillage de la main atteinte de polyarthrite rhumatoïdewanttologin
 
Une introduction au e-commerce (ICHEC 2012)
Une introduction au e-commerce (ICHEC 2012)Une introduction au e-commerce (ICHEC 2012)
Une introduction au e-commerce (ICHEC 2012)David Hachez
 
Les Barbares Attaquent l'immobilier
Les Barbares Attaquent l'immobilierLes Barbares Attaquent l'immobilier
Les Barbares Attaquent l'immobilierTheFamily
 
Introduction au droit des societes (formation ecole des mines 2010)
Introduction au droit des societes (formation ecole des mines 2010)Introduction au droit des societes (formation ecole des mines 2010)
Introduction au droit des societes (formation ecole des mines 2010)Lipskier
 
Tour du monde
Tour du mondeTour du monde
Tour du mondeguimera
 

Destaque (20)

Rizal's grand tour of europe with viola
Rizal's grand tour of europe with violaRizal's grand tour of europe with viola
Rizal's grand tour of europe with viola
 
BUSINESS QUIZ -Round 1
 BUSINESS QUIZ -Round 1 BUSINESS QUIZ -Round 1
BUSINESS QUIZ -Round 1
 
Android Aula 2
Android Aula 2Android Aula 2
Android Aula 2
 
PDI Slides
PDI SlidesPDI Slides
PDI Slides
 
Certificação ITIL e Curso ITIL Virtual
Certificação ITIL e Curso ITIL VirtualCertificação ITIL e Curso ITIL Virtual
Certificação ITIL e Curso ITIL Virtual
 
Snc 2º ano - 2012
Snc   2º ano - 2012Snc   2º ano - 2012
Snc 2º ano - 2012
 
Monthly Planner 2017
Monthly Planner 2017Monthly Planner 2017
Monthly Planner 2017
 
Proposta De Valor
Proposta De ValorProposta De Valor
Proposta De Valor
 
Passos bíblicos para o fim
Passos bíblicos para o fimPassos bíblicos para o fim
Passos bíblicos para o fim
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com Jenkins
 
Controle biológico
Controle biológicoControle biológico
Controle biológico
 
Saude da mulher
Saude da mulherSaude da mulher
Saude da mulher
 
Belgique : enquête d'opinion sur le tourisme responsable
Belgique : enquête d'opinion sur le tourisme responsableBelgique : enquête d'opinion sur le tourisme responsable
Belgique : enquête d'opinion sur le tourisme responsable
 
Comprendre la crise financière (2009)
Comprendre la crise financière (2009) Comprendre la crise financière (2009)
Comprendre la crise financière (2009)
 
Exemple d'appareillage de la main atteinte de polyarthrite rhumatoïde
Exemple d'appareillage de la main atteinte de polyarthrite rhumatoïdeExemple d'appareillage de la main atteinte de polyarthrite rhumatoïde
Exemple d'appareillage de la main atteinte de polyarthrite rhumatoïde
 
Une introduction au e-commerce (ICHEC 2012)
Une introduction au e-commerce (ICHEC 2012)Une introduction au e-commerce (ICHEC 2012)
Une introduction au e-commerce (ICHEC 2012)
 
Les Barbares Attaquent l'immobilier
Les Barbares Attaquent l'immobilierLes Barbares Attaquent l'immobilier
Les Barbares Attaquent l'immobilier
 
Introduction au droit des societes (formation ecole des mines 2010)
Introduction au droit des societes (formation ecole des mines 2010)Introduction au droit des societes (formation ecole des mines 2010)
Introduction au droit des societes (formation ecole des mines 2010)
 
Tour du monde
Tour du mondeTour du monde
Tour du monde
 
Modelisation et maquettage 2015
Modelisation et maquettage 2015Modelisation et maquettage 2015
Modelisation et maquettage 2015
 

Semelhante a Tendências e tecnologias para desenvolvimento mobile

Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Erisvaldo Junior
 
Android como plataforma de consumo de conteúdo, mídias digitais e entretenime...
Android como plataforma de consumo de conteúdo, mídias digitais e entretenime...Android como plataforma de consumo de conteúdo, mídias digitais e entretenime...
Android como plataforma de consumo de conteúdo, mídias digitais e entretenime...Santhyago Gallao
 
Android: História, Mercado e Possibilidades (#TDC2011 - Floripa)
Android: História, Mercado e Possibilidades (#TDC2011 - Floripa)Android: História, Mercado e Possibilidades (#TDC2011 - Floripa)
Android: História, Mercado e Possibilidades (#TDC2011 - Floripa)Santhyago Gallao
 
Robson Soares - Android no Javaneiros 2010
Robson Soares - Android no Javaneiros 2010Robson Soares - Android no Javaneiros 2010
Robson Soares - Android no Javaneiros 2010robsonoracle
 
Relatório Mobilize de Inteligência de Mercado – Apps – #5
Relatório Mobilize de Inteligência de Mercado – Apps – #5Relatório Mobilize de Inteligência de Mercado – Apps – #5
Relatório Mobilize de Inteligência de Mercado – Apps – #5Aorta Entretenimento
 
Relatório Mobilize de Inteligência de Mercado #5 - Apps
Relatório Mobilize de Inteligência de Mercado #5 - AppsRelatório Mobilize de Inteligência de Mercado #5 - Apps
Relatório Mobilize de Inteligência de Mercado #5 - AppsPontomobi
 
Desenvolvendo aplicações móveis
Desenvolvendo aplicações móveisDesenvolvendo aplicações móveis
Desenvolvendo aplicações móveiscedulio
 
Universo dos aplicativos para dispositivos móveis.
Universo dos aplicativos para dispositivos móveis. Universo dos aplicativos para dispositivos móveis.
Universo dos aplicativos para dispositivos móveis. marianaveloso
 
Palestra Mobilidade - Computação móvel, Dispositivos e Aplicativos 2013
Palestra Mobilidade - Computação móvel, Dispositivos e Aplicativos 2013Palestra Mobilidade - Computação móvel, Dispositivos e Aplicativos 2013
Palestra Mobilidade - Computação móvel, Dispositivos e Aplicativos 2013Carlos Eugenio Torres
 
O Mercado e Desenvolvimento em Mobile
O Mercado e Desenvolvimento em MobileO Mercado e Desenvolvimento em Mobile
O Mercado e Desenvolvimento em MobileThiago Cortat
 
Introdução a programação em Android
Introdução a programação em AndroidIntrodução a programação em Android
Introdução a programação em Androidilegra
 

Semelhante a Tendências e tecnologias para desenvolvimento mobile (20)

Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1
 
Android como plataforma de consumo de conteúdo, mídias digitais e entretenime...
Android como plataforma de consumo de conteúdo, mídias digitais e entretenime...Android como plataforma de consumo de conteúdo, mídias digitais e entretenime...
Android como plataforma de consumo de conteúdo, mídias digitais e entretenime...
 
A Era da Mobilidade
A Era da MobilidadeA Era da Mobilidade
A Era da Mobilidade
 
JavaMe no Mercado Mobile
JavaMe no Mercado MobileJavaMe no Mercado Mobile
JavaMe no Mercado Mobile
 
JavaME no Mercado Mobile
JavaME no Mercado MobileJavaME no Mercado Mobile
JavaME no Mercado Mobile
 
Android: História, Mercado e Possibilidades (#TDC2011 - Floripa)
Android: História, Mercado e Possibilidades (#TDC2011 - Floripa)Android: História, Mercado e Possibilidades (#TDC2011 - Floripa)
Android: História, Mercado e Possibilidades (#TDC2011 - Floripa)
 
The is an app for that!
The is an app for that!The is an app for that!
The is an app for that!
 
Robson Soares - Android no Javaneiros 2010
Robson Soares - Android no Javaneiros 2010Robson Soares - Android no Javaneiros 2010
Robson Soares - Android no Javaneiros 2010
 
Ciclo de palestras da JFRJ - Aplicativos Móveis
Ciclo de palestras da JFRJ - Aplicativos MóveisCiclo de palestras da JFRJ - Aplicativos Móveis
Ciclo de palestras da JFRJ - Aplicativos Móveis
 
Relatório Mobilize de Inteligência de Mercado – Apps – #5
Relatório Mobilize de Inteligência de Mercado – Apps – #5Relatório Mobilize de Inteligência de Mercado – Apps – #5
Relatório Mobilize de Inteligência de Mercado – Apps – #5
 
Relatório Mobilize de Inteligência de Mercado #5 - Apps
Relatório Mobilize de Inteligência de Mercado #5 - AppsRelatório Mobilize de Inteligência de Mercado #5 - Apps
Relatório Mobilize de Inteligência de Mercado #5 - Apps
 
Desenvolvendo aplicações móveis
Desenvolvendo aplicações móveisDesenvolvendo aplicações móveis
Desenvolvendo aplicações móveis
 
Android
AndroidAndroid
Android
 
Universo dos aplicativos para dispositivos móveis.
Universo dos aplicativos para dispositivos móveis. Universo dos aplicativos para dispositivos móveis.
Universo dos aplicativos para dispositivos móveis.
 
Android
AndroidAndroid
Android
 
Palestra Mobilidade - Computação móvel, Dispositivos e Aplicativos 2013
Palestra Mobilidade - Computação móvel, Dispositivos e Aplicativos 2013Palestra Mobilidade - Computação móvel, Dispositivos e Aplicativos 2013
Palestra Mobilidade - Computação móvel, Dispositivos e Aplicativos 2013
 
Sistemas operacionais I - trabalho software movel
Sistemas  operacionais I - trabalho software movelSistemas  operacionais I - trabalho software movel
Sistemas operacionais I - trabalho software movel
 
Android
AndroidAndroid
Android
 
O Mercado e Desenvolvimento em Mobile
O Mercado e Desenvolvimento em MobileO Mercado e Desenvolvimento em Mobile
O Mercado e Desenvolvimento em Mobile
 
Introdução a programação em Android
Introdução a programação em AndroidIntrodução a programação em Android
Introdução a programação em Android
 

Mais de Erisvaldo Junior

Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Erisvaldo Junior
 
Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Erisvaldo Junior
 
Desenvolvimento de apps e games para android parte 8
Desenvolvimento de apps e games para android   parte 8Desenvolvimento de apps e games para android   parte 8
Desenvolvimento de apps e games para android parte 8Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Erisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management systemErisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementarErisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementarErisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management systemErisvaldo Junior
 
Java me generic connection framework
Java me   generic connection frameworkJava me   generic connection framework
Java me generic connection frameworkErisvaldo Junior
 
Introdução a api de baixo nível do java me
Introdução a api de baixo nível do java meIntrodução a api de baixo nível do java me
Introdução a api de baixo nível do java meErisvaldo Junior
 
Introdução a game api do java me
Introdução a game api do java meIntrodução a game api do java me
Introdução a game api do java meErisvaldo Junior
 

Mais de Erisvaldo Junior (20)

Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2
 
Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1
 
Desenvolvimento de apps e games para android parte 8
Desenvolvimento de apps e games para android   parte 8Desenvolvimento de apps e games para android   parte 8
Desenvolvimento de apps e games para android parte 8
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
 
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2
 
Nokia SDK for Java
Nokia SDK for JavaNokia SDK for Java
Nokia SDK for Java
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
 
Java me generic connection framework
Java me   generic connection frameworkJava me   generic connection framework
Java me generic connection framework
 
Introdução a api de baixo nível do java me
Introdução a api de baixo nível do java meIntrodução a api de baixo nível do java me
Introdução a api de baixo nível do java me
 
Introdução a game api do java me
Introdução a game api do java meIntrodução a game api do java me
Introdução a game api do java me
 
O futuro do Android
O futuro do AndroidO futuro do Android
O futuro do Android
 
Android Aula 5
Android Aula 5Android Aula 5
Android Aula 5
 

Tendências e tecnologias para desenvolvimento mobile

  • 1. Erisvaldo Gadelha Saraiva Júnior Faculdade de Tecnologia de João Pessoa (FATEC-JP) Especialização em Desenvolvimento para Dispositivos Móveis Disciplina: Tecnologias para Dispositivos Móveis Android E-mail: erisvaldojunior@gmail.com Site: http://erisvaldojunior.com Twitter: @erisvaldojunior
  • 2. Sobre mim Empreendedor Yupi Studios (http://yupistudios.com); Desenvolvedor Mobile (LAViD); Mestrando em Informática (UFPB); Analista de Sistemas (Cehap).
  • 3. Sobre a Yupi Studios www.yupistudios.com
  • 7. O que será exposto na aula? Conceitos Introdutórios; Organize with Sections Mercado Mobile; Expor as Tecnologias e Tendências; Introduzir o Android e preparar o ambiente de desenvolvimento.
  • 8. Era da Computação Ubíqua Conceitos Introdutórios
  • 9. Computação Móvel / Pervasiva / Ubíqua Conceitos Introdutórios
  • 10. Computação Móvel / Pervasiva / Ubíqua Conceitos Introdutórios
  • 11. Computação em Nuvem (Cloud Computing) Conceitos Introdutórios
  • 12. Computação em Nuvem (Cloud Computing) Conceitos Introdutórios
  • 13. Conceitos Introdutórios Realidade Aumentada
  • 14. Roteiro da Aula VISÃO GERAL PLATAFORMAS E A PLATAFORMA DO MERCADO TENDÊNCIAS ANDROID Entendendo o Mundo da Mobilidade
  • 15. VISÃO GERAL DO MERCADO Números do Mercado Mobile no Brasil e no Mundo
  • 16. O Mercado Mobile Mercado brasileiro de telefonia móvel; Organize with Sections Números do mercado internacional; Mercado de jogos (Brasil e mundo).
  • 17. Celulares no Brasil (2007 a 2009)
  • 18. Market Share das operadoras no Brasil (2007 a 2009)
  • 19. Mercado brasileiro de celulares (2010) 202 milhões e 944 mil celulares Crescimento de 16,7%; 104,7 celulares a cada 100 habitantes. Operadoras Vivo - 29,7% Claro - 25,4% TIM – 25,1% Oi – 19,4%
  • 20. Celulares no mundo (2000 a 2009)
  • 21. Principais mercados de celular no mundo (2008 e 2009)
  • 22. Operadoras de telefonia no mundo (2008 e 2009)
  • 23. Market Share dos fabricantes (2005 a 2007)
  • 24. Market Share dos fabricantes (2009 e 2010)
  • 25. Mercado americano de jogos para dispositivos móveis
  • 26. Mercado mundial de jogos para dispositivos móveis Gartner
  • 27. Plataformas e Tendências Plataformas de Mobilidade e Tendências do Mercado
  • 28. SOs para Desenvolvimento (no Presente) iOS Android RIM SYMBIAN PALM OS Windows Mobile MAEMO
  • 29. iOS (Apple) iPod, iPhone (2007) e iPad (2010); Baseado no Mac OS X (Objective-C); Kit de desenvolvimento exclusivo para Mac OS; Aplicativos exclusivamente na Apple App Store.
  • 30. Android (Open Handset Alliance, liderada pelo Google) Plataforma aberta baseada em Linux; Android Development Tools (ADT) Plugin para Eclipse; Desenvolvimento em Java (Linux / Windows / Mac OS); 1º smartphone: HTC G1 (2008); 1º tablet: Samsung Galaxy Tab (2010).
  • 31. Plataformas para Desenvolvimento (no Presente) JavaME Flash Lite PyS60 BREW
  • 32. JavaME Quase 2 bilhões de aparelhos; Grande comunidade de desenvolvedores; Atingiu 95% dos aparelhos em 2007.
  • 33. Comparativo entre JavaME e Flash Lite
  • 35. SOs para Desenvolvimento (Apostas para o Futuro) Windows BADA MeeGo Phone 7
  • 36. Mercado Mobile em 2010 (Divisão dos SOs) Segundo a AdMob, dados de 2010, o Android ocupa a segunda posição entre os sistemas operacionais para smartphone no mundo, possuindo 26% do mercado e atrás apenas do iOS, que detém 40%. Organize with Sections
  • 37. Mercado Mobile em 2010 (Crescimento dos SOs) Um aspecto interessante, porém, é o crescimento do Android no mercado. O SO vem em uma ascendente contínua, ao contrário do iOS, que vem oscilando, e do Symbian OS, que perdeu mercado. Organize with Sections
  • 38. Mercado Mobile em 2010 (Divisão dos Fabricantes) A AdMob também mostra que a Apple (aparelhos iOS) possui a maior fatia de smartphones do mercado. A Nokia (aparelhos Symbian e Maemo) detém a segunda posição. Organize with Sections
  • 39. Android deve superar iOS em breve Várias pesquisas e especialistas apontam que o Android deve se tornar mais popular que o iOS nos próximos anos. Android deve superar sistema operacional do iPhone em 2012, diz estudo. Organize with Sections http://www.tecnologia3g.com.br/site/pt/page/noticias_detalhe.asp?cod=261 Android é a plataforma que mais cresce, diz consultoria http://tecnologia.ig.com.br/noticia/2010/11/03/android+e+a+plataforma+que +mais+cresce+diz+consultoria+9956087.html Co-fundador da Apple (Steve Wozniak) acredita que Android ganhará corrida entre smartphones http://olhardigital.uol.com.br/produtos/digital_news/co-fundador-da-apple- acredita-que-android-ganhara-corrida-entre-smartphones/14935 Demanda por desenvolvedores Android cresceu 710% em um ano http://imasters.com.br/noticia/18931/carreira/demanda_por_desenvolvedore s_android_cresceu_710_em_um_ano/
  • 40. Lojas de Aplicativos para Dispositivos Móveis (App Stores) Modelo Antigo (antes das App Stores) Desenvolvedor / Publisher / Grande Empresa Operadoras Pequena Empresa A porcentagem final para o desenvolvedor independente ou pequena empresa acabava sendo menor que 20% do total.
  • 41. Lojas de Aplicativos para Dispositivos Móveis (App Stores) Novo Modelo (era das App Stores) Desenvolvedor / Loja de aplicativos do Empresa Fabricante ou Operadora A porcentagem final para o desenvolvedor independente ou empresa agora gira em torno de 70% do total.
  • 42. Apple App Store Loja de aplicativos para iOS (iPod, iPhone e iPad) gerenciada pela Apple e disponível através dos próprios aparelhos. Lançada em julho de 2008; 340 mil aplicativos e 10 bilhões de downloads até janeiro de 2011; App Stores Disponível em cerca de 90 países; Share de 70% Desenvolvedor e 30% Apple; Desenvolvedor paga inscrição e anuidade no valor de U$ 99,00.
  • 43. Google Android Market Loja de aplicativos para Android gerenciada pela Google e disponível através dos próprios aparelhos. Lançado em outubro de 2008; Mais de 200 mil aplicativos e 3 bilhões de downloads até janeiro de 2011; App Stores Disponível em cerca de 48 países; Share de 70% Desenvolvedor e 30% Google; Desenvolvedor paga taxa única de inscrição no valor de U$ 25,00.
  • 44. Comparativo Android Market X Apple App Store Dados referentes ao ano de 2009, quando a distância entre Android Market e a Apple App Store ainda era muito grande. Organize with Sections
  • 45. Comparativo Android Market x Apple App Store A média de downloads da Apple App Store é superior a do Android Market, bem como a porcentagem de usuários que compram aplicações (dados de 2009). Organize with Sections
  • 46. Nokia Ovi Store Loja de aplicativos para dispositivos Nokia (Symbian, QT, Flash Lite e JavaME) e disponível através dos próprios aparelhos. Lançada em maio de 2009; 50 mil aplicativos e média de 3 milhões de downloads por dia (janeiro de 2011); App Stores Disponível em mais de 200 países; Share de 70% Desenvolvedor e 30% Nokia; Desenvolvedor paga taxa única de inscrição de apenas 1 (um) euro.
  • 47. Comparação entre App Stores (custo para desenvolvedores)
  • 48. Relação de App Stores (distimo.com)
  • 49. In-App Payment é uma tendência Jogos e aplicativos são gratuitos à priori, embora vários recursos possam ser comprados dentro do próprio aplicativo. App Stores
  • 50. A plataforma Android Introdução ao Android, Arquitetura e Layouts
  • 51. Definição do Android Pilha de Software para Dispositivos Móveis que inclui um Sistema Operacional, um Middleware e aplicações-chave. O Android SDK provê ferramentas e APIs para o desenvolvimento de aplicações na plataforma Android usando a linguagem de programação Java.
  • 52. Recursos do Android • Biblioteca Gráfica 2D e Suporte a 3D (OpenGL ES 1.0); • SQLite; • Suporte a Mídias diversas (MPEG-4, H.264, MP3, AAC, AMR, JPG, PNG, GIF); • Bluetooth, EDGE, 3G e WiFi (dependente do hardware); • Câmera, GPS, Bússola e Acelerômetro (dependente do hardware); • Para desenvolvedores: Android Development Tools (ADT) Plugin para Eclipse.
  • 53. História do Android Julho de 2005: Google comprou a startup Android; Novembro de 2007: Google anunciou a Open Handset Alliance (OHA) e o Android; Ainda nesse mês, liberou a primeira versão do Android SDK.
  • 54. História do Android Outubro de 2008: Android se torna Open Source; Ainda nesse mês, lançado o primeiro smartphone com Android: o HTC G1; Lançado o primeiro Android Developer Phone (ADP), baseado no G1.
  • 55. História do Android Julho de 2009: HTC Hero, concorrente direto do iPhone; Novembro de 2009: Motorola Droid, 1 milhão de unidades em pouco mais de dois meses; Chegou no Brasil como Motorola Milestone e foi sucesso de vendas.
  • 56. História do Android Em 2010, dezenas de ótimos smartphones Android foram lançados; Setembro de 2010: Samsung Galaxy Tab, primeiro tablet a concorrer com o iPad; Dezembro de 2010: Quarto ADP lançado, o Samsung Nexus S.
  • 57. Versões do Android AndroidManifest.xml
  • 58. Android 1.1 (fevereiro de 2009) •Alarm Clock •API Demos •Browser •Calculadora •Camera •Contatos •Dev Tools •Dialer •Email •Maps (e StreetView) •Mensagem •Música •Imagens (Galeria) •Configurações
  • 59. Android 1.5 Cupcake (maio de 2009) Grande evolução na interface (UI), adicionando as seguintes novidades: •Gravação de vídeos •Bluetooth A2DP •Conexão Bluetooth Automática •Upload de vídeos para YouTube e Picasa •Copiar e Colar
  • 60. Android 1.6 Donut (setembro de 2009) O HTC Hero trazia essa versão, que incluia o novo Android Market, além das seguintes melhorias: •Integração de câmera, gravação de vídeos e galeria •Busca por gestos e voz •Integração de aplicativos •Grande melhoria no Text-To-Speech
  • 61. Android 2.0/2.1 Eclair (outubro de 2009) Uma das versões mais usadas até hoje. •Desempenho otimizado •Mais opções de tamanho e resolução de tela •UI bastante melhorada •Suporte ao Exchange •Live wallpapers •Teclado virtual melhorado •Bluetooth 2.1 •Google Maps 3.1.2
  • 62. Android 2.2 Froyo (maio de 2010) •Suporte completo ao Flash 10.1 •Desempenho bastante otimizado (até 5x) •Hotspot para até 8 aparelhos •Home Screen melhorada (atalhos dedicados) •Melhoria do Exchange •Melhoria da câmera •Salvar aplicativos no cartão de memória •Discagem por bluetooth
  • 63. Android 2.3 Gingerbread (dezembro de 2010) •Melhoria do Copiar e Colar •Interface melhorada •Suporte a NTFC •Teclado multitouch •Suporte a SIP •Gerenciador de Downloads •Suporte a câmera frontal e vídeo-conferência
  • 64. Google App Inventor for Android Criação de aplicações para Android visualmente, sem a App Inventor for Android necessidade de escrever código.
  • 65. Google App Inventor for Android Orientado a blocos, basta definir as suas propriedades visuais e App Inventor for Android as suas ações para determinados eventos.
  • 66. App Inventor for Android Google App Inventor for Android
  • 68. Arquitetura do Android Applications Conjunto de aplicações-chave nativas do Android, incluindo um cliente de e-mail, gerenciador de SMS, calendário, mapa, navegador, gerenciador de contatos e outros. Todas essas aplicações foram escritas em Java. Application Framework Desenvolvedores tem acesso completo às mesmas APIs que as aplicações-chave. O framework provê um conjunto de Views que podem ser utilizados para construir a interface da aplicação, incluindo listas, tabelas, caixas de texto, botões e até mesmo um browser embutido. Disponibiliza também Content Providers que permitem o acesso a dados de outras aplicações (como o gerenciador de Contatos). Há, ainda, o Resource Manager (provê acesso a recursos como imagens e arquivos de layout), o Notification Manager (permite que a aplicação mostre avisos personalizados) e o Activity Manager (gerencia o ciclo de vida da aplicação e a sua navegação).
  • 69. Arquitetura do Android Libraries Conjunto de bibliotecas C/C++ utilizadas por vários componentes do Android. Essas bibliotecas provêem recursos que são expostos aos desenvolvedores através de sua camada sobrejacente: Application Framework. Android Runtime Cada aplicação no Android roda em um processo diferente no Linux e para cada processo é criada uma instância da máquina virtual Dalvik. Essa máquina virtual foi criada de forma que um dispositivo possa executar múltiplas instâncias de forma eficiente. As classes compiladas da aplicação são transformadas para o formato .dex (Dalvik Executable), otimizado para uma mínima utilização de memória. A Dalvik VM interage diretamente com o kernel Linux para execução de funcionalidades subjacentes como tratamento de concorrência e gerenciamento de memória.
  • 70. Noções sobre aplicações Android As aplicações são escritas em Java e o seu código compilado, juntamente com os recursos que a aplicação utilizada, são empacotados em um arquivo .apk pela ferramenta aapt. É esse arquivo .apk que é usado para distribuir a aplicação e instalá-la nos dispositivos Android; Por padrão, cada aplicação é executada como um processo separado, com ID único e máquina virtual própria, isolando o seu código das demais aplicações.
  • 71. Componentes da Aplicação Um recurso fundamental do Android é o reuso de componentes. Caso uma aplicação precise disponibilizar uma lista de imagens com scrolling e outra aplicação apresenta tal componente e o disponibilizou para as demais, pode- se invocar esse componente. Devido a essa organização dos aplicativos em componentes, as aplicações Android não possuem um único ponto de entrada (não há um método main(), por exemplo). Ao invés disso, as aplicações apresentam componentes essenciais que o sistema pode instanciar e executar quando necessário. Esses componentes podem ser de quatro tipos: Activities (apresenta uma interface visual para o usuário) Services (roda em segundo plano por um período de tempo indeterminado) Broadcast Receivers (recebe e reage a eventos do sistema) Content providers (dados do aplicativo disponíveis para os demais)
  • 72. Ativando e desativando componentes Content Providers são ativados por meio de uma requisição de um ContentResolver. Os demais componentes (Activities, Services e Broadcast Receivers) são ativados por mensagens assíncronas denominadas intents. Trata- se de um objeto da classe Intent que armazena o conteúdo da mensagem. Para activities e services, o objeto apresenta o nome da ação que está sendo requisitada bem como o endereço do dado em que atuará, além de outras coisas. No caso de uma Activity, por exemplo, pode conter uma requisição para apresentar uma imagem ao usuário ou permitir que o usuário edite algum texto. Já para Broadcast Receivers, o objeto Intent pode anunciar que um botão da câmera foi pressionado, por exemplo. Content Provider e BroadCast Receiver não precisam ser desativados, uma vez que permanecem ativos somente enquanto estão respondendo requisições. Já Activities e Services podem permanecer em execução por um longo período de tempo, daí a necessidade de finalizá-los através dos métodos finish() e stopSelf(), respectivamente.
  • 73. Activities O componente mais comum de uma aplicação é um Activity. É implementado como uma subclasse de Activity e uma aplicação pode conter uma ou mais activities. Cada qual representa uma interface visual e uma delas é marcada como sendo a inicial que deve ser apresentada quando a aplicação é iniciada. Mover-se de uma Activity para outra consiste em fazer com que a Activity atual invoque a próxima. Cada Activity possui uma janela padrão para O visual da janela é composto desenhar. Normalmente a janela ocupa a tela por uma hierarquia de views, toda mas também pode ser menor e flutuar objetos derivados da classe sobre outras janelas. Uma Activity pode base View. As views também conter janelas adicionais, como por exemplo são responsáveis por um dialog que exige uma resposta do usuário responder às ações do usuário ou mostra um aviso quando um dado item é direcionadas ao seu espaço. selecionado.
  • 74. Activities e Tasks Conforme dito anteriormente, uma Activity pode iniciar outra, inclusive uma que pertença a outro aplicativo. Por exemplo: uma aplicação deseja mostrar o mapa de algum local. Já existe uma Activity que o faz, então tudo o que a sua Activity precisa fazer é chamar o método startActivity() passando como parâmetro o objeto da classe Intent com as informações necessárias. O mapa será mostrado e, quando o usuário pressionar a tecla voltar, sua Activity será mostrada novamente na tela. Para o usuário, isso é transparente. O Android mantém ambas as activities na mesma Task. Uma Task, para o usuário, é como se fosse uma aplicação. Tecnicamente é um grupo de Activities relacionadas que foram adicionadas em uma pilha. A base da pilha é a primeira Activity que é mostrada quando a Task é iniciada, enquanto que o topo é a Activity que está sendo executada no momento, ou seja, que está recebendo o foco das ações do usuário.
  • 75. Ciclo de vida de uma Activity Basicamente, uma Activity possui três estados: Ativo: quando a Activity está no topo da pilha (visível na tela e recebendo as ações do usuário); Pausado: quando a Activity perdeu o foco mas permanece visível ao usuário. Ou seja, há outra Activity no topo que é transparente ou não ocupa toda a tela; Parado: quando a Activity está ofuscada por outra. Mantém o estado mas pode ser eliminada pelo sistema em caso de falta de memória.
  • 76. Ciclo de vida de uma Activity
  • 77. Services Diferentemente de activities, os services não possuem interface e executam em segundo plano por um período de tempo indeterminado. Cada serviço é uma classe que herda de Service. Um exemplo clássico de Service é um tocador de músicas. A aplicação deve consistir de uma ou mais activities que permitem ao usuário selecionar as músicas e começar a tocá-las. Contudo, a execução das músicas em si não faz parte da Activity mas sim de um Service, uma vez que o usuário espera que a música continue a ser tocada após sair da tela.
  • 78. Ciclo de vida de um Service
  • 79. Broadcast Receivers Componente que recebe e reage a anúncios de broadcast, geralmente oriundos do sistema. Cada receiver é uma classe que herda de BroadCastReceiver. Mudança no fuso horário, anúncio de bateria fraca e mudança da linguagem por parte do usuário são exemplos de anúncios que podem ser capturados por Broadcast Receivers. Uma aplicação pode conter quantos receptores quiser. Os receptores podem iniciar uma Activity ou utilizar o NotificationManager para alertar o usuário (acender a luz do aparelho, vibrar, executar um som, etc).
  • 80. Ciclo de vida de Broadcast Receivers Quando uma mensagem de broadcast chega ao receptor, o Android invoca o método onReceive(), passando como parâmetro um objeto Intent contendo a mensagem. O Broadcast Receiver fica ativo apenas enquanto está executando esse método.
  • 81. Content Providers Componente que torna um conjunto específico de dados da aplicação disponível para outras aplicações. Cada provider é uma classe que herda de ContentProvider e disponibiliza um conjunto padrão de métodos para que outras aplicações possam recuperar e armazenar dados do tipo que o provedor controla. As aplicações não podem acessar os métodos de um Content Provider diretamente. Para isso, elas precisam de um objeto ContentResolver, o qual pode conversar com qualquer Content Provider.
  • 82. Como o Android suporta múltiplas telas? Desde o Android 1.6, a plataforma provê suporte a múltiplos Suporte a Múltiplas Telas tamanhos de tela e resoluções, adequando-se aos muitos tipos e tamanhos de dispositivos com Android. Assim, a partir do Android 1.6, a plataforma divide a infinidade de tamanhos de tela e resoluções suportadas em: • Um conjunto de três tamanhos: large, normal e small; • Um conjunto de três densidades: hdpi (high), mdpi (medium) e ldpi (low). Dessa forma, a aplicação pode prover layouts e imagens para qualquer um desses três conjuntos, sem a necessidade de trabalhar com o tamanho físico real da tela do aparelho. Em tempo de execução, o Android carrega o conjunto adequado de recursos, baseado no dispositivo em questão.
  • 85. Suporte a Múltiplas Telas Organização de pastas de layout e imagens para uma aplicação que, em tese, suporta todos os tamanhos de telas e resoluções.
  • 86. Views e ViewGroups em Android Em Android, todos os componentes de interface gráfica são representados por subclasses de android.view.View que representam os componentes gráficos como TextView, Button, TextEdit, RadioButton, CheckBox, etc. Além da classe android.view.ViewGroup, que representa um container de views e também de ViewGroups. Ela é a classe base para componentes de layouts, como LinearLayout, RelativeLayout, AbsoluteLayout, FrameLayout, TableLayout, etc.
  • 88. Layouts e Layout Params em Android Para que os componentes possam ser acomodados de acordo com o layout de seu pai, os mesmos devem manter uma relação de obediência. Sendo assim, cada filho deve configurar os seus parâmetros de layouts, por meio da classe ViewGroup.LayoutParams, que permite que estes determinem suas propriedades de posição e tamanho referente ao layout de seus pais.
  • 89. LinearLayout O layout básico, padrão quando da geração de um .XML de layout no Android, é o LinearLayout. Como o próprio nome diz, ele dispõe os componentes linearmente em uma unica direção definida pelo atributo android:layout_orientation.
  • 90. LinearLayout e LayoutParams android:layout_gravity: similar ao float do CSS, o gravity define a posição do conteúdo do LinearLayout na tela, podendo-se usar top, bottom, left, right, center, center_vertical, center_horizontal, etc. Pode-se usar combinações através do conector “|”. Por exemplo: “bottom | right”. android:layout_weight: indica quanto do espaço extra no LinearLayout será alocado para a visão associada aos LayoutParams. Ou seja, pode-se dividir a tela entre os layouts atribuindo a cada um deles um peso que define qual deles terá maior espaçamento e, casa todos tenham o mesmo peso, a tela é dividida igualmente. Aplicação de peso (weight) em um componente do LinearLayout
  • 92. FrameLayout Arranja seus filhos de acordo com uma pilha de componentes que são adicionados, sendo que o topo da pilha contém o objeto que foi adicionado por último. Pode-se usar quando se tem várias imagens e uma é sobreposta pela outra (como um slide de imagens) conforme vão sendo adicionadas. Criando uma pilha de componentes com FrameLayout Sobreposição de componentes com FrameLayout
  • 93. FrameLayout (Código) Nota: O FrameLayout é usado comumente a partir de uma de suas subclasses, tais como ImageSwitcher, ViewAnimator, ViewSwitcher, ScrollView, TabHost, etc.
  • 94. AbsoluteLayout Implementa um plano cartesiano e posiciona os componentes em coordenadas X, Y de forma absoluta. Posicionando componentes no AbsoluteLayout
  • 96. RelativeLayout Os componentes são ajustados através de relacionamentos entre si ou ao seu pai.
  • 98. TableLayout Comporta seus filhos em linhas e colunas. Cada filho é representado por um TableRow (uma espécie de LinearLayout na horizontal) que permite que uma ou ais células sejam adicionadas horizontalmente, sendo que cada célula pode conter um único View.