Flutter MobX #7 - O começo do fim (ObservableList)

Поделиться
HTML-код
  • Опубликовано: 26 окт 2024

Комментарии • 73

  • @TadeuCarnevalli
    @TadeuCarnevalli 4 года назад +1

    Excelente, muito bom o vídeo. Já estou trabalhando com o MobX, mas com os vídeos da Flutterando sempre surgem novas possibilidades.

  • @o_Gui_Oliveira
    @o_Gui_Oliveira 4 года назад

    Muito obrigado por compartilhar esses conhecimentos! Está ajudando muito!

  • @timetraveler7893
    @timetraveler7893 4 года назад

    ótimas aulas e didática bacana, flutterando é demais !

  • @carloshendrikoliveir
    @carloshendrikoliveir 4 года назад

    Muito fácil de usar este controle de estado...parabéns pela didática.

  • @wesleygamedev
    @wesleygamedev 4 года назад

    boa jacob, ideia muito boa da lista. precisei reforçar esse conhecimento agora e já to dando uma olhada.

  • @SuperMukthar
    @SuperMukthar 4 года назад +3

    Tragam 2 troféus para esse mito, 1 por que ele merece e 2 caso ele perca o primeiro. Cara ta incrível isso.Jacob arrisco a dizer que isso ta parecendo Angular pra mim, o controller e o typescript interagindo com a view. BOM D+

  • @JoaoVictorPereiraSantos
    @JoaoVictorPereiraSantos 4 года назад +1

    Muito bom, eu tava com o mesmo problema da List que não estava atualizando, dai vim pra cá pra tirar a dúvida kkkkkk show de bola

  • @pedropeterle6380
    @pedropeterle6380 4 года назад +2

    Uma sugestao, em cada aula coloca os codigos iniciais e finais, fica bem mais facil de acompanhar dps, obrigado!

  • @carlosroseno6015
    @carlosroseno6015 4 года назад

    Muito Show. Meta para fevereiro. Começar a aprender o Flutter. Espero entender bem esse trem pra fazer um App pra mim.

  • @gustavomenezes2768
    @gustavomenezes2768 4 года назад +2

    Essa série está demais! mais aguardada que GOT a época.. rsrsrsrr

  • @joaoshel1902
    @joaoshel1902 3 года назад

    Justamente o que estava procurando!! Obrigado!!! Caso a lista venha de um DAO de um BD local , como SQLITE, ao salvar, alterar ou excluir, é inevitável fazer a consulta novamente certo?

  • @jeieldantas2926
    @jeieldantas2926 4 года назад

    Show de bola!

  • @munhozzzz333333
    @munhozzzz333333 4 года назад +8

    não sei se pego minha pizza ou espero a aula kkkk

  • @Nom4d3
    @Nom4d3 4 года назад

    Parabéns pela série! Passo a passo e bem explicada. Minha única sugestão seria remover o item da lista usando o index e nao o model. Pois do jeito que vc colocou, se tiver 2 itens com o mesmo title vai remover os 2. Mas obviamente isso é detalhe. Só sugestão mesmo :)

  • @yuriboeira4048
    @yuriboeira4048 4 года назад

    tu não sabe o quanto isso foi uma peça chave pro meu projeto, obrigado novamente Jacob ♥️

  • @netd777
    @netd777 4 года назад +2

    Pra deixar mais interessante seria legar deixar essa lista animada com AnimatedList e reactions do MobX

  • @BwolfDev
    @BwolfDev 4 года назад +3

    Melhor video

  • @alexferrazoliver
    @alexferrazoliver 4 года назад

    Show dmais, querendo começar no flutter em breve

  • @wandersonkd
    @wandersonkd 4 года назад

    show de bola muito bom

  • @Marcos-tz6fy
    @Marcos-tz6fy 4 года назад

    Olá Devs! Coloquei o código dessas aulas no github, passa lá pra conferir: github.com/MARCOSM-MARTINS/mobx_examples

  • @NicolauArbex
    @NicolauArbex 4 года назад

    Como eu faço pra que ObservableList tenha os dados vindos da API Rest?
    ObservableList listItems = [
    ItemModel(title: 'Item 1', check: true),
    ItemModel(title: 'Item 2', check: false),
    ItemModel(title: 'Item 3', check: false),
    ].asObservable();
    e ao invés do total de checks, como faria para retornar as ID's dos itens selecionados?
    @computed
    int get totalChecked => listItems.where((item) => item.check).length;

  • @jocelinopereira5338
    @jocelinopereira5338 4 года назад

    Eita Jacob era o que eu precisava, vou até mijar antes de assistir esse vídeo

  • @cruzcunha
    @cruzcunha 4 года назад

    Qual é o plugin do VSCode que vocês estão usando?

  • @maxhenry4691
    @maxhenry4691 4 года назад

    Olá, Jacob !! Me tornei seu aluno no Curso de lógica de programação com Dart no site Balta.io e gostei muito de sua didática naquele curso e acabei por segui-lo aqui no RUclips e lá no Flutterando.
    Cara, vejo a forma como voce consegue trabalhar de forma fluida com o VSCode e o emulador do Android Studio e fico curioso para saber qual a configuração de seu equipamento. Quero, muito, aprender e entender mais de Dart e Flutter mas meu Acer com Core i3 de 2ª geração e 6GB de RAM não estão me ajudando... só para carregar o emulador tenho que esperar mais de 10 minutos e, mesmo assim, dá muito pau na tela do emulador.
    Abraços e até a próxima !!!

    • @FlutterandoTV
      @FlutterandoTV  4 года назад +1

      i3 nona geração, Rx 570, 16gb de ram.
      Acredito q ram seja necessária para rodar o Emulador do android

    • @TadeuCarnevalli
      @TadeuCarnevalli 4 года назад +1

      O Flutter Web beneficia muito quem tem hardware mais antigo, pois dá para trabalhar no desenvolvimento com a versão web e só testar no emulador de vez em quando. Nem sempre dá para desenvolver só com o Web, depende da compatibilidade dos packages que você utiliza, mas para aprendizado é muito bom.

    • @maxhenry4691
      @maxhenry4691 4 года назад

      @@FlutterandoTV Tá explicado... não somente vc tem um CPU mais avançado como a GPU é melhor que a do meu notebook (o meu é um HD Graphics 3000 (integrado)) e, quanto a RAM, acho que acrescentar mais uns 4 GB não vai resolver meu problema...

  • @BernardoVerasDev
    @BernardoVerasDev 4 года назад

    Estou amando o Mobx!

  • @munozhoracio
    @munozhoracio 4 года назад

    muy bueno!!!
    Consulta, el evento de check podria haber sido un @action?
    Este ejemplo estaria genial con un servicio rest para entender como se relaciona con un Repository

  • @jrguedes
    @jrguedes 4 года назад

    Cara.. parece que pensaram em tudo.. esse ObservableList, ..Map ..Stream ...Future e asObservable vai quebrar um galho na hora da migracao

  • @harleyitalo
    @harleyitalo 4 года назад +1

    Ai sim!!!

  • @RicardoLuizPinto
    @RicardoLuizPinto 4 года назад

    Muito bom o MobX. Jacob, me dá a impressão que existe violação do MVC quando eu executo códigos na "view" que seria o home_page.dart. Eu venho do mundo ExtJS e lá eu desenho as telas via código, mas nada faço na view. Seria do controller que buscaria os widgets e vincularia a reatividade. Minha impressão de violação de MVC está correta, ou funciona assim mesmo no Flutter, sem problema em se trabalhar muito na view com regra de negócio? Outro ponto é na view, além das regras de negócio que estão lá, sou eu acessar métodos diretamente do Model, sem usar o Controller para mediar isso. Na minha mente, eu precisaria invocar o Controller e o Controller fazer o que precisa com o Model. Como disse, estou mudando minha mente e o vício do trabalho até então é terrível... rs

    • @FlutterandoTV
      @FlutterandoTV  4 года назад +1

      Vc está certo.
      Mas aqui no Flutter trabalhamos de forma mais declarativa, então somos obrigados a pensar de outra forma. (Um dos motivos de nao citar MVC pq sei q n chega nisso).
      Outro motivo é que estamos estudando o Gerenciador de Estado, entao estou passando por cima de muita coisa para as aulas ficarem simples.

    • @RicardoLuizPinto
      @RicardoLuizPinto 4 года назад

      @@FlutterandoTV muito obrigado pelo esclarecimento. E para finalizar e aproveitando, ao invés de, por exemplo, em um button eu declarar o onPressed (ou um Text eu declarar o onChanged), eu, no Controller, declarar que determinado button em seu onPressed deve fazer tal e tal coisa? Não fazer isso na declaração do widget, mas no controller vincular um método a um evento do widget (pergunta mais de curiosidade mesmo)

    • @FlutterandoTV
      @FlutterandoTV  4 года назад

      @@RicardoLuizPinto Geralmente eu tento colocar toda regra de negocio em um outro arquivo, o que apelido de controller, ou BLoC

    • @RicardoLuizPinto
      @RicardoLuizPinto 4 года назад

      @@FlutterandoTV E qual seria o comando para, de dentro de um Controller, eu pegar um widget e atribuir a um evento deste widget (onPressed por exemplo) uma função?

  • @isacmartins3957
    @isacmartins3957 4 года назад

    Estou ansioso por essa aula

  • @heberdepadua7577
    @heberdepadua7577 4 года назад

    Uma coisa que eu usava no bloc era o envio do erro de requisição na própria stream. E tratava o erro no streambuilder. Acho que não tem algo equivalente no MobX

    • @FlutterandoTV
      @FlutterandoTV  4 года назад

      Vc pode trabalhar com ObservableStream tb. Mas tb vc pode ter um Objeto que simule o snapshot totalmente se quiser, ai vai da sua implementação.

    • @TadeuCarnevalli
      @TadeuCarnevalli 4 года назад +1

      Uma opção com o MobX é você criar um enum de estados e um deles ser o estado de erro. Aí no Observer você monitora esse estado como se fosse o snapshot do StreamBuilder.

  • @levivieira4854
    @levivieira4854 4 года назад

    0:04, "Maior canal de flutter do Brasil... TECK" kkkkkk

  • @maper77
    @maper77 4 года назад +1

    Ótimo vídeo!!! Obrigado
    PS: tenta falar menos "beleza?"... Senão parece que estou vendo vídeo de React Native. Kkkkk

  • @adrianodev2224
    @adrianodev2224 4 года назад

    Mito

  • @danielwaiter9990
    @danielwaiter9990 2 года назад

    Alguem tem o template inicial desse codigo para eu ir acompanhando as aulas ??? No caso, só o codigo do Layout !!!!!!!!!! Obrigado !!!!!!!!!!!

  • @PeCabraal
    @PeCabraal 3 года назад

    E como faria para editar essa lista usando o mobx?

  • @bianchieduardo
    @bianchieduardo 4 года назад

    Como eu crio um construtor no controller ?

  • @HudsonAfonso
    @HudsonAfonso 4 года назад

    ai sim, video com mais de 10 min

  • @CaioCesarDev
    @CaioCesarDev 4 года назад

    Muito bom!!!

  • @lucaspaz6016
    @lucaspaz6016 4 года назад

    Bom demais!!

  • @joaorodrigues5881
    @joaorodrigues5881 4 года назад

    Observer(
    builder: (_) => ListView.builder(
    shrinkWrap: true,
    itemCount: globals.classesStore.classes.length,
    itemBuilder: (_, int index) {
    return ClassItem();
    },
    ),
    );
    Com List tudo bem.
    Depois de alterar para ObservableList obtenho o seguinte erro:
    flutter: type 'List' is not a subtype of type 'ObservableList' of 'function result'
    Alguma ideia?

    • @joaorodrigues5881
      @joaorodrigues5881 4 года назад

      Already working. Don't really know what was. Killed the process and run it again and its working now. Cheers!

  • @fabiojansen4286
    @fabiojansen4286 4 года назад

    @fluterrando não entendi muito bem essa questão de "modelo reativo" Eu deveria usar na app só um modelo reativo ou além do modelo reativo, também usar um modelo? Caso sim, como ficaria ? vlw

    • @FlutterandoTV
      @FlutterandoTV  4 года назад

      Nao, vc pode usar qualquer conceito, nesse que apresento, ao trocar uma variavel do modelo ele altera o estado, por isso modelo reativo

  • @henriquelopeslima
    @henriquelopeslima 4 года назад +1

    Opa! Obrigado pelo material
    Um questionamento quando eu modifiquei e deixei assim "ObservableList listItems = [].asObservable();". Eu apenas coloquei como uma lista vazia e deu um erro alguem sabe pq?
    O erro
    type ''ObservableList' is not a subtype of type ''ObservableList' See also: glutter.dev/docs/testing/errors

    • @effX11
      @effX11 4 года назад +1

      não tem a função asObservable na versão que eu estou usando do MobX, ( acredito ser a ultima ), e agora ?

    • @ocodista
      @ocodista 4 года назад +1

      Mesmo erro aqui, alguém sabe como resolver?

  • @evandrobarbosadosreis
    @evandrobarbosadosreis 4 года назад +1

    OK! Você venceu!
    MobX > Bloc

  • @pedroaraujo2978
    @pedroaraujo2978 4 года назад

    Fala Jacob, tudo bom?
    Poderia me passar o código do snippet que você usa pra gerar o Observe(), você gerou em 13:14

    • @FlutterandoTV
      @FlutterandoTV  4 года назад +1

      No vccode baixe a extensão flutter_mobx

    • @pedroaraujo2978
      @pedroaraujo2978 4 года назад

      @@FlutterandoTV você é um fi da pé bom mesmo! Criei um tópico de suporte no fórum da flutterando, se puder dar uma atenção lá, agradeço, obrigadoooo!

  • @ggbzrr
    @ggbzrr 4 года назад

    build_runner parou, não gera mais o .g, o que fazer?

    • @ggbzrr
      @ggbzrr 4 года назад

      C:\wsFlutter\buildrunnermaldito>flutter pub run build_runner build
      [INFO] Generating build script...
      [INFO] Generating build script completed, took 570ms
      [INFO] Creating build script snapshot......
      [INFO] Creating build script snapshot... completed, took 20.8s
      [SEVERE] Nothing can be built, yet a build was requested.
      [INFO] Initializing inputs
      [INFO] Building new asset graph...
      [INFO] Building new asset graph completed, took 1.3s
      [INFO] Checking for unexpected pre-existing outputs....
      [INFO] Checking for unexpected pre-existing outputs. completed, took 3ms
      [INFO] Running build...
      [INFO] Running build completed, took 6ms
      [INFO] Caching finalized dependency graph...
      [INFO] Caching finalized dependency graph completed, took 122ms
      [INFO] Succeeded after 145ms with 0 outputs (0 actions)

    • @FlutterandoTV
      @FlutterandoTV  4 года назад +1

      Gabriel Bezerra Build_runner clean

    • @HigorArmani
      @HigorArmani 4 года назад

      @@ggbzrr
      dev_dependencies:
      build_runner:
      mobx_codegen:

  • @harleyitalo
    @harleyitalo 4 года назад

    Jacob,o que mais vale a pena no quesito performance? Passar raiva com o bloc, ou migrar o app para o mobx ?

    • @FlutterandoTV
      @FlutterandoTV  4 года назад +1

      MobX nao perder nada em peformance, pelo contrário. Por isso que ele gera aqueles códigos automáticos. Aquilo lá tb gerencia melhor os eventos no seu app.

    • @harleyitalo
      @harleyitalo 4 года назад

      acho que não fiz a pergunta certa eu pergunto em relação a memoria RAM

  • @d-apps2699
    @d-apps2699 4 года назад +2

    source code please ;)