Kotlin Coroutines: Criando um Projeto Android do Zero Com a Arquitetura MVVM e LiveData

แชร์
ฝัง
  • เผยแพร่เมื่อ 22 ต.ค. 2024

ความคิดเห็น • 71

  • @DouglasMotta
    @DouglasMotta  4 ปีที่แล้ว +14

    CAMP - Curso Android Moderno e Profissional: bit.ly/3HQ18jw

    • @joaoboscojunior
      @joaoboscojunior 3 ปีที่แล้ว

      Fala Mestre....... gostaria de saber se voce tem um curso que aborta aquitetura MVVM, LiveData, Testes, etc. um curso que fale a fundo destes temas ?????, obrigado.............

    • @DouglasMotta
      @DouglasMotta  2 ปีที่แล้ว

      @@joaoboscojunior Agora temos: bit.ly/3HQ18jw

  • @RenatoSousaRS
    @RenatoSousaRS 4 ปีที่แล้ว +40

    Seria legal vc incrementar esse projeto utilizando retrofit e room e fazer testes unitários.

  • @junior16225
    @junior16225 ปีที่แล้ว

    Cara, simplemente foda! Falou do detalhes que não vi em outros vídeos sobre o assunto. Parabéns!

    • @DouglasMotta
      @DouglasMotta  ปีที่แล้ว

      Show, obrigado pelo feedback.

  • @natamarques6448
    @natamarques6448 3 ปีที่แล้ว

    Sou seu fã Douglas kkkk. Seus vídeos economizam muito nosso tempo lendo a documentação.

  • @YgorDoring
    @YgorDoring ปีที่แล้ว

    Caraca Doug, seu canal é F0D4 demais. Estou compartilhando com vários amigos e no meu linkedin para tentar compensar todo o conhecimento que você entrega gratuitamente para nós. Mais uma vez, quando der, comprarei seu curso

    • @DouglasMotta
      @DouglasMotta  ปีที่แล้ว

      Fala Ygor! Que isso, muito obrigado pelo feedback e pela força. Tranquilo, tamo junto mano. Valeu demais.

  • @YgorDoring
    @YgorDoring ปีที่แล้ว

    Muito bom, assim que tiver a oportunidade comprarei seu curso

  • @BrunoTube123
    @BrunoTube123 4 ปีที่แล้ว +2

    Sem sombra de dúvida a melhor explicação sobre coroutines que encontrei ate agora, obrigado por compartilhar seus conhecimentos!

    • @DouglasMotta
      @DouglasMotta  4 ปีที่แล้ว

      Fala Bruno!
      Que legal que gostou da explicação. Espero que esteja aprendendo.
      Um abraço.

  • @denisgoncalves7385
    @denisgoncalves7385 2 ปีที่แล้ว

    Excelente conteudo tudo muito bem explicado de forma clara e simples, parabéns pelo canal !!

  • @luizcox1
    @luizcox1 3 ปีที่แล้ว +3

    Que didática impecável,meus parabéns!

  • @DeyvsonAguiar
    @DeyvsonAguiar 3 ปีที่แล้ว

    Que top... muito obrigado as dicas... eu fiz um bootcampo e vi por cima esse assunto, você explica muito bem. Anotei tudo. Valeu Douglas!!!

  • @maurozem
    @maurozem 4 ปีที่แล้ว +6

    oi Douglas. Parabéns pelo video, excelente.
    Muito conteúdo em menos de 25 minutos.
    Sempre recomendo seus videos onde trabalho.
    Como sugestão, um tema que pega demais, já comentado aqui, são os testes.
    Mockito, Mockk e expresso por exemplo.
    Novamente, parabéns e muito obrigado.

    • @DouglasMotta
      @DouglasMotta  4 ปีที่แล้ว +3

      Olá Mauro,
      Muito obrigado ao comentário e pela sugestão. Tem dois ou três vídeos no canal onde falo sobre testes, mas vou preparar mais conteúdos relacionados.
      Que legal que você recomenda meus vídeos no seu trabalho, fico muito feliz por saber disso.
      Um abraço.

  • @camarada4853
    @camarada4853 3 ปีที่แล้ว

    Eu que sou bem novato em Kotlin consegui entender bem o processo de Coroutines, parabéns e obrigado pela explicação.

  • @douglasandrade5199
    @douglasandrade5199 4 ปีที่แล้ว

    Gostei bastante, legal também acelerar a inserção de código na aula, ou também detalhado( abordagem fica mais fácil começando com o kotlin ), acredito com a explicação supre o fluxo, duvidas são sanadas revendo a aula, testes deve ser visto separado em outra aula a parte, tanto de uma quanto outro, facilita. Parabéns Douglas!

  • @RicardoSousa25
    @RicardoSousa25 4 ปีที่แล้ว

    Show de bola Douglas. Com ctz, este conteúdo introdutório ajuda demais a dar um start em Coroutines. Obrigado pelo conteúdo.

  • @edusantino6317
    @edusantino6317 3 ปีที่แล้ว

    Cara esse conteúdo é ouro!
    Sem palavras para agradecer!

  • @RenatoSousaRS
    @RenatoSousaRS 4 ปีที่แล้ว +2

    Parabéns cara muito bom seu conteúdo!

  • @eulerjbezerra
    @eulerjbezerra 3 ปีที่แล้ว

    Excelente explicação, já virei fã.
    Parabéns!

  • @CodeWithGois
    @CodeWithGois 3 ปีที่แล้ว

    Muito booom!!! Conteúdo de ótima qualidade, ótima aula, dá pra aprender sem nenhum problemas. Simplesmente incrível!!

  • @DaanMeendesfs
    @DaanMeendesfs 3 ปีที่แล้ว

    Muito bom o conteúdo. Parabéns!

  • @robsonpaulo6223
    @robsonpaulo6223 4 ปีที่แล้ว

    Amo os vídeos desse canal. Seria legal um vídeo ensinando a escrever testes também.

    • @DouglasMotta
      @DouglasMotta  4 ปีที่แล้ว

      Valeu, Robson.
      Dá uma olhada nesse vídeo:
      th-cam.com/video/lIN4rgeUzQc/w-d-xo.html
      Um abraço.

    • @robsonpaulo6223
      @robsonpaulo6223 4 ปีที่แล้ว

      @@DouglasMotta achei, muito obrigado.
      Força aí 💪 tô de olho no canal.

  • @allysonjd
    @allysonjd 3 ปีที่แล้ว

    Parabéns pelo conteúdo. Didática super clara.

  • @irineu333
    @irineu333 3 ปีที่แล้ว

    Mano, muito top seus vídeos

  • @maykmenezes4142
    @maykmenezes4142 4 ปีที่แล้ว

    Douglas, show de bola seu trabalho cara, parabéns!

    • @DouglasMotta
      @DouglasMotta  4 ปีที่แล้ว

      Olá Mayk, valeu demais pela confiança.
      Um abraço :)

  • @gilmarcossantos3951
    @gilmarcossantos3951 ปีที่แล้ว

    Muito bom!

  • @thiagonune1435
    @thiagonune1435 3 ปีที่แล้ว

    Parabéns pela aula, conteúdo muito bem explicado, Obrigado!

  • @victormagosso2572
    @victormagosso2572 3 ปีที่แล้ว +1

    Excelente vídeo! Estou estudando Android com MVVM e sempre uso seus vídeos como referência.
    Aliás, surgiu uma dúvida que fui procurar em outros lugares e não encontrei: Qual a diferença entre Dispatchers.Default e .Main? Quando uso um ou outro?
    Valeeeeu! Abs

    • @DouglasMotta
      @DouglasMotta  3 ปีที่แล้ว +3

      Olá Victor. Default é uma thread que roda em background e main é a thread especial do Android que não pode ser bloqueada e fica escutando os eventos do usuário e mantendo o aplicativo executando. Trabalhos pesados devem ser feitos em threads de background, trabalhos leves e de UI devem executar na main.
      Abraços.

  • @robsonsilv4.
    @robsonsilv4. 4 ปีที่แล้ว +2

    Vídeo sensacional Douglas! Coroutines é muito importante pra todo dev Android e Kotlin.
    Tem como gravar algo relacionado ao Jetpack Composose e também sua opinião sobre?

    • @DouglasMotta
      @DouglasMotta  4 ปีที่แล้ว +4

      Olá Robson!
      Sim, Coroutines é uma feature muito útil para aplicações Android desenvolvidas com Kotlin.
      Obrigado pela sugestão. Em breve divulgarei o conteúdo e minha opinião sobre o Jetpack Compose.
      Um abraço.

  • @roandersonfelipedesouzapin9088
    @roandersonfelipedesouzapin9088 4 ปีที่แล้ว +1

    Boa tarde! Seria legal também usar clean architecture.

  • @giovanegarcezdarosa5390
    @giovanegarcezdarosa5390 4 ปีที่แล้ว

    Excelente vídeo. Conteúdo muito bem explicado!

    • @DouglasMotta
      @DouglasMotta  4 ปีที่แล้ว

      Olá Giovane!
      Valeu pelo feedback.

  • @22g2g2g
    @22g2g2g 4 ปีที่แล้ว

    Show de bola a dica Douglas' mas como que faz esse sistema usando Firebase auth e firestore

  • @claudioandroidjavamecatron6714
    @claudioandroidjavamecatron6714 4 ปีที่แล้ว

    muito show cara

  • @samuel8mile
    @samuel8mile 4 ปีที่แล้ว

    Muito bom!! Quando implementei no meu código de exemplo aqui, deu esse crash "java.lang.IllegalArgumentException: Unable to create call adapter", por causa do meu tipo específico de objeto de retorno acho. Tem como criar esse adapter do retrofit de forma simples no kotlin?

  • @rafael36326
    @rafael36326 4 ปีที่แล้ว +1

    EU uso Room e Retrofit com Recyclerview

  • @RafaelKowal
    @RafaelKowal 4 ปีที่แล้ว +1

    Gostaria de ver um projeto com Retrofit, Mochi e Room Database

  • @brenocarvalho2524
    @brenocarvalho2524 3 ปีที่แล้ว

    Parabens Douglas conteudo muito bom. Mas nesse contexto de utilizar o Coroutines como eu faria para tratar uma resposta de erro, ou até mesmo diferente de succesfull?

    • @DouglasMotta
      @DouglasMotta  3 ปีที่แล้ว +1

      Olá Breno!
      Coroutines é uma funcionalidade da própria linguagem Kotlin, sendo assim, você trata os erros utilizando o try/catch. Na exceção do catch você consegue verificar o tipo de exceção para mostrar alguma mensagem expecífica no seu app.
      Um abraço.

    • @brenocarvalho2524
      @brenocarvalho2524 3 ปีที่แล้ว

      @@DouglasMotta Show de bola! Voce recomenda utilizar isso em apps de produção? (Eu falo isso por ser uma biblioteca e as vezes mudar alguma coisa e acabar quebrando nossa aplicação)

    • @DouglasMotta
      @DouglasMotta  3 ปีที่แล้ว

      Sim, já pode ser utilizado em produção.

  • @vitor0321
    @vitor0321 3 ปีที่แล้ว

    Fantastic...

  • @joaopaulosantarita1170
    @joaopaulosantarita1170 3 ปีที่แล้ว

    Show, como faria pra colocar uma lista com 100 filmes ?
    Parabéns pela aula

    • @DouglasMotta
      @DouglasMotta  3 ปีที่แล้ว

      Olá João!
      O ideal seria usar a lib do Paging do Jetpack para permitir paginação, para otimização do uso de memória.
      Abraço.

  • @felipepereira3061
    @felipepereira3061 4 ปีที่แล้ว

    Olá Douglas tudo bem? Poderia por favor fazer uma demonstração de retrofit com coroutines? Eu simplesmente não estou conseguindo implementar essa "seção" da arquitetura com sucesso, e isso está me consumindo..

    • @DouglasMotta
      @DouglasMotta  4 ปีที่แล้ว +1

      Olá Felipe, obrigado pela sugestão.
      Já estou preparando um conteúdo sobre isso.
      Um abraço.

  • @rafael36326
    @rafael36326 4 ปีที่แล้ว

    Tá devendo em um projeto com retrofit e outro projeto com retrofit e Room usando coroutines

  • @clerdsonjuca3823
    @clerdsonjuca3823 4 ปีที่แล้ว

    mais aulas porfavor

  • @rafael36326
    @rafael36326 4 ปีที่แล้ว

    Opa mano poderia criar uma playlist ensinando varias coisas separadas e depois juntas tipo nesse video ensina usando LiveData com Arquitetura MVVM, algumas parte em entendi mais como poderia implementar esse ai usando recyclerview poderia fazer uma parte dois
    usando recyclerview, depois parte 3
    usando injecao, e depois
    usando jetcompose, um projeto assim cada video mostrando passa a passo,
    pois gosto e apoio muito teu canal assisto e recomendo mais infelizmente uma reclamacao construtiva
    Se voce ver os canais que crescem rapido eles tem projetos do zero ensinando por partes eu vi que voce tem um video Android MVVM inclusive muito bom mais senti falta de algumas coisas
    ou voce deveria explicar a diferenca de tal coisa para tal coisa pq usar databinding aqui ou ali
    Pois quero aprender MVVM mais continuo perdido sobre isso como entender os models para usar databing, usar com recycler sem recycler vc ja tem esse video, como usar com room, como usar sem room, e usar retrofit ( que mas dificil videos assim) com room sem room,
    Eu programo a um bom tempo mais sem estruturas jogo tudo na mainAcitivity e pronto
    HA e to esperando teu curso da enquente que voce fez para eu pegar uma direcao de apps assim bem estruturados

    • @DouglasMotta
      @DouglasMotta  4 ปีที่แล้ว +1

      Obrigado pela sugestão, Rafael.
      Valeu pela ideia :)

  • @rafael36326
    @rafael36326 4 ปีที่แล้ว

    MUITO SHOOOOOOOOOOOW MAIS estou com um problema se voce puder ajudar eu preciso assim no app da empresa funcione offline e online vou te dar um exemplo do que preciso apps de curso como alura,udemy e etc
    exemplo imagina Udemy ao clicar em um video ele baixa os dados e os nao clicar ele nao baixa so que preciso mostrar na tela os dois ao mesmo tempo tanto o que baixo em modo offline e online e caso perca a conexao continue a mostrar os que baixei
    nao sei o que fazer recomendaram usar o repository pattern pelo que vi no video seria algo disso mais como usuario o Room a
    hoje meu app funciona o Online e Offline so que para mostrar os offline eu preciso perder a conexao (desligar internet ) e sair e entrar no app ai ele mostra os apps conectados caso perca a conexao e nao fecha o app ele nao mostra os offline

    • @DouglasMotta
      @DouglasMotta  4 ปีที่แล้ว +1

      Olá Rafael,
      Depois vou preparar um conteúdo sobre isso, de fato existe o repository pattern justamente para essa ocasião, se quiser ir pesquisando como ele funciona. Enquanto isso eu preparo algum assunto sobre ele.
      Um abraço.

    • @rafael36326
      @rafael36326 4 ปีที่แล้ว

      @@DouglasMotta não tem mano nenhum vídeo assim já procurei algo explicando não tem

  • @irineu333
    @irineu333 3 ปีที่แล้ว

    7:32 qual a diferença de value e postValue()?

    • @irineu333
      @irineu333 3 ปีที่แล้ว

      14:32 respondido kk

  • @rafael36326
    @rafael36326 4 ปีที่แล้ว

    Tenho outro problema no app eu uso 3 tabs se eu for da Tab 1 para a Tab 3 a Tab 1 zera a view de novo e se tiver com internet eu vou ter que fazer a conexao toda de novo

  • @eduardobastosdesa5570
    @eduardobastosdesa5570 4 ปีที่แล้ว +1

    Como faço para inserir uma progress bar, enquanto espero a resposta

    • @luis-henriquedev
      @luis-henriquedev 3 ปีที่แล้ว

      Cara, você pode por pra iniciar o progressBar no início da chamada e encerrar ele no fim, já que o código roda de uma maneira sequencial.