Eu pessoalmente ja estou bem familiarizado com freezed... uso ele nos meus projectos com clean architecture de boa... Boa aula Jocob... esperando a continuão...
Jacob, você não vê a necessidade de ter um DTO na camada de data pra definir o modelo dos dados/serialização e outro imutável na camada de UI que é o que a tela vai consumir? Em projetos gigantes, pra mim acaba sendo essencial ter essa separação sem isso acabamos levando muito da lógica de serialização pra camada de UI sendo que não é de responsabilidade dela
Excelente conteúdo! Muito didático e fazendo um belo trabalho de fortalecer a comunidade! Parabéns! ... só fiquei curioso porque você disse que tem gente que não gosta do Freezed, qual o 'mal' de usar o freezed?
Fala Jacob! Na Clean Arch é uma alternativa colocar os comportamentos (métodos) dentro das entidades de domínio, mas nem no exemplo do app do Flutter e nem no seu exemplo foi utilizada essa abordagem. Estou falando da Rich Domain Model, que parece não ser o recomendado no Flutter, pelo menos foi isso que pareceu. Seria colocado em uma classe de serviço separada ou poderíamos utilizar o Rich Doain Model sem comprometer o recomendado? O que você pensa sobre isso?
Eu acho valido desde que seja usado com cautela. Nem todos da equipe podem entender esses conceitos, oq tornaria o projeto um sonho pra vc mas um pesadelo pra outros
Uma pergunta do juninho, pq usar Freezed para garantir a imutabilidade, podendo usar a anotação @immutable, a anotação não faria isso?? Ok, temos a vantagem do freezed gerar o copyWith(), alguma outra vantagem?
@@maurojhs9400 o @immutable infelizmente nao obriga, ele causa um warning. Daria pra fazer esse warning ser tratado como erro, mas a ideia do freezed é obrigar logo na construcao da classe direto no seu fluxo.
Muito bom Jacob! Esperando a próxima aula! Como disse em um outro comentário, eu vou ser mais ativo aqui. Então lá vai uma questão: sempre adotei (por conta do Java) o uso de dto imutável. Já aqui no flutter eu vejo muito o uso dele assim, mutável....afinal, por definição, é ou não é mutável? Melhor ainda, existe essa definição ou é dinâmico conforme a necessidade?
Qual a necessidade de ter um NotLoggedUser , se ele nao possui nada de diferente do user, supondo que vamos usar lá nos testes , podemos considerar um usuário deslogado aquele que nao é loggedUser , o usuário padrão . e pelo que entendi voce disse que o freezed , é para evitar o uso de state patter ( caso eu nao tenha entendido errado ) .
Comentário de muita má-fé. Arquitetura é arquitetura em qualquer lugar. Por exemplo, conceitos como imutabilidade de entidade/model é discussão de anos, décadas se duvidar, tecnologias já criaram ferramentas para dar apoio a essa ideia. Inclusive, nativo inteligentão, Data Class para Kt e Struct para Swift. E nem me aprofundo em outros conceitos que foram e deve ser explorados na série. Eu mesmo não acho que flutter é o melhor no mundo mobile, imagine no resto das áreas dev. Mas, critique o flutter em outro lugar, a discussão aqui é arquitetura.
@@fagnerlc07 Não, é pq n vejo muita utilidade desse monte de trambolho no mundo real. Criei aplicativos pro estado de minas gerais usados até hj com uma arquitetura muito mais simples e são muitos milhões de usuários e acessos diários. Parece q vcs tem tesão em escrever código pra parecer difícil kkk, acho meio bobo isso, um monte de nomenclatura sem sentido, "Ah tem colocar o entitie no logger e o adapter no tataanana" kkk acho engraçado demais! kkkk. Tenho 14 anos de desenvolvimento nas costas, já entreguei apps pra muitos milhões de usuários e já fui top 7 do brasil em apps de utilidade sozinho, tudo usando conceitos simples, compactos e funcionais, se eu sou junior, vcs então eu nem sei oq são kkk.
@@brunovercosa7119 O ponto que quis estabelecer ao mencionar o nativo é que o que é explorado no vídeo não está amarrado a nenhuma novidade. Na verdade, está bem longe de ser algo complexo, novo ou distinto do Flutter. Todos os conceitos abordados têm anos de discussão. Por exemplo, conceitos como domínio são explorados em DDD desde o início do século. O uso de freezed para imitar a tendência de várias linguagens, como Kotlin com data class, que já adotam modelos imutáveis, é um exemplo disso. Além disso, DTO é algo básico em qualquer curso de front-end e, principalmente, back-end. É óbvio que, para montar um app de IMC, não é necessário aplicar esses conceitos. Porém, em aplicativos maiores, alguns podem até considerar isso como o mínimo necessário. Quer algo realmente diferente e interessante? Pesquise o caso do Nubank. Eles utilizam componentes renderizados no servidor, uma técnica conhecida no mundo web, mas pouco vista no mobile. Além disso, discutem o uso do ClojureDart, uma forma de usar Flutter com Clojure, uma linguagem funcional que é um dialeto de Lisp, criada na década de 1950.
Dúvidas? Tem um forum específico para a SDF do App Arch no discord da Flutterando.
discord.flutterando.com.br
Jacob sempre fazendo conteúdo top, da para ver que o cara faz o que ama! Parabéns!
essa playlist tá sensacional, fera d+
Muito bom, excelente vídeo. Está colocando bastante carinho nessa série, Jacob. Está ficando excepcional!
Parabéns pela iniciativa, o video chega em boa hora, tendo em vista a recente publicação do Flutter sobre arquitetura
Aulão.
Aula muito boa, aguardando as próximas!!!
Video toop 🎉🎉
Aula muito boa, confesso que senti uma dor no coração quando vi a utilização o freezed, porém entendi sua "necessidade". Esperando o próximo vídeo!
Eu pessoalmente ja estou bem familiarizado com freezed... uso ele nos meus projectos com clean architecture de boa...
Boa aula Jocob... esperando a continuão...
Ótima aula, Jacob! Estou esperando as próximas.
Ótima aula, se lançar dois desses vídeos por dia eu não reclamaria kkkkkk
Se pudesse colocava sim!
@@FlutterandoTV olhada que também estava pensando que nem 'Neflix' tem como assistir tudo em seguida? kkk
Incrível esse lucid validator
que cara bom
Jacob, você não vê a necessidade de ter um DTO na camada de data pra definir o modelo dos dados/serialização e outro imutável na camada de UI que é o que a tela vai consumir?
Em projetos gigantes, pra mim acaba sendo essencial ter essa separação sem isso acabamos levando muito da lógica de serialização pra camada de UI sendo que não é de responsabilidade dela
É um bom ponto, mas você precisa ter um bom motivo para essa separação!
🚀
Excelente conteúdo! Muito didático e fazendo um belo trabalho de fortalecer a comunidade! Parabéns! ... só fiquei curioso porque você disse que tem gente que não gosta do Freezed, qual o 'mal' de usar o freezed?
@@toniprado preconceito com o build_runner
Fala Jacob! Na Clean Arch é uma alternativa colocar os comportamentos (métodos) dentro das entidades de domínio, mas nem no exemplo do app do Flutter e nem no seu exemplo foi utilizada essa abordagem. Estou falando da Rich Domain Model, que parece não ser o recomendado no Flutter, pelo menos foi isso que pareceu. Seria colocado em uma classe de serviço separada ou poderíamos utilizar o Rich Doain Model sem comprometer o recomendado? O que você pensa sobre isso?
Eu acho valido desde que seja usado com cautela. Nem todos da equipe podem entender esses conceitos, oq tornaria o projeto um sonho pra vc mas um pesadelo pra outros
Ótima aula 😁 por enquanto estou entendendo kkkkkkkk
O Remi ficou orgulhoso 👏🏽
Agora só falta um vídeo do riverpod 😂😅
fazer oq...
Uma pergunta do juninho, pq usar Freezed para garantir a imutabilidade, podendo usar a anotação @immutable, a anotação não faria isso?? Ok, temos a vantagem do freezed gerar o copyWith(), alguma outra vantagem?
@@maurojhs9400 o @immutable infelizmente nao obriga, ele causa um warning. Daria pra fazer esse warning ser tratado como erro, mas a ideia do freezed é obrigar logo na construcao da classe direto no seu fluxo.
Good❤❤❤
Jacob, mas no caso do store do mobx ainda assim ele ficaria entre o controller e a Model que no caso tu representou como entidade?
Nesse caso, o MobX consumiria o Repository que traria a entidade.
Muito bom Jacob! Esperando a próxima aula! Como disse em um outro comentário, eu vou ser mais ativo aqui. Então lá vai uma questão: sempre adotei (por conta do Java) o uso de dto imutável. Já aqui no flutter eu vejo muito o uso dele assim, mutável....afinal, por definição, é ou não é mutável? Melhor ainda, existe essa definição ou é dinâmico conforme a necessidade?
Total dinamismo.
@@FlutterandoTV show! Imaginei rs
Nossa! Muito estranho pra mim usar esse padrão nos enfeites. É novo pra mim e achei mó bacana. Sinto que as próximas aulas serão do balacobaco >.
Qual a necessidade de ter um NotLoggedUser , se ele nao possui nada de diferente do user, supondo que vamos usar lá nos testes , podemos considerar um usuário deslogado aquele que nao é loggedUser , o usuário padrão . e pelo que entendi voce disse que o freezed , é para evitar o uso de state patter ( caso eu nao tenha entendido errado ) .
As Unions acabam funcionando como State pattern. O NotLoggedUser server apenas para deixar mais descritivo.
desculpe minha ignorância, mas qual a diferança de entity e model?
Acredito que não tenha diferença, eu só acredito que Entity é mais declarativo.
up
Build runer naaaaaooo pelamordedeua
Nem doeu tanto assim
Num era mais facil criar fromJson e to Json na mao? Mds
Era, mas como estamos usando o Freezed, já aproveita logo. O que é um peido pra quem ta todo cagado?
Nossa, flutter precisa de 6 meses pra fazer um hello world. Pior q isso nem gera nativo, gera um cosplay de ios e material design :(
O Intuito não é mostrar o funcionamento do Framework, mas melhorar o código Dart. Dê uma olhada no primeiro vídeo.
Comentário de muita má-fé. Arquitetura é arquitetura em qualquer lugar. Por exemplo, conceitos como imutabilidade de entidade/model é discussão de anos, décadas se duvidar, tecnologias já criaram ferramentas para dar apoio a essa ideia. Inclusive, nativo inteligentão, Data Class para Kt e Struct para Swift. E nem me aprofundo em outros conceitos que foram e deve ser explorados na série.
Eu mesmo não acho que flutter é o melhor no mundo mobile, imagine no resto das áreas dev. Mas, critique o flutter em outro lugar, a discussão aqui é arquitetura.
Não se pode esperar o mesmo nível de experiência em comentários de estagiários, trainees ou juniores.
@@fagnerlc07 Não, é pq n vejo muita utilidade desse monte de trambolho no mundo real. Criei aplicativos pro estado de minas gerais usados até hj com uma arquitetura muito mais simples e são muitos milhões de usuários e acessos diários. Parece q vcs tem tesão em escrever código pra parecer difícil kkk, acho meio bobo isso, um monte de nomenclatura sem sentido, "Ah tem colocar o entitie no logger e o adapter no tataanana" kkk acho engraçado demais! kkkk. Tenho 14 anos de desenvolvimento nas costas, já entreguei apps pra muitos milhões de usuários e já fui top 7 do brasil em apps de utilidade sozinho, tudo usando conceitos simples, compactos e funcionais, se eu sou junior, vcs então eu nem sei oq são kkk.
@@brunovercosa7119 O ponto que quis estabelecer ao mencionar o nativo é que o que é explorado no vídeo não está amarrado a nenhuma novidade. Na verdade, está bem longe de ser algo complexo, novo ou distinto do Flutter.
Todos os conceitos abordados têm anos de discussão. Por exemplo, conceitos como domínio são explorados em DDD desde o início do século. O uso de freezed para imitar a tendência de várias linguagens, como Kotlin com data class, que já adotam modelos imutáveis, é um exemplo disso. Além disso, DTO é algo básico em qualquer curso de front-end e, principalmente, back-end.
É óbvio que, para montar um app de IMC, não é necessário aplicar esses conceitos. Porém, em aplicativos maiores, alguns podem até considerar isso como o mínimo necessário.
Quer algo realmente diferente e interessante? Pesquise o caso do Nubank. Eles utilizam componentes renderizados no servidor, uma técnica conhecida no mundo web, mas pouco vista no mobile. Além disso, discutem o uso do ClojureDart, uma forma de usar Flutter com Clojure, uma linguagem funcional que é um dialeto de Lisp, criada na década de 1950.
up