Minicurso Android
Flávio Kreis
flaviokreis@gmail.com
20 e 21 de março de 2013
1
2
Objetivo
• Apresentar os conceitos básicos para o
desenvolvimento de aplicativos para
dispositivos móveis utilizando Sistema
Operacional Android bem como informações
de mercado e curiosidades.
3
Agenda
• Introdução;
• Mercado e dispositivos;
• Ambiente de desenvolvimento;
• HelloWorld;
• Instalando API Demos;
• Conceitos básicos para desenvolvimento:
– Activity, ListActivity, ciclo de vida da Activity, Layout,
View e ViewGroup, Manifest, Resources, Intent;
• Exemplo – Lista de Estados brasileiros;
• Onde buscar mais informações;
4
Introdução
• O que é Android
– Sistema operacional para dispositivos móveis*;
– Código aberto (open-source);
– Grátis para quem quiser utilizar;
– Baseado em Linux;
5
Mercado
• 77%(2,17mi.) Tablets vendidos no Brasil em
2012 utilizam Android;
• + Tablets do que computadores em 2013;
• + 1mi. de aparelhos ativos por dia;
• + 1,5bi de downloads de apps por mês;
• 850mil de apps e 40bi de downloads de apps
(Abril);
6
Comparação Aparelhos
Samsung Galaxy Y Samsung Galaxy S4 Iphone 5
Processador 832 Mhz Quard 1.6 + Quard
1.2
Dual 1.2
Resolução 240x320 1080x1920 640x1136
Tela 3" 5" 4"
Câmera 2.0 MP 13.0 MP 8.0 MP
Memória Ram 290 MB 2 GB 1 GB
Memória Interna 180 MB 16/32/64GB 16/32/64GB
Cartão de Memória 32 GB 64 GB no
7
Ambiente de Desenvolvimento
• http://developer.android.com/sdk/index.html
• ADT – Android Development Tools
8
Primeiro programa: Hello World!
9
Hello World – Parte 1
10
Hello World – Parte 2
11
Estrutura do Projeto
• src – Arquivos Java;
• res – Recursos:
– drawable – Imagens;
– layout – Xml de Layout;
– values – String, estilos, arrays …;
• AndroidManifest.xml –
Configuração do aplicativo;
12
Criar Emulador
13
Criar Emulador
14
Perspectiva DDMS
15
API Demos
16
Activity
• Geralmente representa uma tela na aplicação;
• É a interface gráfica com o usuário;
• Controla eventos;
• Uma aplicação possui uma ou mais Activities;
• Subclasses: ListActivity, MapActivity, …
17
Ciclo de vida de uma Activity
OnCreate
OnStart
OnResume
Executando
OnPause
OnStop
OnDestroy
OnRestart
public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG, "onCreate");
}
protected void onStart() {
super.onStart();
Log.d(TAG, "onStart");
}
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume");
}
…
18
ViewGroup
• Gerenciador de componentes visuais;
• Organiza a disposição dos componentes;
19
ViewGroup - LinearLayout
• Utilizado para organizar os componentes na
vertical ou horizontal;
• Diferenciais:
– orientation;
– weight;
20
ViewGroup - RelativeLayout
• Permite posicionar um componente relativo a
outro componente;
• Diferenciais:
– alignParent;
– toRightOf;
– toLeftOf;
– below;
– above;
21
ViewGroup - ListView
• Mostra uma lista de itens com rolagem
vertical. Os itens da lista são automaticamente
inseridos na lista usando um Adapter*;
22
ViewGroup - GridView
• Mostra os itens divididos entre colunas e
linhas e possui rolagem vertical. Os itens da
lista são automaticamente inseridos na lista
usando um Adapter*;
23
View
• Representa os componentes visuais;
• Podem ser textos, campos de texto, botões,
imagens, caixa de seleção, vídeo, barra de
progresso, página de internet,…;
24
TextView
• Representa um texto(label) na tela;
25
EditText
• Representa um campo de entrada de texto
26
Button e ImageButton
• Representa um botão na tela;
27
Acesso aos elementos do layout
• Utilizado para acessar os elementos do layout
na Activity;
• Utiliza-se o método findViewById(id);
• Necessário definir um “id” no elemento no
arquivo de layout xml.
No Layout XML:
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=”OK” />
Na Ativity:
Button button =
(Button)findViewById(R.id.button);
28
Tratamento de eventos
• Interação com o usuário;
• Ex: clique no botão, selecionar uma opção no
menu,…;
button.setOnClickListener( new OnClickListener() {
@Override
public void onClick(View v) {
executarAcao();
}
});
button.setOnLongClickListener( new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
executarAcaoLongClick();
return false;
}
}); 29
Exemplo Preencher Texto
• Criar um Layout adicionando um TextView,
EditText e um Button;
• Acessar os elementos do Layout na Activity;
• Capturar o evento de clique no Button e
preencher o TextView com o texto capturado
no EditText;
30
Adicionando uma nova Activity
• Criar uma nova Classe;
Clique com
botão direito
31
Adicionando uma nova Activity
A Classe herda de
Activity
Sobrescreve o
método onCreate
32
Adicionando uma nova Activity
• Cria um novo layout
Cria-se um novo
layout
33
Adicionando uma nova Activity
• Registra a Classe no AndroidManifest.xml
Abrir aba
Application Clicar em Add... Adicionar nome da
Activity
34
Intent
• Representa a “intenção” da aplicação de
realizar determinada tarefa;
• O Sistema Operacional interpreta a intenção e
toma alguma ação;
35
Intent
• Utilizado para:
– Enviar uma mensagem para o Sistema
Operacional;
– Abrir uma nova tela da aplicação;
– Solicitar uma ligação;
– Abrir um site;
– Exibir algum endereço no mapa;
– Abrir o Google Play;
– E muito, muito mais …
36
Intents - Exemplos
//Abrir site
//Permissão: android.permission.INTERNET
Uri uri = Uri.parse("http://google.com");
Intent intent = new Intent( Intent.ACTION_VIEW, uri );
startActivity(intent);
//Realizar ligação
//Permissão: android.permission.CALL_PHONE
Uri uri = Uri.parse(”tel:98765432");
Intent intent = new Intent( Intent.ACTION_CALL, uri );
startActivity(intent);
//Abrir contato com ID 1
//Permissão: android.permission.READ_CONTACTS
Uri uri = Uri.parse(”content://com.android.contacts/contacts/1");
Intent intent = new Intent( Intent.ACTION_VIEW, uri );
startActivity(intent);
37
Intents - Exemplos
//Abrir uma nova tela
Intent intent = new Intent( MainActivity.this, SecondActivity.class );
startActivity(intent);
//Abrir uma nova tela com retorno de resultado
Intent intent = new Intent( MainActivity.this, SecondActivity.class );
startActivityForResult( intent, 1 );
38
Exemplo – Lista de Estados brasileiros
• Criar a primeira Activity que lista os Estados
brasileiros;
• Ao clicar em um Estado da lista é iniciado uma
segunda Activity com os detalhes referentes
ao Estado, como:
– Bandeira, nome, capital, sigla, região, PIB,
população, renda per capita e site;
39
Exemplo – Lista de Estados
40
Onde encontrar mais informações
41
Onde encontrar mais informações
• Sites:
– developer.android.com
– stackoverflow.com
42
Obrigado!
Entre em contato:
Flávio Kreis
flaviokreis@gmail.com
facebook.com/flaviokreis
43
Referências
• http://developer.android.com/about/index.ht
ml <27/04/2013>
• http://en.wikipedia.org/wiki/Google_Play
<27/04/2013>
• ANDROID Aprenda a criar aplicações para
dispositivos móveis com o Android SDK –
Ricardo R. Lecheta – 2ª Edição – Junho/2010 –
Editora Novatec
44

Minicurso2013

  • 1.
  • 2.
  • 3.
    Objetivo • Apresentar osconceitos básicos para o desenvolvimento de aplicativos para dispositivos móveis utilizando Sistema Operacional Android bem como informações de mercado e curiosidades. 3
  • 4.
    Agenda • Introdução; • Mercadoe dispositivos; • Ambiente de desenvolvimento; • HelloWorld; • Instalando API Demos; • Conceitos básicos para desenvolvimento: – Activity, ListActivity, ciclo de vida da Activity, Layout, View e ViewGroup, Manifest, Resources, Intent; • Exemplo – Lista de Estados brasileiros; • Onde buscar mais informações; 4
  • 5.
    Introdução • O queé Android – Sistema operacional para dispositivos móveis*; – Código aberto (open-source); – Grátis para quem quiser utilizar; – Baseado em Linux; 5
  • 6.
    Mercado • 77%(2,17mi.) Tabletsvendidos no Brasil em 2012 utilizam Android; • + Tablets do que computadores em 2013; • + 1mi. de aparelhos ativos por dia; • + 1,5bi de downloads de apps por mês; • 850mil de apps e 40bi de downloads de apps (Abril); 6
  • 7.
    Comparação Aparelhos Samsung GalaxyY Samsung Galaxy S4 Iphone 5 Processador 832 Mhz Quard 1.6 + Quard 1.2 Dual 1.2 Resolução 240x320 1080x1920 640x1136 Tela 3" 5" 4" Câmera 2.0 MP 13.0 MP 8.0 MP Memória Ram 290 MB 2 GB 1 GB Memória Interna 180 MB 16/32/64GB 16/32/64GB Cartão de Memória 32 GB 64 GB no 7
  • 8.
    Ambiente de Desenvolvimento •http://developer.android.com/sdk/index.html • ADT – Android Development Tools 8
  • 9.
  • 10.
    Hello World –Parte 1 10
  • 11.
    Hello World –Parte 2 11
  • 12.
    Estrutura do Projeto •src – Arquivos Java; • res – Recursos: – drawable – Imagens; – layout – Xml de Layout; – values – String, estilos, arrays …; • AndroidManifest.xml – Configuração do aplicativo; 12
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
    Activity • Geralmente representauma tela na aplicação; • É a interface gráfica com o usuário; • Controla eventos; • Uma aplicação possui uma ou mais Activities; • Subclasses: ListActivity, MapActivity, … 17
  • 18.
    Ciclo de vidade uma Activity OnCreate OnStart OnResume Executando OnPause OnStop OnDestroy OnRestart public class MainActivity extends Activity { private static final String TAG = "MainActivity"; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(TAG, "onCreate"); } protected void onStart() { super.onStart(); Log.d(TAG, "onStart"); } protected void onResume() { super.onResume(); Log.d(TAG, "onResume"); } … 18
  • 19.
    ViewGroup • Gerenciador decomponentes visuais; • Organiza a disposição dos componentes; 19
  • 20.
    ViewGroup - LinearLayout •Utilizado para organizar os componentes na vertical ou horizontal; • Diferenciais: – orientation; – weight; 20
  • 21.
    ViewGroup - RelativeLayout •Permite posicionar um componente relativo a outro componente; • Diferenciais: – alignParent; – toRightOf; – toLeftOf; – below; – above; 21
  • 22.
    ViewGroup - ListView •Mostra uma lista de itens com rolagem vertical. Os itens da lista são automaticamente inseridos na lista usando um Adapter*; 22
  • 23.
    ViewGroup - GridView •Mostra os itens divididos entre colunas e linhas e possui rolagem vertical. Os itens da lista são automaticamente inseridos na lista usando um Adapter*; 23
  • 24.
    View • Representa oscomponentes visuais; • Podem ser textos, campos de texto, botões, imagens, caixa de seleção, vídeo, barra de progresso, página de internet,…; 24
  • 25.
    TextView • Representa umtexto(label) na tela; 25
  • 26.
    EditText • Representa umcampo de entrada de texto 26
  • 27.
    Button e ImageButton •Representa um botão na tela; 27
  • 28.
    Acesso aos elementosdo layout • Utilizado para acessar os elementos do layout na Activity; • Utiliza-se o método findViewById(id); • Necessário definir um “id” no elemento no arquivo de layout xml. No Layout XML: <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=”OK” /> Na Ativity: Button button = (Button)findViewById(R.id.button); 28
  • 29.
    Tratamento de eventos •Interação com o usuário; • Ex: clique no botão, selecionar uma opção no menu,…; button.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { executarAcao(); } }); button.setOnLongClickListener( new OnLongClickListener() { @Override public boolean onLongClick(View v) { executarAcaoLongClick(); return false; } }); 29
  • 30.
    Exemplo Preencher Texto •Criar um Layout adicionando um TextView, EditText e um Button; • Acessar os elementos do Layout na Activity; • Capturar o evento de clique no Button e preencher o TextView com o texto capturado no EditText; 30
  • 31.
    Adicionando uma novaActivity • Criar uma nova Classe; Clique com botão direito 31
  • 32.
    Adicionando uma novaActivity A Classe herda de Activity Sobrescreve o método onCreate 32
  • 33.
    Adicionando uma novaActivity • Cria um novo layout Cria-se um novo layout 33
  • 34.
    Adicionando uma novaActivity • Registra a Classe no AndroidManifest.xml Abrir aba Application Clicar em Add... Adicionar nome da Activity 34
  • 35.
    Intent • Representa a“intenção” da aplicação de realizar determinada tarefa; • O Sistema Operacional interpreta a intenção e toma alguma ação; 35
  • 36.
    Intent • Utilizado para: –Enviar uma mensagem para o Sistema Operacional; – Abrir uma nova tela da aplicação; – Solicitar uma ligação; – Abrir um site; – Exibir algum endereço no mapa; – Abrir o Google Play; – E muito, muito mais … 36
  • 37.
    Intents - Exemplos //Abrirsite //Permissão: android.permission.INTERNET Uri uri = Uri.parse("http://google.com"); Intent intent = new Intent( Intent.ACTION_VIEW, uri ); startActivity(intent); //Realizar ligação //Permissão: android.permission.CALL_PHONE Uri uri = Uri.parse(”tel:98765432"); Intent intent = new Intent( Intent.ACTION_CALL, uri ); startActivity(intent); //Abrir contato com ID 1 //Permissão: android.permission.READ_CONTACTS Uri uri = Uri.parse(”content://com.android.contacts/contacts/1"); Intent intent = new Intent( Intent.ACTION_VIEW, uri ); startActivity(intent); 37
  • 38.
    Intents - Exemplos //Abriruma nova tela Intent intent = new Intent( MainActivity.this, SecondActivity.class ); startActivity(intent); //Abrir uma nova tela com retorno de resultado Intent intent = new Intent( MainActivity.this, SecondActivity.class ); startActivityForResult( intent, 1 ); 38
  • 39.
    Exemplo – Listade Estados brasileiros • Criar a primeira Activity que lista os Estados brasileiros; • Ao clicar em um Estado da lista é iniciado uma segunda Activity com os detalhes referentes ao Estado, como: – Bandeira, nome, capital, sigla, região, PIB, população, renda per capita e site; 39
  • 40.
    Exemplo – Listade Estados 40
  • 41.
    Onde encontrar maisinformações 41
  • 42.
    Onde encontrar maisinformações • Sites: – developer.android.com – stackoverflow.com 42
  • 43.
    Obrigado! Entre em contato: FlávioKreis flaviokreis@gmail.com facebook.com/flaviokreis 43
  • 44.
    Referências • http://developer.android.com/about/index.ht ml <27/04/2013> •http://en.wikipedia.org/wiki/Google_Play <27/04/2013> • ANDROID Aprenda a criar aplicações para dispositivos móveis com o Android SDK – Ricardo R. Lecheta – 2ª Edição – Junho/2010 – Editora Novatec 44