Treinamento básico de Android

77

Transcript of Treinamento básico de Android

Page 1: Treinamento básico de Android
Page 2: Treinamento básico de Android

Treinamento de Android

2

Page 3: Treinamento básico de Android

Conteúdo Afinal, o que é Android? Histórico de Versões Sensores Serviços Ferramentas Emulador Desenvolvimento de Aplicações Activities User Interface

3

Page 4: Treinamento básico de Android

Afinal, o que é Android? Sistema Operacional criado para utilização de aparelhos móveis com

capacidade razoável de poder de processamento e sensores periféricos

Desenvolvido pela OHA – Open Handset Alliance Pensado originalmente para ser usado por Profissionais de Negócios Open source Linux based

Mercado amplo

4

Page 5: Treinamento básico de Android

Versões 1.0 e 1.1

Android Market Navegador, Abas e Vídeos

Suporte básico para câmera

Salvar Anexos

Adição de Comentários no Maps

5

Page 6: Treinamento básico de Android

Versões 1.5 - Cupcake

Melhorias na Interface Gráfica Widget de terceiros

6

Page 7: Treinamento básico de Android

Versões 1.6 - Donut

Salvar Anexos

Comentários no Maps

Comandos de Voz

7

Page 8: Treinamento básico de Android

Versões 2.0 e 2.1- Eclair

User Interface Redesign Múltiplas contas

Recursos de câmera

Maior resolução de tela

8

Page 9: Treinamento básico de Android

Versões 2.2 - Froyo

Melhorias no Navegador

Hotspot Wi-Fi

USB Tethering Flash

9

Page 10: Treinamento básico de Android

Versões 2.3 - Gingerbread

Interface renovada

Múltiplas câmeras Giroscópio

Barômetro

NFC

10

Page 11: Treinamento básico de Android

Versões 3.0 - Honeycomb

UI Redesign Barra de sistemas

Suporte multicore

Tablets

11

Page 12: Treinamento básico de Android

Versões 4.0 - Ice Cream Sandwich

Customização de launcher

Reconhecimento facial Gerenciamento de energia

Melhorias no Teclado

Notificações e Multitarefa

12

Page 13: Treinamento básico de Android

Versões 4.1~4.3 - Jelly Bean

Google Now

Resolução 4k

Photo Sphere

Mapas Offline

Melhorias nas Animações

13

Page 14: Treinamento básico de Android

Versões 4.4.x - Kitkat

Mudanças no app de ligações

Seleção da “Runtime machine”

Framework para impressão

Transparência nas barras

14

Page 15: Treinamento básico de Android

Sensores Smartphones possuem diversos tipos de sensores e periféricos

GPS Acelerômetro Câmera Barômetro Giroscópio Internet Móvel

15

Page 16: Treinamento básico de Android

Serviços Sincronização com Serviços do Google

16

Page 17: Treinamento básico de Android

Ferramentas Android Developer Tools Bundle – Eclipse – Java Android Studio – Intellij – Java Corona – Lua

Titanium Appcelerator – Javascript Xamarin Studio – C#

Desenvolvimento utilizando Java (Dalvik VM) ou C/C++ (NDK)

17

Page 18: Treinamento básico de Android

SDK Manager AVD Manager DDMS LogCat Emulator

Draw 9-patch Monkey ProGuard ZipAlign Hierarchy View

18

Ferramentas Principais recursos da plataforma:

JUnit Robotium

Testes:

Page 19: Treinamento básico de Android

19

Ferramentas SDK Manager

Page 20: Treinamento básico de Android

20

Ferramentas AVD Manager Android Virtual Device

Page 21: Treinamento básico de Android

21

Ferramentas AVD Manager

New AVD

Page 22: Treinamento básico de Android

22

Ferramentas AVD Manager

Device Definitions

Page 23: Treinamento básico de Android

23

Ferramentas AVD Manager

New Device

Page 24: Treinamento básico de Android

24

Ferramentas Logcat

Log.d Log.e Log.i Log.v Log.w

Page 25: Treinamento básico de Android

25

Ferramentas Hierarchy View

Page 26: Treinamento básico de Android

26

Ferramentas Draw 9-patch

image.9.png

Page 27: Treinamento básico de Android

27

Emulador O que é um Emulador?

Page 28: Treinamento básico de Android

28

Emulador Run Application

Page 29: Treinamento básico de Android

Início - Home Menu – F2 ou Page Up Voltar - ESC Discador – F3 Finalizar Chamada – F4 Procurar – F5

Desligar – F7 Câmera – CTRL F3 Landscape – CTRL F11 Portrait – CTRL F12 Rede do celular – F8 Tela Cheia – Alt Enter

29

Emulador Atalhos

Page 30: Treinamento básico de Android

Desenvolvimento de Aplicações MVC

Model View Controller

30

Page 31: Treinamento básico de Android

Desenvolvimento de Aplicações Estrutura de projeto:

Activities Views Diretório Resources

Drawables Layouts Menus Values

Manifest

31

Page 32: Treinamento básico de Android

Desenvolvimento de Aplicações Manifest

<action> <activity> <application> <intent-filter> <permission> <provider> <receiver> <service> <uses-sdk>

32

Page 33: Treinamento básico de Android

Desenvolvimento de Aplicações Views

<Layout /> <Button /> <TextView /> <ImageView /> <RadioButton /> <CheckBox /> <DatePicker /> <TimerPicker/ >

33

Page 34: Treinamento básico de Android

Exercício

34

1. Implementar um Hello World

2. Examinar o ciclo de vida da Activity

3. Avaliar estrutura do projeto

Page 35: Treinamento básico de Android

Activity

Ciclo de Vida onCreate(); onStart(); onResume(); onPause(); onStop(); onDestroy(); onRestart();

35

Page 36: Treinamento básico de Android

Activity

36

Ciclo de Vida Start

onCreate(); onStart(); onResume();

Stop onRestart(); onStart(); onResume();

Page 37: Treinamento básico de Android

Propriedades string.xml

Permite a organização de mensagens da aplicação;

Simplifica a internacionalização de aplicativos.

R.java Gerado automaticamente com os IDs dos resources usados;

Realiza o mapeamento entre xml (views e resources) com classes Java.

37

Page 38: Treinamento básico de Android

Propriedades Diretório RES

Organiza imagens, strings, cores, dimensões e estilos.

Assets Pasta para alocação de arquivos (.jar, .txt etc) externos

38

Page 39: Treinamento básico de Android

Propriedades Drawable

Composta por imagens do aplicativo

Layout Composta por arquivos xml com os layouts do aplicativo

39

Page 40: Treinamento básico de Android

User Interface Button

<Button

android:id="@+id/button1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text=“Click Me" />

TextView<TextView

android:id="@+id/text1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Hello" />

40

Page 41: Treinamento básico de Android

User Interface

41

EditText

<EditText

android:id="@+id/edittext1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:hint=“Say your name" />

ImageView<ImageView

android:id="@+id/imageview1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/image" />

Page 42: Treinamento básico de Android

User Interface É recomendado criar componentes visuais utilizando XML através dos layouts

Performace MVC

Componentes que herdem da classe View podem ser associados com interfaces de eventos externos

Listeners OnClickListener OnLongClickListener OnLocationListener

42

Page 43: Treinamento básico de Android

43

User Interface Exemplo de UI

Android 2.3

Page 44: Treinamento básico de Android

44

User Interface Exemplos de componentes visuais mais sofisticados

Menu ActionBar Dialogs Toast

Page 45: Treinamento básico de Android

Exercício

45

1. Avaliar a OverView Application

2. Modificar o visual dos componentes

Page 46: Treinamento básico de Android

Intents

46

O que são os intents?

Como utilizar os intents?

Tipos de intents:

Internos Externos Receivers

Page 47: Treinamento básico de Android

Intents

47

Intents para chamadas Internas

intent i = new Intent(this, SecondActivity.class);

startActivity(i);

startActivityForResult(i, REQUEST_CODE);

Pode ser composto por key e values Bundle

Intent Extras

Page 48: Treinamento básico de Android

Intents

48

protected void onActivityResult(int requestCode, int resultCode, Intent data);

Necessita de startActivityForResult Executado quando acaba a Activity disparada pela Intent

Page 49: Treinamento básico de Android

Intents

49

Exemplos de Uso: Intent.ACTION_VIEW, Uri.parse("http://www.site.com"));

Intent.ACTION_CALL, Uri.parse("tel:(+49)12345789"));

Intent.ACTION_DIAL, Uri.parse("tel:(+49)12345789"));

Intent.ACTION_VIEW, Uri.parse("geo:50.123,7.1434?z=19"));

Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=query"));

Intent.ACTION_VIEW, Uri.parse("content://contacts/people/"));

Intent.ACTION_EDIT, Uri.parse("content://contacts/people/1"));

Page 50: Treinamento básico de Android

Layouts

50

Organiza componentes gráficos na tela

Estrutura em árvore

ViewGroup e View Formas de implementação

Via XML Programaticamente via código (Java)

Page 51: Treinamento básico de Android

Layouts - Atributos

51

Background Camada de fundo do nó

Padding Deslocamento interno do nó, em density pixels (dp)

Margin Deslocamento externo do nó, em density pixels (dp)

Page 52: Treinamento básico de Android

Layouts - Propriedades

52

Fill_parent Significa que o nó poderá ocupar todo o espaço permitido pelo nó pai. Esta

propriedade foi renomeada para match_parent a partir da API 8 (Android Froyo).

Wrap_content Significa que o nó irá ocupar apenas o espaço que ela necessita.

DP ou DIP (Density Pixels) Unidade virtual utilizada pelo o Android para definição básica de espaço

Representa um pixel fisico em uma tela de 160 dpi (quantidade de pixels em uma polegada)

Page 53: Treinamento básico de Android

Layouts - Tipos

53

FrameLayout LinearLayout RelativeLayout ScrollView

Page 54: Treinamento básico de Android

FrameLayout

54

Layout mais eficiente, leve e rápido; Organiza os componentes em forma de pilha, sendo o último adicionado ao

topo;

Geralmente utilizado em conjunto com Fragments.

Page 55: Treinamento básico de Android

LinearLayout

55

Alinha todos seus nós filhos em uma única direção Horizontal (default)

Vertical

Weight Atributo que define o quanto da tela um nó irá ocupar

Nós filhos definem esse valor

Valor default: 0

Page 56: Treinamento básico de Android

RelativeLayout

56

Ajusta os nós filhos através de relacionamentos entre os proprios nós ou ao seu pai

Posicionamento de um nó filho é definido no próprio nó filho

Um nó filho pode ser posicionado em relação a outro nó filho que ainda não foi criado bastando declarar seu id

Default: Top-Left

Page 57: Treinamento básico de Android

ScrollView

57

Herda de FrameLayout Pode ter apenas um nó filho (geralmente um outro layout)

Utilizado quando a tela possui muitos elementos, necessitando de um scroll

Nunca utilize junto com um ListView Suporta apenas rolagem vertical

HorizontalScrollView

Page 58: Treinamento básico de Android

Resources

58

Devem se localizar nos subditerórios da pasta res

Recursos devem ser sempre externalizados

Dessa forma é possivel prover recursos alternativos

Para qualquer recurso pode ser definido um padrão e um alternativo

Utilizados independentemente da configuração do device ou quando não existem recursos alternativos

Projetados para serem utilizados em uma configuração específica:

Qualifiers

Page 59: Treinamento básico de Android

Resources - Tipos

59

Animation Anim Color Integer Boolean

Layout Menu Values Color State List Drawable

Page 60: Treinamento básico de Android

Resources - Drawables

60

Localizado em res/drawable/ Podem ser bitmaps do tipo png, jpg ou gif XML

Java

Page 61: Treinamento básico de Android

Resources - Strings

61

Fornece recurso de texto para aplicação

Localizado na pasta res/values

Tipos

String Array de String

Page 62: Treinamento básico de Android

Strings – i18n

62

Internacionalização de Strings

res/values/strings.xml

res/values-pt/strings.xml

Referência de uso

Page 63: Treinamento básico de Android

Strings – i18n

63

Uso de Strings dinâmicas

res/values/strings.xml

res/values-pt/strings.xml

Referência de uso

Page 64: Treinamento básico de Android

Resources - Qualifiers

64

Recursos alternativos

Android detecta configurações do dispositivo e carrega o recurso apropriado

O qualifier é concatenado ao nome da pasta de recurso separado por ‘-’

Res/<resource>-qualifier>/ <resource>: nome do tipo do recurso <qualifier>: configuração única que o recurso irá se aplicar

É possível utilizar mais de um qualifier ao mesmo tempo

Concatenados e separados por ‘-’

Seguir ordem especificada pelo o Google

Page 65: Treinamento básico de Android

Resources - Qualifiers

65

MCC e MNC

Language e Region

Screen Size

Screen Orientation

Screen Pixel Density

Touchscreen type

Night mode

Page 66: Treinamento básico de Android

Resources – Language e Region

66

Utilizado para internacionalizar a aplicação

O idioma é definido por duas letras

ISO 639-1 Pode ser utilizado em conjunto com a região

Duas letras precedidas de’r’

Uma região não pode ser utilizada sem o idioma

Page 67: Treinamento básico de Android

ListView

67

ViewGroup Exibe uma lista Já possui scroll Utiliza Adapter

Page 68: Treinamento básico de Android

ListActivity

68

Classe que já possui um ListView interno

Possui um layout default

Usar layout diferente

´@android:id/list’

Page 69: Treinamento básico de Android

Adapter

69

Adaptar interface de uma classe

Permite que classes incompatíveis trabalhem de forma correta através de uma interface

Page 70: Treinamento básico de Android

Layout Inflater

70

Transforma um layout XML em uma View

Page 71: Treinamento básico de Android

Exercício

71

1. Avaliar a ToDo Application

Page 72: Treinamento básico de Android

Toast

72

Pequeno popup que é mostrado durante um curto período de tempo

Usado para dar um feedback visual de alguma operação

Método estático makeText cria Toast padrão

Toast customizado

LayoutInflater

Page 73: Treinamento básico de Android

Dialogs

73

Pequena janela que pode interagir com o usuário

Aguardar um ‘ok’ ou ‘cancel’

Receber alguma entrada

Page 74: Treinamento básico de Android

Shared Preferences

74

Forma de persistir dados de uma aplicação

Framework que permite desenvolvedor gravar e recuperar dados

Outras aplicações podem ter acesso, porém não é recomendado

Chave-valor

Booleans, Floats, Ints, Longs, Strings

Page 75: Treinamento básico de Android

Persistência de Dados

75

SQLite Forma de persistência de dados no Android

Banco leve, rápido e poderoso

Uma aplicação pode ter um ou mais banco de dados

Uma aplicação não enxerga o banco de dados de outra aplicação.

Page 76: Treinamento básico de Android

Exercício

76

1. Avaliar a GREat Tasks Application

Page 77: Treinamento básico de Android

Projeto Final

77

Proposta – Calendário Requisitos

Acesso privado através de usuário e senha;

Opção de adicionar um contato da agenda a um compromisso;

Deve abrir arquivos do tipo “xyz” e ir para a tela de criação de compromisso com os dados já preenchidos a partir do arquivo;

Um serviço para notificar o usuário que falta X minutos para o inicio do compromisso;

Deve expor os horários para outras aplicações acessarem;

Deve conter um menu de contexto que conterá as opções de editar e deletar o compromisso se for feito um clique longo em um item de compromisso ou um menu contendo “mudar a ordenação dos compromissos” ou colapsar e abrir o dia da semana se for selecionado o dia da semana.