Gerenciamento de estado do Jetpack Compose com UI State e ViewModel

Поділитися
Вставка
  • Опубліковано 24 жов 2024

КОМЕНТАРІ • 43

  • @ThiagoLuizDomacoski
    @ThiagoLuizDomacoski 2 дні тому +1

    Top demais! lembra muito o Bloc do Flutter! Obrigado por compartilhar!

  • @dansilvestrecassiano
    @dansilvestrecassiano 23 дні тому +1

    Conteúdo top, vlw demais tava perdido com a ideia e colocar tudo na viewModel

  • @newtyzito
    @newtyzito 6 місяців тому +3

    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  6 місяців тому +2

      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

  • @AlexSilva-ln2ke
    @AlexSilva-ln2ke Місяць тому +1

    Cr muito bom, gostei muito, sou de web quero migrar, mas muita coisa nova em comparação com web

    • @AlexSilva-ln2ke
      @AlexSilva-ln2ke Місяць тому +1

      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!

  • @leonardoschwedler6825
    @leonardoschwedler6825 6 місяців тому +2

    Perfeito, faz um app ensinando a arquitetura MVVM na pratica seria bom dms

    • @AlexFelipeDev
      @AlexFelipeDev  6 місяців тому

      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 6 місяців тому +2

    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  6 місяців тому

      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  6 місяців тому

      Demorei mas tá aqui o código, Giovani! github.com/alexfelipe/alcool-ou-gasolina/commit/0495eb6edcecc0701c7a5ad44ee8692f7936ccf6

  • @lucassantana2364
    @lucassantana2364 6 місяців тому +2

    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  6 місяців тому +2

      Salve, Lucas! Me parece um tema show! Eu vou considerar sim!

    • @lucassantana2364
      @lucassantana2364 6 місяців тому

      @@AlexFelipeDev massa vou ficar acompanhando pra quando sair kkkkk

    • @AlexFelipeDev
      @AlexFelipeDev  6 місяців тому +1

      @@lucassantana2364 qualquer coisa, vai lá no discord e vamos trocando ideia enquanto não produzo o video

    • @lucassantana2364
      @lucassantana2364 6 місяців тому

      @@AlexFelipeDev Entrando agora kkkk

  • @antonio195br
    @antonio195br 6 місяців тому +1

    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  6 місяців тому +1

      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!

  • @iagoantunes2086
    @iagoantunes2086 6 місяців тому +4

    Esses videos sobre gerenciamento de estado, arquitetura são melhores, o gerenciamento de estado com jetpack é bem mais complicado de entender

  • @marlonncarvalhosa
    @marlonncarvalhosa 2 місяці тому +1

    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 місяці тому +1

      Salve Marlon, tem aqui um exemple de como é feito com requisição HTTP ua-cam.com/video/rEnAbdixC2k/v-deo.html
      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

  • @stephanieverissimo3985
    @stephanieverissimo3985 6 місяців тому +1

    Video muito bom!! Faz um de paggin 3.0 com o compose ? 🥺

    • @AlexFelipeDev
      @AlexFelipeDev  6 місяців тому

      Oi Sthephanie! Posso considerar, sim!

  • @robertocesartavares9968
    @robertocesartavares9968 6 місяців тому +1

    Ó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  6 місяців тому

      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
      ua-cam.com/video/wLzEOD9p_oE/v-deo.html
      Fique à vontade para tirar dúvidas pontuais

  • @yurilima3324
    @yurilima3324 6 місяців тому +1

    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  6 місяців тому +1

      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 6 місяців тому +1

      @@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

  • @antonisgz
    @antonisgz 6 місяців тому +1

    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  6 місяців тому +1

      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 6 місяців тому +1

      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.

  • @koepeh
    @koepeh 6 місяців тому +1

    Jetpack compose + Compose Desktop ou React pra um app Web, Mobile e Desktop?

    • @AlexFelipeDev
      @AlexFelipeDev  6 місяців тому

      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 6 місяців тому

      @@AlexFelipeDev Tem como desenvolver um app React com material design 3?

    • @AlexFelipeDev
      @AlexFelipeDev  6 місяців тому

      @@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

  • @yurilima3324
    @yurilima3324 6 місяців тому

    Professor, uma outra duvida me surgiu. onGasolinaChange e onAlcoolChange poderiam ser implementados na classe AppUiState? Como por exemplo GasolinaEAlcool() ?

    • @AlexFelipeDev
      @AlexFelipeDev  6 місяців тому

      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.

  • @IchigoML
    @IchigoML 6 місяців тому +1

    Professor, por acaso com essa questão do ViewModel ela se entrelaça com os conceitos de MVVM?

    • @AlexFelipeDev
      @AlexFelipeDev  6 місяців тому +1

      É 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!

  • @levimendes958
    @levimendes958 6 місяців тому +1

    top