Minicurso2013

44
Minicurso Android Flávio Kreis [email protected] 20 e 21 de março de 2013 1

description

Mini curso ministrado nos dias 20 e 21 de março de 2013, na faculdade Unime.

Transcript of Minicurso2013

Page 1: Minicurso2013

1

Minicurso Android

Flávio [email protected]

20 e 21 de março de 2013

Page 2: Minicurso2013

2

Page 3: Minicurso2013

3

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.

Page 4: Minicurso2013

4

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;

Page 5: Minicurso2013

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;

Page 6: Minicurso2013

6

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);

Page 7: Minicurso2013

7

Comparação AparelhosSamsung 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

Page 8: Minicurso2013

8

Ambiente de Desenvolvimento• http://developer.android.com/sdk/index.html• ADT – Android Development Tools

Page 9: Minicurso2013

9

Primeiro programa: Hello World!

Page 10: Minicurso2013

10

Hello World – Parte 1

Page 11: Minicurso2013

11

Hello World – Parte 2

Page 12: Minicurso2013

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;

Page 13: Minicurso2013

13

Criar Emulador

Page 14: Minicurso2013

14

Criar Emulador

Page 15: Minicurso2013

15

Perspectiva DDMS

Page 16: Minicurso2013

16

API Demos

Page 17: Minicurso2013

17

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, …

Page 18: Minicurso2013

18

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"); } …

Page 19: Minicurso2013

19

ViewGroup

• Gerenciador de componentes visuais;• Organiza a disposição dos componentes;

Page 20: Minicurso2013

20

ViewGroup - LinearLayout

• Utilizado para organizar os componentes na vertical ou horizontal;

• Diferenciais:– orientation;– weight;

Page 21: Minicurso2013

21

ViewGroup - RelativeLayout

• Permite posicionar um componente relativo a outro componente;

• Diferenciais:– alignParent;– toRightOf;– toLeftOf;– below;– above;

Page 22: Minicurso2013

22

ViewGroup - ListView• Mostra uma lista de itens com rolagem

vertical. Os itens da lista são automaticamente inseridos na lista usando um Adapter*;

Page 23: Minicurso2013

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*;

Page 24: Minicurso2013

24

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,…;

Page 25: Minicurso2013

25

TextView

• Representa um texto(label) na tela;

Page 26: Minicurso2013

26

EditText

• Representa um campo de entrada de texto

Page 27: Minicurso2013

27

Button e ImageButton• Representa um botão na tela;

Page 28: Minicurso2013

28

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);

Page 29: Minicurso2013

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() {

@Overridepublic void onClick(View v) {

executarAcao();}

});

button.setOnLongClickListener( new OnLongClickListener() {@Overridepublic boolean onLongClick(View v) {

executarAcaoLongClick();return false;

}});

Page 30: Minicurso2013

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;

Page 31: Minicurso2013

31

Adicionando uma nova Activity

• Criar uma nova Classe;

Clique com botão direito

Page 32: Minicurso2013

32

Adicionando uma nova Activity

A Classe herda de Activity

Sobrescreve o método onCreate

Page 33: Minicurso2013

33

Adicionando uma nova Activity

• Cria um novo layout

Cria-se um novo layout

Page 34: Minicurso2013

34

Adicionando uma nova Activity

• Registra a Classe no AndroidManifest.xml

Abrir aba Application Clicar em Add... Adicionar nome da

Activity

Page 35: Minicurso2013

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;

Page 36: Minicurso2013

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 …

Page 37: Minicurso2013

37

Intents - Exemplos//Abrir site//Permissão: android.permission.INTERNETUri uri = Uri.parse("http://google.com");Intent intent = new Intent( Intent.ACTION_VIEW, uri );startActivity(intent);

//Realizar ligação//Permissão: android.permission.CALL_PHONEUri 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_CONTACTSUri uri = Uri.parse(”content://com.android.contacts/contacts/1");Intent intent = new Intent( Intent.ACTION_VIEW, uri );startActivity(intent);

Page 38: Minicurso2013

38

Intents - Exemplos

//Abrir uma nova telaIntent intent = new Intent( MainActivity.this, SecondActivity.class );startActivity(intent);

//Abrir uma nova tela com retorno de resultadoIntent intent = new Intent( MainActivity.this, SecondActivity.class );startActivityForResult( intent, 1 );

Page 39: Minicurso2013

39

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;

Page 40: Minicurso2013

40

Exemplo – Lista de Estados

Page 41: Minicurso2013

41

Onde encontrar mais informações

Page 42: Minicurso2013

42

Onde encontrar mais informações

• Sites:– developer.android.com– stackoverflow.com

Page 43: Minicurso2013

43

Obrigado!

Entre em contato:Flávio Kreis

[email protected]/flaviokreis

Page 44: Minicurso2013

44

Referências

• http://developer.android.com/about/index.html <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