Depois de criar telas individuais para cada jornada do usuário, você pode ter algumas telas verticais ou únicas telas. Em seguida, é necessário decidir como criar essas telas para que funcionem juntas e como implementar a navegação.
Design
Mantenha a hierarquia do app superficial e linear, conforme indicado nas diretrizes de design de apps.
Para começar, o inicializador do app precisa abrir a jornada do usuário mais comum. Crie cada jornada do usuário com o conteúdo mais importante na parte de cima. Para contêineres verticais, use a parte de baixo para vincular a outras jornadas do usuário menos comuns e às configurações.
Figura 1. Mantenha o conteúdo mais importante na parte de cima dos contêineres verticais.
Quando os usuários acessam uma das telas, eles precisam poder usar o gesto de deslizar para dispensar para navegar pela backstack.
Implementar a navegação
Ao implementar a navegação, você tem três opções, descritas nas seções a seguir:
- Somente atividades, que é a abordagem recomendada
- Atividades e fragmentos
- Jetpack Navigation
Somente atividades
Como as telas verticais geralmente têm apenas um nível de profundidade, é possível implementar todas as telas usando atividades e sem usar fragmentos.
Recomendamos essa abordagem. Ela simplifica o código, e as atividades oferecem suporte automático ao gesto de deslizar para dispensar. Isso também simplifica a implementação do modo ambiente.
Observação: faça com que suas atividades herdem de uma
ComponentActivity se
você não estiver usando fragmentos. Os outros tipos de atividade usam elementos de interface específicos para dispositivos móveis que não são necessários para o Wear OS.
Atividades e fragmentos
É possível usar fragmentos com atividades no app para Wear OS. No entanto, não recomendamos isso, porque não há uma vantagem clara em usar fragmentos para criar uma arquitetura superficial e simples.
Observação: se você estiver usando fragmentos, faça com que eles herdem de
FragmentActivity. Os
outros tipos de atividade usam elementos de interface específicos para dispositivos móveis que não são necessários para o Wear OS.
Algumas das dificuldades de usar fragmentos no app para Wear OS incluem o seguinte:
- É necessário implementar o gesto de deslizar para dispensar. Caso contrário, quando o usuário deslizar, ele vai sair de todo o app.
-
Se você estiver usando
AmbientMode, será necessário personalizá-lo para que funcione corretamente.AmbientModeé definido na atividade. Portanto, é necessário considerar isso ao implementar fragmentos.
Para oferecer suporte ao gesto de deslizar para dispensar com fragmentos, é necessário incluir a visualização que contém o fragmento na classe SwipeDismissFrameLayout. Consulte
O gesto de deslizar para dispensar
para mais informações. Isso oferece aos usuários uma experiência consistente com o app.
Observação: ao usar fragmentos, use
FragmentManager.add
em vez de
FragmentManager.replace
para oferecer suporte ao gesto de deslizar para dispensar.
Isso ajuda a garantir que o fragmento anterior seja renderizado abaixo do fragmento superior enquanto ele está sendo
deslizado.
Jetpack Navigation
O Jetpack Navigation pode funcionar no Wear OS, mas tem as mesmas desvantagens dos fragmentos. Ele adiciona trabalho de desenvolvimento e, como a hierarquia de um app Wear OS geralmente é superficial e linear, não oferece muitas vantagens. Uma abordagem somente de atividades é a melhor.
Para aproveitar ao máximo o Jetpack Navigation, faça o seguinte:
-
Verifique se cada fragmento usa a
SwipeDismissFrameLayoutcomo raiz e use manualmente a ação de dispensar para voltar no gráfico de navegação. -
Implemente um personalizado
FragmentNavigatorque renderize fragmentos uns sobre os outros.