Gerenciamento de estado do Jetpack Compose com UI State e ViewModel

  Рет қаралды 1,374

Alex Felipe

Alex Felipe

Күн бұрын

O Gerenciamento de estado é a peça fundamental para os Apps funcionarem! Há várias implementações e o uso do UI State é uma abordagem bastante adotada pela maneira que organizamos as informações que são apresentadas na tela. Em outras palavras, é de EXTREMA importância você conhecer essa técnica ao utilizar o Jetpack Compose.
Commit com o código do video - github.com/ale...
Me acompanhe nas redes - bento.me/alexf...

Пікірлер: 39
@newtyzito
@newtyzito 5 ай бұрын
Conteúdo valioso e gratuito pra galera, com qualidade de curso dos mais caros e bons! Pra quem ta começando: vai treinando toda essa estrutura que ele ensinou, porque é muito importante, atual e funcional. Com o tempo acaba sendo intuitivo demais. Valeu Alex, tu é o cara! nossa referencia! Eu fico até com curiosidade em como você aprendeu tanto (sendo que a maioria dos cursos, em Inglês mesmo, tem qualidade média). Abraços!
@AlexFelipeDev
@AlexFelipeDev 5 ай бұрын
Saaalve, Newtyzito! Cara, fico muito feliz em como vc enxerga o valor do conteúdo! Porque foi um dos assuntos que levei um tempo para entender, praticar, testar e concluir os motivos para manter essa prática. Muito obrigado pelo incentivo, principalmente no reforço para que outras pessoas deem importância para o conteúdo! E acho que é isso que comentou, com o tempo, conforme a prática, vai ficando mais intuitivo. Vlw demais por todo apoio e consideração 😎 Quanto a parte de aprender, é trocando ideia com outros devs, é mostrando como faço, perguntando como fazem, tentando me expor quando vejo algo novo na documentação para entender se faz ou não sentido hehe
@iagoantunes2086
@iagoantunes2086 5 ай бұрын
Esses videos sobre gerenciamento de estado, arquitetura são melhores, o gerenciamento de estado com jetpack é bem mais complicado de entender
@antonio195br
@antonio195br 5 ай бұрын
Até da um desanimo de ter que aprender essa estrutura. Acho muito complexo para a sua função mas infelizmente não tem o que fazer, com o tempo isso deve ficar mais claro e fácil. Parabéns pelo vídeo.
@AlexFelipeDev
@AlexFelipeDev 5 ай бұрын
Inicialmente, eu tive uma sensação similar a sua, Antonio! Mas, com o tempo, praticando bastante, eu até que gosto dessa abordagem considerando o quanto ela facilita algumas coisas considerando a ideia de código reativo. Vlw pelo apoio!
@marlonncarvalhosa
@marlonncarvalhosa 2 ай бұрын
Boa! Se possível, lança um video com o memsmo exemplo só que utilizando uma api qualquer, caso ja tenha, me fala o nome do video.
@AlexFelipeDev
@AlexFelipeDev 2 ай бұрын
Salve Marlon, tem aqui um exemple de como é feito com requisição HTTP kzbin.info/www/bejne/qHbRcpWant12aM0 No geral, vc vai mexer mais no repositório mesmo, essa parte do UiState é focado em fazer a ponte do que vem do repositório, então, pode ser qualquer fonte de dados, desde que o repositório mantenha a mesma interface de comunicação durante a resposta
@AlexSilva-ln2ke
@AlexSilva-ln2ke Ай бұрын
Cr muito bom, gostei muito, sou de web quero migrar, mas muita coisa nova em comparação com web
@AlexSilva-ln2ke
@AlexSilva-ln2ke Ай бұрын
Vou acompanhar fielmente o canal de vdd hehe
@AlexFelipeDev
@AlexFelipeDev Ай бұрын
Salve, Alex! Cara, desenvolver Apps android com técnicas modernas tem muita coisa legal! Só bora!
@yurilima3324
@yurilima3324 5 ай бұрын
Professor, mas em casos em que a gente não vai utilizar o init, deveremos então criar funções separadas para cada método do presente no UiState?
@AlexFelipeDev
@AlexFelipeDev 5 ай бұрын
Salve, Yuri! Não sei se entendi bem a sua dúvida, pois a ideia do init é que você já configure todos os eventos do estado que você não tem intenção de modificar. Agora, se a ideia é fazer essas configurações em algum outro momento em específico, ai sim, você vai precisar criar os métodos que deseja e colocar a configuração neles! O grande detalhe é usar a técnica de cópia para garantir que o estado seja mantido.
@yurilima3324
@yurilima3324 5 ай бұрын
@@AlexFelipeDev O senhor entendeu perfeitamente a pergunta, professor! Obrigado pela ajuda, sua didática é INCRÍVEL, continue ensinado, pois é um prazer enorme aprender com o senhor
@yurilima3324
@yurilima3324 5 ай бұрын
Professor, uma outra duvida me surgiu. onGasolinaChange e onAlcoolChange poderiam ser implementados na classe AppUiState? Como por exemplo GasolinaEAlcool() ?
@AlexFelipeDev
@AlexFelipeDev 5 ай бұрын
Salve, Yuri! De boas? Para esse padrão que é necessário fazer a cópia não. A única alternativa é fazer com que o próprio ViewModel tenha os métodos para alterar as properties do ui state a partir da cópia.
@koepeh
@koepeh 5 ай бұрын
Jetpack compose + Compose Desktop ou React pra um app Web, Mobile e Desktop?
@AlexFelipeDev
@AlexFelipeDev 5 ай бұрын
O Compose multiplatform já resolve a parte da aplicação mobile e desktop. Quanto a aplicação web, ainda não vi como o KMP está desempenhando, então acho que seria uma boa seguir com o React ou outro framework web mais maduro
@koepeh
@koepeh 5 ай бұрын
@@AlexFelipeDev Tem como desenvolver um app React com material design 3?
@AlexFelipeDev
@AlexFelipeDev 5 ай бұрын
@@koepeh tem sim, ou vc vai precisar implementar manualmente seguindo os guidelines da documentação, ou então, vai precisar usar libs, como por exemplo essa github.com/material-components/material-web/tree/main
@lucassantana2364
@lucassantana2364 5 ай бұрын
Muito Top o conteúdo Alex, se eu puder fazer uma sugestão de conteúdo. Fala um pouco sobre responsividade, explicando um pouco como usar o WindowSizeClass! Vlw pelo conteúdo!!!
@AlexFelipeDev
@AlexFelipeDev 5 ай бұрын
Salve, Lucas! Me parece um tema show! Eu vou considerar sim!
@lucassantana2364
@lucassantana2364 5 ай бұрын
@@AlexFelipeDev massa vou ficar acompanhando pra quando sair kkkkk
@AlexFelipeDev
@AlexFelipeDev 5 ай бұрын
@@lucassantana2364 qualquer coisa, vai lá no discord e vamos trocando ideia enquanto não produzo o video
@lucassantana2364
@lucassantana2364 5 ай бұрын
@@AlexFelipeDev Entrando agora kkkk
@leonardoschwedler6825
@leonardoschwedler6825 5 ай бұрын
Perfeito, faz um app ensinando a arquitetura MVVM na pratica seria bom dms
@AlexFelipeDev
@AlexFelipeDev 5 ай бұрын
Salve Salve, Leo! Basicamente, só precisa conectar com um 'modelo' que geralmente seria um repositório. No vídeo de Room já tem um exemplo, mas, posso fazer um outro vídeo para formalizar o pattern.
@giovanileitevitor
@giovanileitevitor 5 ай бұрын
Alex, que conteúdo show esse... curti demais o fluxo que tu adotou, foi alterando as peças e explicando junto. Compartilha depois o código fonte desse projeto, a visao final, se possível. Parabéns.
@AlexFelipeDev
@AlexFelipeDev 5 ай бұрын
Salve, Giovani! Quando eu faço um mais focado, tento ir por essa linha e fico feliz que curtiu! Essa semana eu subo o código no github e mando aqui na resposta e deixo na descrição tbm! vlw pelo apoio!
@AlexFelipeDev
@AlexFelipeDev 5 ай бұрын
Demorei mas tá aqui o código, Giovani! github.com/alexfelipe/alcool-ou-gasolina/commit/0495eb6edcecc0701c7a5ad44ee8692f7936ccf6
@robertocesartavares9968
@robertocesartavares9968 5 ай бұрын
Ótimo video, Alex! Uma dúvida: em um app de produção, é aceitável "instanciar" o viewmodel no Composable? Não fica muito acoplado, pesado pra fazer o Preview ou pra testes unitários?
@AlexFelipeDev
@AlexFelipeDev 5 ай бұрын
Salve Roberto! Primeiramente, muito obrigado pelo apoio nos membros! 😎 Da maneira como está, não, o ideal é seguir próximo do que é feito na configuração do navigation, neste vídeo mostra como deve ficar incluindo as boas práticas de configuração de navegação kzbin.info/www/bejne/rX3ddoJ6btWSpac Fique à vontade para tirar dúvidas pontuais
@levimendes958
@levimendes958 5 ай бұрын
top
@IchigoML
@IchigoML 5 ай бұрын
Professor, por acaso com essa questão do ViewModel ela se entrelaça com os conceitos de MVVM?
@AlexFelipeDev
@AlexFelipeDev 5 ай бұрын
É exatamente isso, Antonio! Faz parte do processo! A única ausência seria em fazer a conexão com o Model que costuma ser um UseCase ou Repository. Tem vídeo aqui no canal mostrando sobre a conexão com repositórios, seria o de Room!
@stephanieverissimo3985
@stephanieverissimo3985 5 ай бұрын
Video muito bom!! Faz um de paggin 3.0 com o compose ? 🥺
@AlexFelipeDev
@AlexFelipeDev 5 ай бұрын
Oi Sthephanie! Posso considerar, sim!
@antonisgz
@antonisgz 5 ай бұрын
Excelente conteúdo, Alex! Como vc contrói o UIState para tela mais complexas? Por exemplo mantém o estado de loading e error numa mesma data class ou utiliza sealed class para representar cada um?
@AlexFelipeDev
@AlexFelipeDev 5 ай бұрын
Para casos mais complexos eu costumo usar sealed class! Como comentou, estados que precisam ser compartilhados eu deixo como property da classe base, e as coisas exclusivas em cada um das variações do sealed class. Se fizer do jeito 'simples' (apenas declarando o sealed), ele dá muito mais trabalho do que ajuda, pois é meio chato de lidar com o casting... Mas tem técnicas para facilitar isso e talvez eu traga aqui no canal
@antonisgz
@antonisgz 5 ай бұрын
Massa demais, gostaria muito de ver esse conteúdo. Parabéns pelo seu trabalho, te acompanho desde os tempos de Alura e suas aulas fizeram muita diferença pra minha jornada.
Modifier padrão no Jetpack Compose: crie UI mais flexível
24:30
Миллионер | 1 - серия
34:31
Million Show
Рет қаралды 2 МЛН
🍉😋 #shorts
00:24
Денис Кукояка
Рет қаралды 3,5 МЛН
Inside Out 2: BABY JOY VS SHIN SONIC 3
00:19
AnythingAlexia
Рет қаралды 9 МЛН
Шок. Никокадо Авокадо похудел на 110 кг
00:44
Implementado o Skeleton no Android com Jetpack Compose
18:01
Alex Felipe
Рет қаралды 389
PARE de USAR o LIVEDATA! Prefira o Coroutines FLOW
19:00
Alex Felipe
Рет қаралды 806
Should You Use Compose State or StateFlow in Your ViewModels?
13:59
Philipp Lackner
Рет қаралды 78 М.
State holders and state production in the UI Layer
20:53
Android Developers
Рет қаралды 47 М.
Android ViewModel & Configuration Changes Explained - MVVM Component.
15:50
Sealed Classes for UI State are an ANTI-PATTERN - Here's why!
9:53
Philipp Lackner
Рет қаралды 22 М.
Angular vs Flutter vs Android JetPack Compose, por que 3 frameworks?? feat. #GoogleIO
11:40
✅ Crie seu próprio Gerenciamento de Estado no Flutter com Streams!
27:28
Prof. Diego Antunes
Рет қаралды 2,8 М.
Миллионер | 1 - серия
34:31
Million Show
Рет қаралды 2 МЛН