Lifecycle: Observe os ciclos de vida do Android e manipule os estados da interface do usuário após as alterações do ciclo de vida.
ViewModel: Gerencia o detentor de dados relacionados à interface do usuário e o ciclo de vida. Permite que os dados sobrevivam a alterações de configuração, como rotações de tela.
ViewBinding: Liga os componentes do XML no Kotlin através de uma classe que garante segurança de tipo e outras vantagens.
Custom Views: View customizadas feitas do zero usando XML.
Navigation: Gerencie links diretos e navegue entre telas.
Recyclerview: Mostre grandes conjuntos de dados na IU enquanto minimiza o uso de memória.
Arquitetura
MVVM (Model – View – ViewModel) com Clean Architecture
Comunicação da ViewModel com a View através de LiveData
Repositories para abstração da comunidação com a camada de dados.
Bibliotecas
Dagger Hilt : Para fazer injeção de dependências que reduz o código boilerplate.
Retrofit2 & OkHttp3: Para realizar requisições seguindo o padrão HTTP.
Picasso: Para carregamento de imagens e cacheamento das mesmas.