Neste guia, descrevemos os componentes que compõem uma tarefa em andamento na forma de um cronômetro. Uma tarefa em andamento exibe um card ativo na linha do tempo enquanto um usuário está envolvido em uma tarefa e permite que ele entre e saia do card ativo conforme precisa de informações.
Ao longo do caminho, você também vai aprender dicas de design, desenvolvimento e distribuição que são importantes para criar seu próprio Glassware.
Antes de começar
A fonte completa do cronômetro está disponível no GitHub. Importe-o para o Android Studio antes de começar, porque este guia se refere muito a ele.
- Na tela de início rápido, clique em Check out from version Control > Git.
- Copie o URL clone do Cronômetro.
- Cole o URL clone no URL do repositório Vcs e clique em Clonar.
- Clique em Sim na tela seguinte.
- Clique em OK na tela seguinte.
- Crie o projeto e execute-o no Glass conectado clicando no
botão Play. Verifique os detalhes da invocação no
README
da amostra.
Conteúdo
Você vai aprender a usar componentes do SDK do Android para criar a maior parte da tarefa em andamento do cronômetro e, em seguida, o GDK para conectar à experiência do Glass. Veja uma lista de tópicos que você aprenderá:
- Como criar uma visualização personalizada para desenhar no card dinâmico
- Como criar um serviço para gerenciar o cartão ativo
- Fornecimento de um menu que permite aos usuários remover o card ativo da linha do tempo
- Declarar um gatilho de voz para iniciar o cronômetro no menu de voz principal
Design
Antes de começar a desenvolver, reserve um tempo e projete seu Glassware. Isso dá uma boa ideia de quais fluxos de interface funcionam melhor no Glass, qual comando de voz você vai usar e como será a aparência dos cards.
Obviamente, projetar o Glassware é um processo iterativo e algumas das coisas que você projeta agora mudarão, mas ter uma boa parte desse trabalho feito no início é crucial para criar uma ótima experiência.
Fluxo da interface
Projetar o fluxo da interface é um exercício simples e permite visualizar o Glassware antes de escrever uma linha de código. Fazemos isso o tempo todo para os Glassware que criamos!
Vamos conferir os principais elementos de interface do cronômetro para você ter uma ideia de como a interface funciona e como esse processo pode ser útil ao criar seu próprio Glassware.
IU principal
O Cronômetro contém apenas um fluxo principal, porque é uma experiência bastante simples.
Quando os usuários invocam o Glassware, eles recebem um intersticial de contagem regressiva de três segundos antes do início do cronômetro. O cronômetro então conta os dados até que o usuário o remova da linha do tempo com um item de menu Parar.
Comando de voz
É preciso definir um comando de voz bem no início do processo de design. Os comandos de voz permitem que os usuários iniciem o Glassware no menu de voz do Glass Home, se necessário, e são uma parte importante de como você projeta o Glassware.
Por exemplo, o comando Post an update funciona bem em um modelo fire-and-forget, em que os usuários falam o texto e o Glassware o processa sem nenhuma outra intervenção do usuário. Isso permite que os usuários voltem ao que estão fazendo rapidamente.
Por outro lado, para algo como Jogar, normalmente convém colocar os usuários em uma tela de apresentação para que eles possam receber a orientação primeiro. Como esse comando de voz provavelmente inicia uma imersão, é normal que os usuários não se importem em ver telas e menus extras para iniciar o jogo. Colocar os usuários imediatamente em uma experiência de jogo logo após o comando de voz geralmente é uma experiência ruim para os jogos.
O cronômetro usa o comando de voz Iniciar um cronômetro. Depois que os usuários invocam o comando de voz, o cronômetro é iniciado imediatamente após uma curta tela de contagem regressiva intersticial, o que é melhor do que fornecer um item de menu. Para tarefas contínuas, geralmente é melhor levar os usuários à experiência o mais rápido possível, quando fizer sentido.
Layouts de cards
Se você estiver criando imersões ou cards ao vivo, use
os layouts CardBuilder
ou XML sempre que possível.
Muitas vezes, você ainda precisará criar seu próprio layout, então siga nossas diretrizes de interface para ter o Glassware mais bonito.
O cronômetro segue as diretrizes gerais de layout, mas tem layouts de interface personalizados usando componentes padrão do Android, como visualizações e layouts.
Desenvolver
Para desenvolver cards ativos, use as mesmas ferramentas usadas no desenvolvimento do Android para criar a maior parte do Glassware e, em seguida, use as APIs no complemento GDK para acessar funcionalidades específicas do Glass, como cards ativos e comandos de voz.
Você usará componentes comuns do Android com frequência para criar o Glassware, mas lembre-se de que alguns conceitos às vezes são diferentes. Por exemplo, você renderiza e gerencia cards ativos com um serviço do Android, que não é uma maneira típica de usar serviços em apps Android tradicionais. Outro exemplo são os cards ativos que não têm contexto de interface próprio, então você precisa usar uma atividade de shell que mostre um menu para o card ativo. Você aprenderá como esses componentes são criados mais adiante neste guia.
As outras seções de desenvolvimento mostram como o cronômetro é estruturado e os principais componentes do projeto que você importou anteriormente. É útil ter o Android Studio instalado agora para que você possa acompanhar. O código-fonte em si é comentado. Portanto, esta seção aborda o propósito de alto nível de cada arquivo e dicas úteis que podem ser aplicadas ao seu próprio Glassware.
Comando de voz
Crie comandos de voz com um arquivo de recurso XML que especifique
o comando que você está usando e, em seguida, especifique o recurso XML
no arquivo AndroidManifest.xml
.
Os arquivos a seguir estão associados ao comando de voz do cronômetro:
res/xml/voice_trigger_start.xml
: declara o comando de voz a ser usado.AndroidManifest.xml
: declara que o serviço de cartão ativo será iniciado quando o comando de voz for falado.
Visualização da contagem regressiva
O cronômetro mostra uma contagem regressiva antes que o tempo seja realmente registrado para que os usuários percebam que o tempo está prestes a passar.
Os seguintes arquivos estão associados à visualização da contagem regressiva:
res/layout/card_countdown.xml
: define o layout do visualizador de contagem regressiva.src/com/google/android/glass/sample/stopwatch/CountDownView.java
: define a visualização da contagem regressiva.
Visualização do cronômetro
Esta é a visualização principal do Cronômetro. O tempo decorrido desde a conclusão do intersticial de contagem regressiva é exibido. Os seguintes arquivos estão associados à visualização do cronômetro:
res/layout/card_chronometer.xml
: define o layout da visualização do cronômetro.src/com/google/android/glass/sample/stopwatch/ChronometerDrawer.java
: define como renderizar a visualização. O serviço de cartão ativo chama essa classe para desenhar para o serviço de cartão ativo.src/com/google/android/glass/sample/stopwatch/ChronometerView.java
: a visualização de cronômetro que usa o layout anterior como a interface.
Serviço de cronômetro
Esse é o serviço que gerencia o ciclo de vida e a renderização do card ativo. Os seguintes arquivos estão associados a este serviço:
src/com/google/android/glass/sample/stopwatch/StopwatchService.java
- gerencia o cartão em tempo real do cronômetro e o ciclo de vida do serviço.
Atividade do menu
Os cards dinâmicos não têm o próprio contexto de interface para mostrar um menu, porque eles renderizam as interfaces no contexto da linha do tempo.
Para contornar essa limitação, você cria uma atividade translúcida que aparece na parte superior da linha do tempo e, em seguida, exibe o menu dessa atividade imediatamente após o usuário tocar no card ativo.
src/com/google/android/glass/sample/stopwatch/MenuActivity.java
: declara a atividade de menu translúcida que mostra o menu imediatamente quando a atividade está visível.res/values/styles.xml
: define o estilo translúcido aplicado ao menu.res/menu/stopwatch.xml
: o recurso de menu que contém o item de menu Stop obrigatório.
Manifesto do Android
O arquivo AndroidManifest.xml
descreve os principais componentes
do Glassware para que o sistema saiba como executá-lo. O manifesto
do Charades declara o seguinte:
- O ícone e o nome do Glassware. O Glass exibe essas informações no menu de toque principal se mais de um Glassware responder ao mesmo comando de voz.
- Todos os serviços e atividades associados ao cronômetro. Isso é necessário para que o sistema saiba como iniciar os componentes do Glassware.
- O comando de voz e um filtro de intent que inicia o serviço de card ativo quando o comando de voz é falado.
- Um código de versão para o Glassware. Esse código precisará ser atualizado (e normalmente o nome da versão também) sempre que uma nova versão deste APK for enviada ao MyGlass.