INTRODUÇÃO AO DESENVOLVIMENTO
DE APLICATIVOS PARA ANDROID
                                Paulo Luan
                            Pedro Henrique




  1° Encontro JUG Vale em SJCamspos
             17 Março 2012
Cronograma
●       Apresentação;
●       O que é Android?
●       Motivação;
●       Pré-Requistos e Ferramentas;
●       Arquitetura;
●       Activity;
●       Intent;
●       Content Provider;
●       Broadcast Receiver;
●       Layout;
●       Eventos;
●       Listeners;
●       Futuro;
●       Programação ao vivo
●       Referências.


Fonte da Imagem: http://devmobilebrasil.com.br/wp-content/uploads/2011/12/AutoCompleteTextView.jpg
Apresentação
                    Paulo Luan
                (paulonfsu2@hotmail.com)

Graduando em Tecnologia em Banco de Dados pela
FATEC de SJCampos 5º Semestre;
Programador Java Estagiário na Fundação de Ciências
Aplicações e Tecnologias Espaciais.
                 Pedro Henrique
                (pedrospsjc@gmail.com)

Graduando em Tecnologia em Banco de Dados pela
FATEC de SJCampos 5º Semestre;
Estagiário de Desenvolvimento na ERNet (SuperPay).
O Que é Android?
●   Sistema Operacional para dispositivos móveis;
●   Baseada em Linux;
●   Plataforma Aberta;
●   Adquirida em 2005 pela americana Google;
●   Usa "Java" como linguagem de programação (:D)
Motivação
           ■ Vendas de smartphones no Brasil crescem 179%
            em 2011;
           ■ 3 a cada 5 aparelhos são Android (61%);
           ■ O mercado está em constante crescimento;
           ■ Usa "Java" como linguagem de programação;
           ■ Salário inicial R$ 4 mil [Info, 2012]




Fonte da Imagem: http://www.mundozoom.com.br/wp-content/uploads/2011/01/android-ultrapassa-apple-iOS-300x238.jpg
Pré-Requisitos e Ferramentas
JDK
SDK Android
Eclipse - NetBeans - MotoDev - "Na Unha"
Sistema Operacional:
   ● Windows;
   ● Linux;
   ● Mac OS


Fonte da Imagem: http://www.fandroid.com.br/wp-content/uploads/2011/03/androidTool.png
Arquitetura: Camada de Software




fonte: http://developer.android.com/images/system-architecture.jpg
Activity
●   Classe Java gerenciadora de Interfaces Gráficas;

●   Controla o comportamento de seu aplicativo mediante as
    interações do usuário;

●   Adiciona eventos aos componentes.
Ciclo de Vida de uma Activity




Fonte da Imagem: http://developer.android.com/images/activity_lifecycle.png
Intents (Intenções)

Intent refere-se às intenções que a sua aplicação deseja.

São determinados comandos que podemos enviar ao
Sistema Operacional Android para realizar alguma ação.
Intents (Share)




Fonte: Slides AndroidDevCamp (http://www.gtug.net.br/)
Intents (Twitter)




Fonte: Slides AndroidDevCamp (http://www.gtug.net.br/)
Alguns métodos
relacionados aos Intents
●   O método startActivity(Intent intent) Inicia outra aplicação;
●   O método getIntent() recupera uma intent enviada por meio do
    startActivity().
●   O método putExtra(“nome_de_identificação”, valor) insere na intent
    algum valor, semelhante ao HashMap (chave, valor). Pode-se enviar tipos
    primitivos ou objetos que implementem a interface "Parcelable".
●   O getStringExtra(“nome_de_identificação”) - recupera o valor enviado
    para a segunda activity.
Exemplo de uma calculadora
com intents.
Intents (Intenções)
Através das intents podemos invocar outras aplicações ou aplicações nativas do
sistema.
Por exemplo, realizar uma chamada:

     phoneIntent = new Intent();
     phoneIntent.setAction(Intent.ACTION_DIAL);
     phoneIntent.setData(Uri.parse("tel:8885551234"));
Intents (Aplicações Nativas)
Content Providers

● Content Providers guardam e buscam dados
  e tornando disponíveis para todas as
  aplicações.
● Encapsula a persistência de dados.
● Criação de Shared contents providers.
  ○ Exemplo: SMS, audio, video, imagens, informação
    de contatos, e assim por diante
Content Providers




Fonte: Slides AndroidDevCamp (http://www.gtug.net.br/)
Broadcast Receiver

●   Recebe e reage a anúncios de Broadcast;
●   Notifica a sua aplicação quando algum evento do sistema ocorrer;
●   Não Possui interface com usuário;
●   Roda em segundo Plano;
●   Exemplo: Carga de Bateria, Fone de ouvido plugado/desplugado.
Layout

● XML
● Controlado pelas activities.
O arquivo AndroidManifest
● Funciona como o web.xml de um mapeamento de servlets em
  Java.
● Descreve os componentes de aplicação;
● Mapeia as activities;
● Define nomes para as activities;
● Modos de orientação da tela (vertical, horizontal ou ambos);
● Declara permissões para acesso à recursos do celular como o
  GPS ou Internet por exemplo;
● Qual activity iniciará primeiro quando a aplicação for aberta;
Listeners: Alguns exemplos

●   onClick() → View.OnClickListener

●   onLongClick() → View.OnLongClickListener

●   onKey() → View.OnKeyListener

●   onTouch() → View.OnTouchListener
Futuro

"Só em 2011, o mercado internacional de apps
movimentou cerca de 6,8       bilhões de dólares. Até
2015, essa quantia pode chegar a algo entre 25 bilhões e
38 bilhões de dólares ao ano, de acordo com as
consultorias MarketsandMarkets e Forrester Research."
[Info Abril, 2012]
Prática, os progradores piram!
                                          Programação ao Vivo!




Fonte da Imagem: http://androidblog.com.br/wp-content/uploads/2011/12/google-dev.png
Links

1.    http://www.android.com/
2.    http://www.blogdoandroid.com/
3.    http://www.euandroid.com.br/
4.    http://www.androidbrasil.com/
5.    http://developer.android.com/index.html
6.    http://developer.android.com/resources/browser.html?tag=tutorial
7.    http://javafxbr.com/blog




Fonte da Imagem: http://www.estudiocopacabana.com.br/blog/wp-content/uploads/2010/10/android-lab.jpg
Fontes
http://developer.android.com/reference/

http://g1.globo.com/tecnologia/noticia/2012/03/vendas-de-smartphones-no-brasil-crescem-179-em-
2011-diz-pesquisa.html

http://www.ibm.com/developerworks/br/library/os-android-devel/

http://ccsl.ime.usp.br/pt-br/news/11/03/14/android-no-ime-usp

http://www.tiobe.com/index.php/content/company/Home.html

http://info.abril.com.br/noticias/carreira/8-dicas-para-tornar-se-um-desenvolvedor-android-12032012-7.
shl

http://informatica.hsw.uol.com.br/google-phone2.htm

http://www.vivasemfio.com/blog/arquitetura-do-android/

http://java2s.com
JavaLees: javafxbr.com/blog



OBRIGADO!

Introdução ao Android