A biblioteca Jetpack Navigation traz diversos benefícios na implementação do fluxo navegacional de aplicações Android. Mas para ser bem honesto, mesmo sabendo de todos os seus benefícios, eu nunca fui muito fã dela e sempre evitei utilizá-la. Nem sei explicar o porquê, mas uma coisa que me incomoda é não ter nos fragments a animação de transição padrão de activities existente na plataforma. É preciso utilizar animações do tipo slide, fade, etc… Até pensei que usar a animação padrão do S.O. seria algo simples que o Google poderia fazer, mas conversando uma vez com o Ian Lake, ele me falou…
No artigo anterior eu fiz uma breve introdução à navegação de telas utilizando a biblioteca Navigation para Compose. Nesse post, demonstrarei como implementar uma das formas de navegação mais comuns atualmente em aplicações mobile: a abas inferiores (ou bottom tabs).
O intuito desse exemplo é simular o comportamento navegacional da aplicação do YouTube (especificamente a versão 15.50.35), que possui 4 abas iniciais: Início, Explorar, Inscrições e Biblioteca. Ao selecionar a aba "Biblioteca" e escolher uma opção ("Histórico", por exemplo), o conteúdo é exibido na própria aba. …
O Jetpack Compose veio com o intuito de ser o novo toolkit de UI para Android, substituindo os componentes que herdam da classe View
por funções @Composable
. Obviamente isso envolve toda uma mudança de paradigma de desenvolvimento de UI, que com o Compose, passa a ser declarativa, ao invés da abordagem imperativa utilizada atualmente. Mas um dos pontos que sempre chamou a atenção quando eu falava sobre o Compose era a navegação entre telas. Para isso, o Google está trabalhando na biblioteca de Navigation para Compose e neste post veremos como dar os primeiros com ela.
Nesse exemplo, estou utilizando…
O Google recentemente adicionou uma nova biblioteca ao arsenal do Jetpack: a DataStore. Esse componente tem o intuito de facilitar e modernizar ainda mais o armazenamento de configurações da aplicação. Essa biblioteca cria uma abstração sobre as SharedPreferences e Protocol Buffers (ou simplesmente ProtoBuf) com suporte a Coroutines e Flow.
Nesse post vou demonstrar as duas formas de utiliza o DataStore: com SharedPreferences e com ProtoBuf. Em ambos, utilizaremos Coroutines, por isso é preciso adicionar a seguinte dependência no build.gradle.
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.2.0"
Essa dependência permitirá lançar as coroutines a partir da Activity. Se desejar fazer o mesmo a partir de…
Sempre fui um adepto do uso do LiveData para realizar a comunicação entre a UI (Activity/Fragment) e a apresentação (ViewModel). Mas durante uma thread de discussão no slack do Android Dev BR, o Lucas Cavalcante sugeriu utilizar a classe StateFlow da API de Coroutines que foi lançada na versão 1.3.6 da API de Coroutines. Nesse post, será apresentado um exemplo simples do seu uso e como escrever alguns testes para um view model que use essa API.
No contexto de MVVM no Android, é muito comum representar operações assíncronas em três possíveis estados: carregando, sucesso e erro. …
Tenho feito algumas PoC (Proof of concept) no projeto que estou trabalhando atualmente. Coincidentemente essas PoCs possuíam certos fluxos de telas que continham estados que deveriam ser compartilhados entre telas de um mesmo fluxo. Por exemplo, um fluxo de sign in, o usuário digitava o email em uma tela, na outra o nome e sobrenome, em seguida aceitava os termos de uso, etc. …
Estou devendo esse post a mim mesmo há um bom tempo. Desde quando escrevi a primeira edição do meu livro, um dos leitores sugeriu que eu colocasse uma seção demonstrando como publicar bibliotecas de modo que elas fossem acessíveis a outros desenvolvedores.
Acabei esquecendo desse assunto. Mas recentemente trabalhei em um projeto em que cada grande feature era separada em um repositório à parte, e para isso é usado o JFrog. Mas como já usamos o GitHub, surgiu então possibilidade de utilizar o GitHub Packages. …
Recentemente precisei implementar uma animação utilizando uma RecyclerView
e percebi que poderia ser relativamente fácil de implementar utilizando o MotionLayout
.
SPOILER! O resultado final será esse! :)
O ViewPager é basicamente um gerenciador de layout que permite à aplicação exibir páginas de dados (normalmente) semelhantes, onde o usuário pode alternar entre essas páginas utilizando o gesto de swipe (deslizando horizontalmente) para esquerda e para direita.
Recentemente o Google apresentou o ViewPager2, que é parte integrante do Jetpack e que possui algumas melhorias em relação ao seu antecessor:
android:orientation
para "vertical";android:layoutDirection="rtl"
;RecyclerView
por meio…
No meu antigo blog, todo ano eu fazia a retrospectiva do meu ano. Percebi que por alguma razão, eu não escrevi esse post em 2018. Mas não poderia deixar 2019 passar em branco, pois esse ano pra mim, foi mais um ano abençoado por Deus.
Participei do Android Fest em Aracajú. E como é bom ter um evento desses no Nordeste e um orgulho enorme ser convidado para palestrar.
Valeu GDG Aracajú!
Android Developer. Google Developer Expert for Android/Kotlin. Author of “Dominando o Android”.