Treinamento básico de Android

Post on 14-Apr-2017

225 views 2 download

Transcript of Treinamento básico de Android

Treinamento de Android

2

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

3

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

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

Versões 1.5 - Cupcake

Melhorias na Interface Gráfica Widget de terceiros

6

Versões 1.6 - Donut

Salvar Anexos

Comentários no Maps

Comandos de Voz

7

Versões 2.0 e 2.1- Eclair

User Interface Redesign Múltiplas contas

Recursos de câmera

Maior resolução de tela

8

Versões 2.2 - Froyo

Melhorias no Navegador

Hotspot Wi-Fi

USB Tethering Flash

9

Versões 2.3 - Gingerbread

Interface renovada

Múltiplas câmeras Giroscópio

Barômetro

NFC

10

Versões 3.0 - Honeycomb

UI Redesign Barra de sistemas

Suporte multicore

Tablets

11

Versões 4.0 - Ice Cream Sandwich

Customização de launcher

Reconhecimento facial Gerenciamento de energia

Melhorias no Teclado

Notificações e Multitarefa

12

Versões 4.1~4.3 - Jelly Bean

Google Now

Resolução 4k

Photo Sphere

Mapas Offline

Melhorias nas Animações

13

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

Sensores Smartphones possuem diversos tipos de sensores e periféricos

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

15

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

16

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

SDK Manager AVD Manager DDMS LogCat Emulator

Draw 9-patch Monkey ProGuard ZipAlign Hierarchy View

18

Ferramentas Principais recursos da plataforma:

JUnit Robotium

Testes:

19

Ferramentas SDK Manager

20

Ferramentas AVD Manager Android Virtual Device

21

Ferramentas AVD Manager

New AVD

22

Ferramentas AVD Manager

Device Definitions

23

Ferramentas AVD Manager

New Device

24

Ferramentas Logcat

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

25

Ferramentas Hierarchy View

26

Ferramentas Draw 9-patch

image.9.png

27

Emulador O que é um Emulador?

28

Emulador Run Application

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

Desenvolvimento de Aplicações MVC

Model View Controller

30

Desenvolvimento de Aplicações Estrutura de projeto:

Activities Views Diretório Resources

Drawables Layouts Menus Values

Manifest

31

Desenvolvimento de Aplicações Manifest

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

32

Desenvolvimento de Aplicações Views

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

33

Exercício

34

1. Implementar um Hello World

2. Examinar o ciclo de vida da Activity

3. Avaliar estrutura do projeto

Activity

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

35

Activity

36

Ciclo de Vida Start

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

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

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

Propriedades Diretório RES

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

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

38

Propriedades Drawable

Composta por imagens do aplicativo

Layout Composta por arquivos xml com os layouts do aplicativo

39

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

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" />

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

43

User Interface Exemplo de UI

Android 2.3

44

User Interface Exemplos de componentes visuais mais sofisticados

Menu ActionBar Dialogs Toast

Exercício

45

1. Avaliar a OverView Application

2. Modificar o visual dos componentes

Intents

46

O que são os intents?

Como utilizar os intents?

Tipos de intents:

Internos Externos Receivers

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

Intents

48

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

Necessita de startActivityForResult Executado quando acaba a Activity disparada pela Intent

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

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)

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)

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)

Layouts - Tipos

53

FrameLayout LinearLayout RelativeLayout ScrollView

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.

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

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

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

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

Resources - Tipos

59

Animation Anim Color Integer Boolean

Layout Menu Values Color State List Drawable

Resources - Drawables

60

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

Java

Resources - Strings

61

Fornece recurso de texto para aplicação

Localizado na pasta res/values

Tipos

String Array de String

Strings – i18n

62

Internacionalização de Strings

res/values/strings.xml

res/values-pt/strings.xml

Referência de uso

Strings – i18n

63

Uso de Strings dinâmicas

res/values/strings.xml

res/values-pt/strings.xml

Referência de uso

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

Resources - Qualifiers

65

MCC e MNC

Language e Region

Screen Size

Screen Orientation

Screen Pixel Density

Touchscreen type

Night mode

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

ListView

67

ViewGroup Exibe uma lista Já possui scroll Utiliza Adapter

ListActivity

68

Classe que já possui um ListView interno

Possui um layout default

Usar layout diferente

´@android:id/list’

Adapter

69

Adaptar interface de uma classe

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

Layout Inflater

70

Transforma um layout XML em uma View

Exercício

71

1. Avaliar a ToDo Application

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

Dialogs

73

Pequena janela que pode interagir com o usuário

Aguardar um ‘ok’ ou ‘cancel’

Receber alguma entrada

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

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.

Exercício

76

1. Avaliar a GREat Tasks Application

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.