Olá, pessoal! Eu sou Alex Felipe, instrutor da Alura, e te desejo boas-vindas ao curso de Jetpack Compose: Criando Deep links e testando o Navigation.
Alex é um homem negro de pele clara, com cabelos raspados. Seus olhos são castanho-escuros. Está vestindo uma camisa preta lisa, usa brincos pequenos e redondos. Está sentado em uma cadeira gamer preta, com um microfone mais à frente do instrutor. Ao fundo, há uma parede na cor branca com uma luz gradiente azul do lado direito e roxa do lado esquerdo.
Nesse curso usaremos o Panucci, um projeto android que simula um aplicativo de restaurante. A partir dele, utilizaremos novas técnicas do Navigation como:
Essas são técnicas muito importantes, afinal elas proporcionam mais dinamismo no nosso aplicativo.
Podemos utilizar o Save State Handle quando encerramos um fluxo, como em uma finalização de pedido que precisamos indicar ao usuário que o pedido foi realizado, por exemplo.
Já, se precisarmos apresentar um conteúdo muito específico a partir de um link, podemos utilizar o Deep link.
Para garantir que tudo está funcionando podemos utilizar uma ferramenta do Navigation chamada testes automatizados. Ela é essencial para garantir o funcionamento de todo fluxo do aplicativo.
Para fazer esse curso você precisa saber a implementar o Navigation com o Compose. Para isso, indicamos o curso de Type Safety com Navigation, nele você pode aprender tudo o que é necessário para iniciar seus estudos.
Gostou do conteúdo? Te espero na primeira aula!
Antes de começarmos o curso, vamos apresentar as melhorias e mudanças que fizemos no projeto, que é uma continuação do curso de Type Safety.
Para entender as principais mudanças de código, acessamos o commit no GitHub.
Logo no início identificamos uma atualização na biblioteca de testes e abaixo a remoção de alguns imports.
No projeto anterior, no momento em que configuramos cada um dos destinos, como o checkoutScreen
, mandávamos o controlador dentro dele e assim efetuávamos a navegação.
A mudança nessa versão do projeto é que elevamos o onPopBackStak
para que nosso NavHost
seja responsável. Dessa forma não precisamos mandar o controlador para cada um dos destinos, quem fica responsável por fazer a ação de navegação é o próprio controlador.
Essa mudança foi feita em todos os destinos, elevamos cada um desses eventos para que o controlador seja feito pelo
NavHost
.
Além disso, anteriormente, no próprio evento da tela indicávamos que iriamos fazer uma navegação. Com a atualização do código mantemos apenas a ação que a tela deve ter, ou seja, indicar que foi feito.
Assim, por exemplo, quando houver um clique em um produto, quem determinará se será uma navegação para uma tela ou outro lugar é o destino, configurado por meio do Type Safety e proporcionando melhoria na escrita e leitura do nosso código. Se clicarmos no arquivo PanucciNavHost.kt
notamos que ele é o responsável por fazer a navegação de todos os destinos.
Fizemos a remoção de alguns imports do SampleData.kt
e se analisarmos o fim do código encontramos indicações referentes a mudança no nome dos eventos, assim como ocorreu nos demais. A única diferença é que ele mostra as mudanças no código de tela.
A tela de destaques, que é a tela inicial, também teve modificações no viewModel
. Criamos um código para gerar novos IDs para cada produto. Isso foi feito propositalmente para simular e testar que o acesso dos produtos por essa tela da falha.
Por fim, tivemos a atualização do plugin gradle
para o android
, pois estamos utilizando a versão atualizada Android Studio Flamingo | 2022.2 Beta 1.
Caso você queira entender essas mudanças de forma mais detalhada, recomendamos que você acesse o commit e analise todo o código.
Agora que você já sabe como nosso projeto está organizado, vamos começar a explorá-lo e adicionar novas funcionalidades.
Até a próxima aula!
Agora que já entendemos as mudanças do nosso projeto, estamos quase prontos para fazer a primeira melhoria.
Antes disso, para que você entenda as mudanças que faremos, vamos apresentar uma situação muito comum que está acontecendo no nosso aplicativo.
Primeiro acessamos a tela de pedidos. Em "Destaques do dia", clicamos no botão "Pedir", assim somos direcionados para a tela de pedidos.
Feito isso, ao chegar no momento final, ou seja, de efetuar o pedido clicando no botão "Pedir", o aplicativo atualiza e não indica o que aconteceu. Dessa forma não conseguimos saber se a ação deu certo ou se houve algum problema.
Em situações como essa é muito importante aplicarmos técnicas de melhoria para que o aplicativo garanta uma melhor experiência para o usuário.
Poderíamos solucionar esse problema criando, por exemplo, uma nova tela. Dessa forma, ao clicar no botão "Pedir", ela indicaria ao usuário as informações do pedido.
Porém, ao invés disso, utilizaremos um novo recurso. Por meio dele conseguiremos trafegar informações no nosso aplicativo e dessa forma, independente da tela, conseguiremos apresentar uma mensagem que indicará se o pedido foi realizado ou se houve algum problema.
Essa ferramenta é o Saved State Handle. Ele armazena informações simples em uma estrutura de chave-valor, possibilitando tanto armazenar como a recuperar partes do aplicativo.
Na próxima aula aprenderemos como funciona a implementação do Saved State Handle com o Navigation.
O curso Jetpack Compose: criando Deep links e testando o Navigation possui 188 minutos de vídeos, em um total de 66 atividades. Gostou? Conheça nossos outros cursos de Android em Mobile, ou leia nossos artigos de Mobile.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.