Olá seja muito bem vindo a mais um vídeo do canal da coder é ontem chegou minha máquina de cortar cabelo minha esposa foi fazer o corte lá e fez uma o estilo rogerinho do ingá né custou mais de aqui atrás mas ainda bem que foi aqui atrás não dá para aparecer aqui na câmera dá para continuar gravando convite programa com informação aqui tem informação e só hoje vai ter um projeto muito legal você já tá vendo aqui desse lado na verdade o Projeto é um projeto de um cadastro planta e você vai conhecer muitos conceitos
importantíssimos de planta é a parte desse projeto né objetivo não é parar para explicar cada um dos detalhes mais mostrar para você o visão e um projetinho um pouco mais complexo do que vai ser muito legal a gente vai usar muitos recursos interessantes como provaider navegação que é para você um pouco de com aplicação está organizada então basicamente a gente vai ó ter que Ir para você cadastrar né formulário também que é uma coisa muito importante no dia a dia da aplicação bom então aqui por exemplo vou colocar o nome é celular fast vou colocar
aqui o e-mail
[email protected] teste pontocom vou deixar aqui a url em branco ou faz o seguinte eu vou colocar só as primeiras duas letras né vou salvar você vai ver que ele vai validar aquilo formulário só faltou validando um campo e aí você pode validar os outros caso você queira e que Eu vou colocar teste para ele salvar e ele salvou aqui quando eu não coloco a url do avatar ele coloca o ícone e quando eu usar o url do avatar ele vai colocar aqui o valor da imagem tá se eu quiser editar posso colocar
aqui ó guilherme alterado em salvar você vai ver que alterou e você pode excluir por desenvolve campo para excluir tem certeza não não exclui ficando aqui tem certeza assim ele vai excluir então tem muitas coisas legais vou parar de Enrolação bora para o vídeo e compartilha comenta assim no canal marca o sininho os males conteúdo dos seus amigos que sem dúvidas vai ajudar muito a gente aqui no canal então bora para aula pessoal agora nós vamos criar o nosso projeto já estou com o meu terminal aberto na pasta desktop e vou usar o comando volante
create e o nome do projeto vai ser plante underline crude mais um criar um crud muito simples Entre panda para você conhecer várias funcionalidades interessantes sobre o foi até a partir desse cadastro embora seja um aplicação bem pequena ainda assim muita coisa será usada nessa aplicação objetivo não é entrar no detalhe de cada uma das coisas no objetivo não é explicar tudo parar para explicar mas é mostrar para você de uma forma mais objetiva não é focado na resolução desse problema que é criar um cadastro em cima de usuário então vai Sacar que o comando
e se internar a gente volta tô pronto terminou aqui de configurar nossa aplicação só para mostrar para vocês eu estou usando aqui a versão do próprio um ponto de oi e a versão do darth 2.8.1 certo então vamos lá eu vou entrar dentro da pasta que eu acabei de criar flutter crude e vou abrir o verso cold nessa pasta eu não tenho comando old no meu terminal não tem problema basta abrir o vs code e pedir para dentro do verso pode abrir a Pasta certo alguns alunos na por não encontrar o comando aqui no terminal
param de fazer executar né achando que isso é essencial na verdade você pode abrir o projeto diretamente no próprio resort do cold abri ele painel open você seleciona a parte de abrir o projeto legal aqui embaixo já estou com o meu simulador do iphone é também vai funcionar para android perfeitamente problema nenhum já tenho ele selecionado vou entrar aqui na opção run without Blog e vou selecionar a opção tati spotter assim que terminar o processo de fazer a instalação da nossa aplicação no simulador do ios a gente volta pronto depois foi concluída agora a gente
tá pronto para iniciar o desenvolvimento a nossa aplicação é isso agora nós vamos definir é a classe que vai representar o usuário e nós vamos definir também é alguns dados marcados para gente já tem somente a nossa aplicação o que ser visualizado Mesmo antes da gente fazer a criação eu vou começar a mostrando a lista dos usuários a partir das feliz a gente vai criar o formulário para criar o usuário a gente vai criar também o formulário mesmo formulário na verdade que vai alterar ea exclusão não vai ter formulário o usuário clica ele vai confirmar
se quer excluir ou não e no final ele exclui para isso eu vou usar alguns algumas imagens que eu peguei aqui de pizza bey.com é eu coloquei aqui Por exemplo avatar ele vai mostrar para a gente aqui ao por exemplo achou dessa imagem usei essa imagem aqui do cachorrinho certo eu acho que dessa médica você pode pegar aqui o avatar que você queira o clicando aqui você vai ter a foto avatar clica com o botão direito e ele abriu uma nova uma nova aba com essa imagem e aí você pode selecionar essa imagem e usar
ela como avatar eu vou mostrar para vocês 5 a gente vou criar os nossos dados mercados eu vou Mostrar para vocês que a gente vai copiar um trecho de código só para não ficar repetindo aqui coisas são mais mecânicas eu vou colocar associado em algum local você vai ver que vai estar à disposição para você esse trecho se não você pausa e copia os dados a estrutura bem simples e baixo você entrar em algum tipo de imagem né copiar url colocar que vai funcionar perfeitamente a primeira coisa que a gente vai fazer aqui vai ser
dentro de libre eu vou criar uma pasta e Vai representar os meus modelos os meus módulos e aqui eu vou colocar um arquivo chamado hilder ponto da arte e o zé barth nós vamos criar uma classe de usuário aqui dentro o nome da classe será user e ele vai ter alguns atributos o primeiro vai ser uma string que poderia e também dá vou colocar um striped vou colocar um instinto chamado a name ou criar outros distritos chamada e-mail e o criar um outro time chamada avatar url Não vou colocar a senha vai ser em cadastro
mais simples e depois você pode incrementar com o trabalho de casa vou criativo consultor e usa no caso com todos os atributos são finais eu posso criar um consultor constante então vou colocar aqui ó desde ponto agir vou colocar aqui nome então vai ser nem me depois e-mail e finalmente avatar url vou marcar aqui com arroba free fire ou importar vou marcar tanto aqui no meio com pra cá também sou requerido já o Ardil aceitar receber o ídolo caso você esteja criando um usuário do zero sigo eu não vou colocar o haiti no primeiro momento
e depois é mentalmente e era um agir para um usuário que está sendo criado naquele momento tá quando o usuário fosse alterado obviamente o haiti já existe então a gente vai passar por exemplo em alguns momentos no consultou a rede também então pode ser que não passe pode ser que eu passo por isso eu estou colocando ele como não Requerido você quiser pode colocar como requerido e você tem que explicar mente colocar o aí como no também é uma possibilidade legal eu vou criar uma pasta dentro de livre não dessa pasta vai ser data e
o nome do arquivo que eu vou criar aqui dentro vai ser em dame traço vai sedã me traz um the user's ponto bate e aqui basicamente eu vou copiar para não ficar me repetindo muito ó na verdade a gente vai precisar eu vou copiar aqui eu pegar aqui ó eu criei map Eu fechar isso eu criei map nesse mef basicamente eu tenho a chave como você dói de aqui ó mesmo a chave do agir o meu usuário aqui dentro que tem o agir o nome o e-mail e o avatar url os mesmos atributos que eu
defini na classe obviamente que eu preciso importar o usuário então vou importar para ele parar de dar problema aqui se você quiser cadastrar novos usuários sem problema nenhum ele copiou esse aqui ó deixa copiar jamais usuária então super Simples eu vou criar que a chave dele vai ser quatro e nós vamos criar um usuário um passando os atributos então eu tenho aqui ó o avatar url vai ser esse que eu acabei de copiar nós teremos wide mais exatamente ele ficou ok o d-fine aqui name para ser guilherme vou colocar o e-mail para sei de arroba
avc mail.com e finalmente nós temos acho que a tem tudo não é de o nome e-mail avatar então nós já temos aqui os nossos dados Marcados vou salvar e nós temos também a nossa classe de modelo usuário com os quatro atributos que a gente vai usar meu próximo passo que nós vamos fazer vai ser criar a nossa tela que vai mostrar a lista de usuários e só nós vamos criar agora mais uma pasta aqui na pasta verdade que eu vou chamar de viu e aqui eu vou criar a primeira viu que vai que eu vou
substituir essa tela inicial aqui cê acha que foi trazida por padrão quando a gente criou uma aplicação eu Vou criar um arquivo chamado user lee a despontar e aqui dentro a bloquear um trecho las windows chamado user being e nós vamos pedir para ele importar que o motivo legal como vai ser uma tela eu vou substituir a esse container o stephanie e ouvir a vou colocar aqui um é barra f bar e eu vou já colocar um título para a gente saber que além dentro dessa tela tá então colocar aqui ó tá então que vai
ser um texto que eu vou chamar de lista e usuário vamos que Você quiser colocar legal queria aqui o meu índia vou encostar ele aqui no meio vou tirar aqui os comentários vou tirar aqui nos comentários vou tirar aqui aonde tem o meu mais rompei eu vou colocar o meu user being legal o carro digo aqui vou tirar o resto de by é mais um beijo não vai precisar mais tá aqui dentro salvando agora a gente já tem ó o meu componente vai apresentar a lista de usuário legal então aqui dentro do meu uzerli tu
quer que eu vou fazer Aqui além de ter colocado o título vou querer definir o bari e nesse bar em eu vou usar um elemento chamado listview listview ele tem um método chamado build né e nesse método basicamente a gente vai ter que ter uma função passa aqui ó essa função chamada entende ilda e ele vai criar um componente tá e nós teremos aqui um outro atributo que quer chamado ipcloud quantos itens eu tenho para mostrar na lista então with viewbuilder transfutura que vai criar uma lista e Ele vai apenas carregar aquilo que está sendo
exibido na pele se você tiver uma lista com 20 mil alimentos ele não vai criar os 20 mil itens de uma vez só ele vai criar de acordo contigo vou mostrar ele é muito bom para ser usado quando você tem uma quantidade e eventualmente pode crescer bastante aqui eu vou fazer o seguinte eu vou importar lá o meu dame users o caquinho constante chamada user se recebe thammy user aqui eu posso até criar um clone Usando operadores fred e aqui no usar eu vou conseguir pegar o user ponto lenço para pegar o tamanho ea partir
desse método que eu recebo o contexto e recebo também o índice do elemento no qual eu vou retornar eu posso criar aqui por exemplo um texto que vai pegar a partir desse map de user' posso pegar que usar ser ponto acho que tem velhos ponto ela menos at então vou pegar o alimento pelo infância que eu posso por exemplo mostrar o nome do elemento salvando você Vai ver que apareceu aqui ó maria rafael fernanda e guilherme legal só que eu vou querer agora é criar a pasta e vai ser a parte dos meus widgets e
aqui eu vou chamar vou chamar o me desculpa chamar contornei sem problema e aqui nós vamos criar agora um outro componente que vai representar cada um dos itens dessa lista ou seja o nome do componente que eu creio vai ser e usar taiyou mas vamos usar o ilha de chamado de style que é que não se fosse Um tijolinho da lista e dentro dele a gente vai mostrar a renderização de usuários com avatar dele com o nome de usuário e-mail eu vou fazer isso agora então pessoalmente de componentes nós vamos criar aqui novo arquivo chamado
user pai ou ponto bar e vai ser também vídeo simples tão chamativo user styles e vou importar e o matthew eu conquistar vou substituir esse container por um ele tá eu li style exatamente esse tijolinho o presidente do recivil tá ele é bom Porque ele já tem a as condições pré-definidas então você não precisa para o pai posicionar todos os elementos porque ele já tem aqui o o líder um ele já tem o python ele já tem o sur tom e já tem trailer então já tem todas as posições já preparados para a gente colocar
aqui no lied eu vou criar o que seria o avatar do usuário só que eu vou querer fazer o seguinte usuário não colocar o avatar eu vou querer colocar o ícone se o usuário tiver avatar eu vou Querer mostrar o botar então para isso antes de criar que o style eu vou criar igual o final chamado avatar e aqui eu vou fazer o seguinte ó e eu vou esperar receber aqui nesse elemento obviamente usuário então final vou ter que me usar vou colocar aqui user e não consultou a desse componente e o sartharion eu vou
esperar receber o desejo ponto usa o a todos os parâmetros é finais eu posso colocar o custo como constante tá tão legal então a partir do usuário que eu Tenho acesso aqui então tem um acesso a user ponto avatar url isso aqui for nulo ou o user tomates aqui usar ponto avatar avatar url o vazio stitch significa que eu não tenho ao rl por isso eu não vou querer mostrar a imagem propriamente dita não vou querer mostrar apenas o ícone e para isso eu vou usar aqui ó um círculo que tem disponível no planta cinco
avatar e com shell eu vou definir o ícone então iphone é sério a ai com um ponto e eu vou usar a curso se você dá Um contra o espaço e você colocar o vídeo aqui ó ele vai mostrar para você qual é o elemento tá eu tirar esse vídeo aqui no caso contrário o ou seja se essa expressão por falsa e vai cair aqui vou querer mostrar a imagem então também vou usar um círculo avatar só que agora eu vou usar o atributo chamado background-image vou passar aqui um network image e caso a pagar
user ponto avatar url eu estou usando uma imagem na rede por quê porque No caso da imagem do avatar de usuário não faz sentido eu guardar essa imagem diretamente dentro da minha aplicação eu obviamente eu não vou ter essa imagem aplicação por isso a partir da url eu preciso ir buscar essa imagem na rede tá e aqui eu vou usar para o lied o avatar e com esse aba tá gente já consegue chamar esse elemento só para gente ver a cara dele depois a gente vai acrescentando mas elemento então aqui e depois eu vou dobar
isso coloca no Outras melhorias nesse componente de lixo tá vou tirar daqui vou colocar externo para gente ver como é que vai ficar então trocando aqui o text e eu vou colocar lá se user tá eu vou ter que passar um usuário comparando isso só vou pegar aqui users ponto velhos ponto é lamento é passando in se salvar aqui ele não alterou chovesse no terminal aí tá reclamando relação constante nesse caso aqui seria o ideal colocar fino tá com isso a gente já tem Aparecendo aqui ó o avatar dos nossos usuários eu vou entrar lá
em visitar eu preciso complementar nós temos o link que é uma avatar deixa eu pegar aqui um exemplo só para gente ver se tá funcionando lá em da bandeira e o seu simplesmente tirar esse último aqui e salvar você vai ver que ele colocou uma batalha 15 padrão que é o ícone caso o usuário informe o avatar aí ele vai aparecer o ataque legal fizemos aqui o avatar entram em transe de novo está Eu vou colocar o título para ser um déficit vai pegar de usar pegar o nome dele mail o subtítulo eu vou pegar
o e-mail do usuário não e meio olha como é fácil automaticamente já fica legal organização já coloca uma fonte em tô com medo de táxi o subtítulo e tal já para o trailer eu vou colocar o que vai ser os ícones para excluir e o ícone para alterar para editar então vou colocar o seguinte aqui eu vou definir uma lol tão nessa roupa eu vou definir Os filhos e que dentro eu vou usar um ai com batom botão com o ícone arco batom nós vamos definir na verdade dois a itens só formatar ou copiar para
cá aqui onde tem um prédio vou colocar por enquanto a função vazia só para gente deixar o botão habilitado então colocar dessa vez um celular o e em relação ao ícone em cima eu vou usar primeiro você está criando aqui a costura tivesse fazendo new time uai tô criando ícone eu tenho a parte dessa Classe ai com a lista de todos os ícones disponíveis né então aqui no caso vou usar o ícone para editar e é inclusive mostra aqui ó que eu selecionei e nesse caso ou selecionar aqui ó vou usar o ícone para exclui
pelé não fez isso salvando vou dar aqui na frente na aplicação tô dando reflexo ele deu aqui um problema mas eu vou envolver esse roupa ontem né só para a gente colocar aqui um espaço fixo para esses botões vou colocar aqui uma largura de 100 Salvando ele voltou e colocou aqui um container conta mar sem e associado esse container tem uma linha com dois botões que é exatamente o ícone relacionada a editar e o ícone relacionado a exclui aqui eu posso usar o tema a ana é para pegar tudo tenho mas eu vou colocar a
cor aqui de forma mais fácil colors ponto red trace a cor relacionada a exclusão e a cor que eu vou colocar para editar vai ser o laranja warning então vai ficar aqui o laranjinha para Alterar e o vermelho para excluir obviamente nesse momento ainda não faz diferença nenhuma colocar os ícones aqui para finalizar só essa aula tem como eu colocar também um outro ícone que vai ser de adicionar ou seja relacionado a minha tela de listagem de usuários que a minha viu eu posso a minha ep bar também posso colocar um futebol tão aqui se
eu quiser mas aqui a priori eu vou colocar um action e a gente vai colocar um ai com batom a mesma forma e não só como Ataque colocar mais um vídeo aqui o ícone vai ser ai com outro adicionar é legal e por enquanto o colocar uma função é vazia só para ele deixar o botão habilitado então tem o botão para adicionar quando clicar aqui é para navegar para um outra tela que vai ser a tela de formulário tanto quando eu clicar aqui no edital vou também navegar para essa mesma tela só que passando o
parâmetro do usuário que eu quero alterar e com relação à que a exclusão Ou clicar vou ficar na mesma tela mas ele vai mostrar um dialog né um diálogo nós temos que o usuário quer ou não confirmar a exclusão pessoal antes de continuar eu vou usar aqui na nossa aplicação o provaider para gente em vez de ficar acessando diretamente essa lista dentro de um determinado widget vou externalizar isso então aqui nas dependências no mesmo nível aqui do planta é certo já que está trabalhando com um arquivo emo e a formatação é Importante eu vou colocar
aqui o provar eu vou colocar para ele pegar a última versão do trabalho certo não vou especificar que uma versão ele vai estar lá e o próprio polido plantei faz isso para gente ir uma vez que a gente tem disponível para o vai ver eu vou criar aqui uma nova pasta chamado provar de dentro dele eu vou criar um arquivo chamado iuser ponto da arte aqui nós vamos controlar essa lista de usuários Na verdade esse método de usuários tanto para gente adicionar o usuário aqui dentro para gente pegar o usuário a partir do índice para
excluir usuário tu vai ser feito dentro dessa classe e essa classe nós vamos criar a classe user obedecer users provaider você pode colocar o nome que você quiser ela vai ter acesso ao missinho chamado sem anote fire e dentro desse missinho a gente tem acesso a um método chamado not file ter aqui implementado o padrão observe o Paulo muito do padrão observo eu acho que é senão o principal padrão de projeto que você tem que conhecer essa programação reativa é fundamental e esse cara implementa observo é que é esse change not fire e sempre que
a gente vê uma mudança nesse map de usuários a gente vai notificar os vistos nesse jardim interface gráfica vai ser atualizada aqui dentro eu vou criar um map esse map vai ser um método de springer e de usuários a mesma forma Com a gente definir o lá no bandeira e aqui eu vou criar um deste médico vai ser aí tem eu vou pegar a partir da bandeira dame underline users né eu vou gerar que um cone desse map e nós vamos usar importar que usa e nós vamos gerenciar esse map aqui dentro essa classe então
vamos lá eu vou criar alguns métodos importante que vão me ajudar quando a gente for trabalhar com interface gráfica o primeiro médico que eu vou criar vai ser o método método Betty que vai retornar o limite de usuário de uber aqui vai ser um método pert que eu vou chamar de ol e e e eu vou retornar uma lista a partir de ir aiden ponto velho é você pode perguntar o porquê você fez um quilombo da se lista porque eu não vou querer retornar nunca uma referência para esse map por que que eu não quero
retornar a referência para esse map porque momento que eu retorno uma referência para ele qualquer outra parte da minha aplicação Pode incluir elementos pode excluir pode mexer nesse metros em que essa classe seja notificada então eu sempre vou retornar por exemplo clones e ele mexer nesse ponto não tem problema nenhum então qualquer alteração que eu queria fazer aqui nos meus dados essa classe precisa participar ou seja só vai ser incluído um elemento dentro de itens tanto é que ele é privado aqui dentro só vai ser incluído quando é o método tradicional determinado item for chamado
Tá então por isso que eu vou criar também um metro para obter os itens se tornar a partir do operador spread uma lista nova e não vou mandar por exemplo referência com relação esse meta legal uma outra que eu vou querer é mentalmente usar em alguns momentos é o counter então gente então e também ao bater e aqui eu vou retornar a partir de item ponto ué eu não vou querer por exemplo pegar a partir do uol porque sempre que eu pegar o ao só para ter um Caught eu vou gerar um clone então não
façam sentir já retornei um metro que vai retornar quantos elementos têm dentro da lista né do metro de usuários que eu estou controlando a partir dessa classe legal aqui é a primeira versão por enquanto eu não mudei nada quando eu tentar acessar uol nenhum mudança foi feito e quando tentar acessar o counter nenhuma mudança foi feita por isso que não faz sentido aqui dentro eu chamar por nós fai líder que é um método que tá Disposição por conta desse me disse não vou chamar ele vem aqui nesse get e nem nesse outro brad até porque
that não é para bom então vamos lá salvei aqui como é que a gente faz agora para usar o provaider eu vou precisar de filho provaider em algum ponto da minha árvore de componentes de tal forma que eu tenho ele a minha disposição dentro de usar a alice lá em userlist vocês perceberam que a gente chamou o dame usar Diretamente e eu não vou querer acessar ele a partir da nilza vou querer acessar ele a partir de provaider e aí a leo que tava muito rápido né e tal que o objetivo não é parar para
explicar sempre tempo de como funciona provaider nem sempre centro de como funciona o formulário você pode olhar na colômbia lá então curso muito legal de planta então dá uma olhada lá aí eu também meu objetivo aqui também não vai ficar fazendo propaganda o tempo todo dos Cursos é só mostrar para você que aqui o objetivo é realmente ser muito objetivo então por isso que eu não vou parar para explicar cada uma das coisas que não ficaria muito longo a aplicação é muito longo aqui é o nosso projeto né mas eu acho muito importante mesmo que
você não entenda sem por cento do processo de todas e vai junto que é muito legal isso traz um aprendizado muito grande por mais que você vai ser lá trinta por cento daquilo Que eu falei você não consigo captar boa parte daqui que eu mostrei você vai conseguir catar e isso com certeza vai te ajudar muito na caminhada com relação sua então vamos lá aqui no meio eu preciso colocar um provaider e tal forma que essa classe seja filho de se provar ver então eu posso colocar aqui envolvendo esse elemento provar exatamente nesse ponto que
representa o rami ou então eu posso envolver toda a minha época eu posso colocar o Envolvendo matthew ou envolvendo aqui o userlist tá eu vou envolver uma tira porque mais na frente eu vou colocar o user list dentro das rotas e aí a gente vai precisar mudar isso então já vou refatorar aqui em cima então vou envolver o matthew ep com um cara chamado sem not fire pro vai ver se daqui encontra o espaço você vai ver ele aqui ó tinha and not fire provaider pronto para completar aqui o meu tim e eu vou definir
o atributo criei que Recebe uma função que recebe o contexto e aqui eu vou retornar um gente not fire então quem é os and not faz a minha aplicação é essa classe user essa classe usar que é thank you miss it and not fire que implementa o padrão observe no qual provar ele vai se basear para notificar os itens quando aconteceu no dança e aqui basta eu retornar user o importar aqui e esse método que cria vou até fôrma tal esse metro cria um novo two and not fire e a gente tem como Tirar dele
a minha aplicação inteira ou seja toda a minha aplicação é conseguir ter acesso a esse change not fire e no caso aqui é a lista de usuários tá que essa classe usuário está controlando os usuários na minha aplicação aí você pergunta léo e se eu tivesse vários prováveis eu tenho provado é para cuidar da lista de usuários eu tenho outro provar se dá por exemplo a lista de produtos e eu tenho provada que vai cuidar por Exemplo do usuário logado legal você pode ter vários prováveis e para isso existe um cara chamado multiprovider para que
ele ó o multiprovider e dentro do multiprova e você vai criar uma lista e provaider e aqui dentro você pode colocar a cada um desses pro vários aqui que você queira tá então não tem problema nenhum você pode posso até usar ele aqui só para mostrar para vocês pra dinâmico posso criar aqui um monte provar né dentro desse cara além de ter Os prováveis ele vai ter um chá eu tenho aqui ó o chefe que representa a minha aplicação então uma twap vai ficar aqui dentro então aqui para tirar os terminar aqui então vou colocar
ele aqui dentro e o meu gente not fire exatamente aqui sem charles obviamente ele vai ficar aqui dentro do multiprovider então de tal forma que aqui ó só formatar o está direitinho salvando o dispositivo aqui pronto já reflete na minha aplicação vez que está tudo Importado corretamente eu só testar aqui em userlist colocando usuário dois para ver se não tem nenhum problema usuário dois voltou só voltando aqui para explicar rapidamente então nós temos aqui ó um multiprovider e esse cara especificamente esse prováveis aqui ó vai controlar a parte de usuários e toda a minha aplicação
porque eu estou envolvendo toda a minha aplicação que a minha matthew ep eu estou envolvendo ela a partir do multi provar de tal forma Que eu posso criar quantos provar diesel queiram provar ele para trabalhar com parte de dados um provar usuários uma parte do produto uma parte do advogado eu posso controlar isso e tem acesso isso não a partir de um determinado ela é mesmo mas tem acesso isso na minha aplicação inteira legal como é que eu faço agora para dentro já que eu configurei né eu criei o meu user provaider com esses dois
metros por enquanto é o método sol e o mesmo aonde Que são dois metros que eu estou usando oi felipe como é que eu faço agora para dentro de userlist eu consegui acessar essa classe e usar eu vou fazer isso a partir do provar eu vou mostrar para vocês então para a gente acessar isso lá dentro de um ver vixe mas vamos fazer o seguinte eu vou entrar aqui em userlist nós vamos substituir onde tem que final users eu vou substituir essa chamada inclusive eu não vou mais precisar de se importe eu vou substituir isso
pô pro Vai ler e o quando cortar aqui ele ponto o conter a contax assim eu tenho duas formas ou eu resolvo os genéricos aqui colocando por exemplo users importar ou então eu posso fazer o seguinte ó colocar aqui o tipo e usar e aí eu não preciso me preocupar em resolver genéticos aqui que ele automaticamente já vai pegar a partir do contexto ele vai navegando no contexto para pegar um elemento do tipo user e aí ele vai chegar lá em cima da Minha aplicação vai perceber que tem um pro vai ler e ele vai
conseguir resolver exatamente essa classe aqui ó que foi instanciada aqui ó sempre eu vou criar um novo provar ele eu uso esse método cliente tá então aqui associado a este mil né aqui também tem livro tá então está criando uma nova instância dessa classe e dentro dessa classe ela vai controlar o acesso aos nossos itens são aqui dentro já que eu tenho meu provável de usar eu posso aqui onde tem e os Pontos lenço eu tenho um método cal e nós criamos agora pouco oi tá um elemento eu posso fazer ó users ponto ou ponto
element etnies se salvando a gente vai conseguir te dar um refresh agora está conseguindo acessar esses elementos diretamente no meu provável legal aqui no provar da gente pode criar alguns outros métodos para facilitar nossa vida por exemplo eu posso criar um método chamado by inglês então aqui ó ele vai retornar 1 user o Nome do método vai ser by index que eu vou passar um determinado em si e aqui em vez de eu ter que clonar sempre que eu chamo ou ele vai para o na que a lista tá então se necessariamente o precisar clonar
eu consigo retornar aqui ó return me pegar aqui aí tem ponto velho ponto elemento x passando aqui vai vir então agora eu posso substituir aqui no meu ser lici para investir acessar essa forma a gente consegue acessar ó user ponto E aí eu passo aí ele vai conseguir acessar normalmente ó deixa eu ver se tem algum erro que na nossa aplicação soli soli tá aqui não reflete na aplicação pronta a nossa aplicação está funcionando perfeitamente agora acessando provar isso vai ser importante porque a nessa classe nós vamos controlar mais dois métodos que é o método
que vai inserir um novo elemento dentro do map eu vou fazer um método para tanto ele inserir compra ele Alterar e vou criar um método para ele excluir um elemento dentro desse map então inspirado aqui no lá no java né no método java nós temos um método chamado pude até que o método faz ele e insere um elemento dentro de um map quando esses elementos não existe e a ele altera um elemento baseado na chave se você participação elemento que já existe lá altera se não for a mente não existe ricos tá eu vou criar
aqui um método a sós O meu provaider esse método ele vai causar uma alteração então sempre que eu chamar o método pude eu vou passar aqui user-to-user com oceano parâmetro e aqui dentro obviamente se user tiver vazio é nulo né então user ele foi igual a nulo ou simplesmente retornar e não fazer nada porque não faz sentido eu inserir um elemento nulo caso contrário ou seja o foi passado um usuário válido e eu não vou aplicar todas as validações tá mas de qualquer forma foi passado um usuário Diferente de nulo aí sim eu vou fazer
a ilusão certo vou adicionar ou alterar um pré-existentes e no final obviamente eu vou chamar aqui o not fire sniper para ir provar e decide notificado que hoje eu mudança e quando aconteceu uma mudança ele vai alterar minha interface gráfica então eu vou mostrar para vocês um exemplo disso acontecendo eu vou colocar de forma fixa aqui incluindo o map with então vou pegar aqui ó por exemplo é itens ponto ele tem um metro Chamado pude ich habe centro ou seja ele vai inserir caso não esteja dentro né vou colocar aqui um uma de qualquer mil
fixo por enquanto e aqui eu vou retornar miúda então vou colocar de forma fixa o usar e depois a gente faz aqui a devida alteração tá então vou colocar aqui o ar de para ser o mesmo agir livremente mil vou colocar aqui o name para ser teste vou colocar aqui um e-mail e-mail para ser
[email protected] i user avatar o avatar url melhor dizendo vou passar Aqui ela se vazio legal como é que eu posso agora chamar esse método eu vou fazer o seguinte eu não vou no primeiro momento chamar o not fire ter eu posso
chamar ele para adicionar a partir desse botão aqui ó esse botão eu posso um chá mate pude na verdade eu vou pegar já isso usuário que eu vou passar comparam tá então vou deixar ele fixo fora então faz o seguinte já vou criar aqui um código de vou usar depois que vai ser o seguinte o final wide já vou Pedir para ele geral a de forma randômica então lembram só importar e aqui eu vou chamar o next acabou ponto spring vou usar esse agir tanto aqui para vou usar esse aí aqui e vou pegar o
nome a partir de usar então pegar aqui ó e usar tanto name vou pegar aqui usar ponto e-mail e usar ponto e meio e finalmente o usar contém avatar url legal só que agora eu vou passar aqui o valor fixo ele sempre vai inserir o novo valor não vai verificar por exemplo se o Valor já existe só para a gente ver e eu comentei presta atenção cometer que nós faz isso né é o que é o código correspondente adicionar por enquanto não tô tratando o caso de alterar como é que a gente pode chamar isso
isso aqui está vendo da nossa tela e userlist a gente tem esse botão aqui de adicionar é exatamente nesse ponto que a gente vai querer acrescentar aqui nesse ponto dentro do meu deus hélice eu já tenho provar e vem Aqui eu posso simplesmente a mal aqui user ponto ti vou criar um novo usuário e usei vou colocar fixo mesmo depois a gente faz os ajustes só importar aqui ele que ele não tá importada e aqui eu vou definir ó wide vai ser nulo ou passar aqui name para sei teste vou passar aqui o e-mail para
ser aluno arroba poder.com.br e finalmente vou passar e o avatar url e para se vazio legal quando eu fizer isso e olhando que lá dentro do método Push eu não tenho o noite faz isso mas ele não vai atualizar interface gráfica como adicionar então se eu adicionar aqui ó não alterou a interface gráfica não alterou e tal exatamente porque eu não modifiquei os listeners e o provar de não foi notificado que houve a mudança para ele alterar a interface gráfica já se eu vier aqui e tirar isso aqui é até atualizou a interface gráfica né
com o senhor te adicionado só limpar aqui para ele voltar para os dados Mercados e aqui ó a gente tem os nossos quatro dados agora vou adicionar automaticamente ele consegue detectar que hoje a mudança exatamente porque eu chamei noite file ser uma outra coisa que a gente pode fazer também é o seguinte aqui no user list se você marcar aqui esse pro vai ver nos existe um homem propriedade chamada listen falso significa que mesmo que você notifique ele não vai atualizar o quê e quando eu ganho uma mudança então você Tá dizendo beleza o mais
que ele notifique que houve uma alteração eu não quero se notificado nessa interface gráfica então se o usuário vir aqui ó e adicionar tudo ação reflete porque ele não atualizou ainda não tá mas eu clicar agora em adicionar você vai perceber que ele não vai alterar interface exatamente por conta do licença igual a falso legal então mostrei para vocês um pouco do funcionamento do provável deixou dar uma empada aqui na nossa interface e eu vou Tirar aqui dentro do um pressa do que a gente não vai ter esse código fixo aqui eu vou voltar só
para a gente terminar a parte do puty tão bem to the user's aqui eu quando o usuário não tem aí de significa que é um novo elemento ele vai adicionar aqui e aqui eu vou fazer o seguinte teste para a gente saber se vende vai adicionar você a gente vai alterar e vai ser dentro de itens tem um método chamado com pênis que você já contém a determinadas chave e qual é a Chave que eu vou usar para a gente o mec é exatamente user.id que eu vou colocar aqui user.id se tiverem o seu ponto
agir e tiver contido dentro dos itens ele vai fazer um alteração e para fazer uma operação eu tenho método dentro dos item chamado andei eu vou passar o user ponto a edicom chave nesse caso eu não quero também ou seja aqui eu tenho que fazer um teste se usar pai de ir for diferente de nulo e se ele for a user a user.id ponto tem um método Treinar os espaços em branco se ele não for vazio ou seja se ele não for no ele não for vazio e ele estiver contido dentro dos itens e aqui
ó eu vou fazer a atualização nesse caso eu vou pegar o usuário que eu recebi é um parâmetro e volta lá dentro do meu map eu abrir para usar o ex note if não tirar aqui ó a negação só formatar então a verdade eu tenho que o seguinte teste alce wide foi diferente de nulo e wide tirando os espaços em brancos não for Vazio e guide estiver contido dentro do meu map significa que eu vou alterar o elemento a partir do eyed e vou pegar aqui esse método que vai retornar o usuário que eu quero
alterar então peguei o usuário aqui eu posso inclusive não necessariamente pegar esse usuário essa referência e criar aqui um novo usuário desta ter mais segurança para não ter perigo de pegar a referência isso gerar alguma alteração dentro do map daqui eu posso pegar o aí de ir Recebe e usercontrol arquivo fazer isso por e-mail o nome e provar tal url então vou trocar aqui o primeiro ai the name vou trocar aqui o segundo vai vir o que finalmente vou trocar trocar aqui o que você vai diretor avatar o rs caso contrário eu vou fazer exatamente
esse código aqui ó colocar só um amigo aqui ó vou pegar esse código aqui vou colocar dentro do ela elsa que ele colocar aqui vou colocar esse dentro do hell's e agora a gente tem o nosso método ou Tirasse comentário e obviamente no final eu preciso notificar os listeners ou seja uma vez que ele passou por aqui ou seja o usuário não é nulo ele ou vai entrar nesse de alterar você colocar uma vírgula aqui para formatar direitinho ou ele vai entrar aqui nesse dia incluí esse aqui ela inclui se não tiver presente né e
aqui ele vai alterar o elemento dentro do meu por isso o nosso método foi concluído ou seja ele tanto inclui como altera um elemento Usuário dentro do mestre pessoa agora nós vamos fazer o método para excluir para remover então eu vou chamar aqui no se formou não coloca aqui a voz formou esse método vai receber um usar foi até receber só ai de você pode até simplificar um pouco assinatura desse método eu vou fazer o seguinte teste é o usar tem sei diferente de nulo e o user' ponto agir também tem que ser diferente de
novo aí com isso eu vou chamar aqui o item outro lemle passando a chave né que Aí user.id então aqui dentro do f eu vou chamar o nosso país nesse para garantir que ele vai notificar quem tá interessado e detectar qualquer eventual mudança dentro do nosso time no free fire e essa classe de usuário para gente testar só para ter certeza está funcionando eu vou entrar lá em userlist no mesmo método de adicionar só por enquanto altamente adicionar nunca vai isso é então que eu faço a seguinte o user Ponto removeu preciso passar um usuário
mas eu consigo pegar ele por aí din android não pelo índice né então usar by index vou passar o aj0 seja quando clicar agora ele vai excluir o jeans fizer então salvando vou clicar aqui e já tem motif es na história você me chamado e aqui nesse provável lhe sentar para turma ele tá escutando as modificações então aqui no caso eu vou clicar ó ele escolheu o primeiro agora ele vai excluir o rafael agora vai Excluir a fernanda e agora vai excluir o guilherme a ou seja tá funcionando corretamente o metro de excluir embora claro
que eu não vou excluir a partir do preço botão de adicionar então tanto o de adicionar tá funcionando como de alterar o dell ter a gente não prestou né deixa eu fazer o seguinte ó vamos for operar operar um determinado usuário que eu vou o user ser pontos ou definir o novo usuário nesse usuário eu vou fazer o Seguinte wide vai ser o edi dois pode de dois é o do rafael e dito eu então colocar aqui o name para ser só rafa vou colocar primeiro para se rafael rafael arroba outlook.com.br e o avatar url
vou trocar vazio ou seja nesse caso a gente tem uma atualização e não uma inclusão fecha a primeira inclusão colocar aqui 20 e vou clicar em adicionar ele adicionou o rafa e eu vou agora trocar para 2 e e sair de existe então o clicar aqui ó ele trocou o segundo elemento Então as funções dentro do meio da classe usar que altera e inclui e que exclui já estão funcionando e o viper oi gente vai ler os dados é exatamente que a gente tem aqui de assunção que lê todos exatamente o user pontoall a verdade
é que a gente não precisa usar ela porque tá usando country users by index é suficiente para gente conseguir mostrar todos os elementos então vou tirar que essa chamada para alterar porque aqui vai precisar agora navegar Para outra tela que vai ser a tela de formulário e só agora nós vamos fazer uma navegação e para isso eu não menti gosto de criar uma classe vou colocar aqui por exemplo posso criar uma nova pasta chamada hall e aqui vou criar um arquivo chamado é fraude ponto da e aqui eu vou criar uma classe chamada apps house
e vou definir a algumas algumas constantes estáticas então estate e com eu vou chamar aqui derrame e vai ser o nome da minha rota que vai Representar o homem da minha aplicação eu vou criar um outra rota chamada nos ver trasforme que eu vou chamar de barra e usar traço forme não necessariamente precisaria ter esse barra na frente tá só uma questão de conversão aqui então vou usar o barra como sendo home e o userform tem esse nome ela você precisa criar constantes não não preciso criar constantes a ideia aqui é só evitar que a
gente fica digitando valores do tipo de trem de eventualmente é o nome de uma Rota tá então como é que eu vou fazer aqui no meu bem ponto da arte dentro do meu matthew apps a logo depois aqui de rumo eu vou colocar um atributo chamado haute rotas e aqui eu vou definir as minhas rotas por exemplo eu vou usar aqui ó up world ponto userform e aqui eu vou criar um novo ok google navegar para ele então dentro das minhas bios eu vou criar um novo componente chamado user trás form form ponto da arte
aqui vou criar um Statelessness widgets eu vou chamar aqui que usar o me vou encostar mathieu e aqui eu vou definir também que um escravo e vou definir seu ativar só para gente navegar para ela e ver que está funcionando em relação ao título do meu ap bravo colocar aqui teste chamado forma lario de usuário pronto o que que uma tela lá no meu me quanto da eu posso referenciar essa tela já que eu não tô passando nenhum tipo de parâmetro então vou chamar aqui de user' a form a Verdade aqui para passar uma função
né stf um texto ea torna useforme eu não vou precisar passar em um contexto para cá então posso fazer isso e se eu quiser eu posso dentro da minhas rotas definir também a rota do nome então tanto posso colocar um homem aqui como eu posso me chamar aqui ó up hold on to home e inicializar o meu concorrente home por aqui ó vai ser o e usar ele então tem essas duas possibilidades fazendo aqui eu não preciso mais definir o meu rumo Vou só dar um reflete na aplicação automaticamente como uma rota é o barra
ele vai carregar essa cor sendo ruim legal agora como é que eu faço para chamar essa rota uma vez que eu definir a rota e já sabe qual o componente carregar quando navegar para essa rota com o nome e useforme lembrando que aqui que mostre né por baixo ele vai fazer o seguinte ó lá no meu eu quero navegar como clicar nesse botão esse botão está associado a essa tela que é o meu e Userlist então aqui dentro eu vou chamar o navigator navigator ponto of contest em compras e aí nós temos um metro aqui
chamado puxe name ou seja eu quero chamar uma rota nomeada e qual é o nome dessa rota nome essa rota é aquele que a gente definiu dentro da constante ó é peraltices ponto e userform então quando eu clicar nesse método ele vai navegar para outra tela só que ele vai dar um puxo ou seja ele vai colocar essa tela em cima da outra né não vai remover a Tela anterior e tal forma que quando eu navegar ou quando clicar aqui e navegar para outra tela a gente vai ter esse botão para voltar para anterior aí
é como se eu tivesse fazendo top né eu tô tirando a tela dessa pilha de telas que ele tá criando então como eu clico ele dá um puxo coloco nutella em cima da outra quando eu clico o que automaticamente ele vai fazer um toque né tirar essa tela da pilha de telas já que ela foi adicionada a partir desse Método de lidar isso para a gente automaticamente pronto não vez que a gente fez a navegação o próximo passo é ser definir o formulário a gente ainda vai navegar a partir desse elemento aqui que é o
lírio em meio a partir do edital seja esse método também vou precisar navegar eu até posso colocar aqui no primeiro momento a usar esse mesmo essa mesma estrutura aqui ó então clicando aqui vou colocar aqui é nesse caso só importar Que o happy house cortar formato aqui direitinho para colocar aqui uma vírgula só para ele formatar pronto e eu vou precisar nesse caso passar o usuário como argumento aqui ó eu posso passar a água né e dentro desse componente eu tenho o user exatamente o uso é que foi passado como parâmetro para cá então lá
no meio a minha navegação nesse caso agora eu vou passar um argumento que é o usuário que eu estou querendo editar eu vou não vou pegar o usuário agora vou só Mostrar para você que a nossa navegação vai funcionar então tanto vai funcionar a partir do mais quando fui adicionar o novo usuário como também eu vou conseguir navegar a partir do editar então clicando aqui no guilherme como é editar e e esse usuário comparante na navegação para tela como a gente vai pegar esse usuário dentro dessa tela aqui de forma lá eu vou mostrar um
pouco mais na frente mas o fato que a gente consegue Navegar tanto pelo botão de editar como a partir desse botão aqui de acrescentar o meu usuário primeiro que a gente vai fazer vai ser criar um novo usuário usando aqui mais depois a gente faz a edição mas o fato é que eu já estou passando usuários de argumentos já estou navegando a partir desse botão dedicou então agora nós vamos trabalhar nessa tela de formulário então para isso vou entrar e userform e até aqui já acabou de criar além de ter que o webbar eu vou
Criar as actions e nós vamos usar apenas um novo botão de ícone para que eu crie o botão de salvar então vou colocar aqui no maicon e ai com ponto 6 eu vou colocar aqui um funciona para ser chamada quando um praça depois chamada aqui a gente pode por exemplo chamar de forma só pra gente ver o funcionamento que essa função realmente está sendo chamado navigator navigator contra o contecc e aqui é uma forma que a gente tem que chamar forma Explícita o método top já que eu adicionei mais uma interface na pilha de interface
se você quiser por exemplo voltar e forma programático você pode chamar o navigator pronto ó ficou três ponto pop então clicando aqui ele vai chamar e voltou para a tela anterior então tanto volto aqui como obviamente eu vou voltar aqui mais antes de ele voltar ele vai ter que salvar se tiver algum problema só no lar você até poderia ficar na mesma tela eu não vou Mostrar aqui embora seja simples o processo de validação posso ter o vídeo mas eu não vou é uma só que não vai ser realmente fazer a validação aqui tá é
um clicando ele vai chamar essa função anônima para salvar os vamos lá legal então o que é que nós vamos fazer aqui dentro dessa tela aqui nós temos nosso ep bala logo depois dele e vou colocar um bari no bari nós vamos definir de um formulário para que esse formulário eu não quero que ele fique Grudado na tela então eu já vou colocar aqui pede então dentro do predinho deixa eu colocar um egg no 7 pol e colocar aqui 10 colocando 10 e associado de colocar aqui no viva associada a sped vou colocar um child
e aqui sim eu vou definir o meu forno a legal meu formulário eu vou ter que puxar eu eu vou colocar aqui uma coluna que eu vou querer colocar todos os campos de entrada de dados né os meus text form field vou querer colocar Dentro de uma coluna então aqui vou colocar dentro desse a rede wireless esse micão tax form field thomas vamos definir o meu primeiro teste form-field vou colocar tinho decoration décoration busão e the crush tour the correlation vou definir aqui apenas o label text aqui no caso não é um midi vai receber
um peixe no mesmo tá então vou colocar aqui nome e vai ser o meu primeiro campo de entrada no nome do usuário vou criar que um segundo teste A field que vai ser o e-mail então colocar aqui mail e vou criar um terceiro e vai ser para a url do avatar url do avatar questão do agir não vai aparecer na tela nem na hora de alterar minha nora e incluir que eu vou colocar um pouco maior 15 e acho que vai ficar mais interessante legal o próximo passo vai ser eu consegui é submeter o formulário
como é que eu vou fazer para submeter meu pão no área é para isso eu vou precisar até acesso consegui pegar o Formulário então eu vou usar aqui no global que colocar criar aqui ó pai não já tinha o meu forme os criar aqui com privado vou usar um globalk the form state e aqui eu vou associar esse meu global aqui com o meu formulário é chamado aqui eu vou usar ele é que eu consigo pegar o meu formulário dessa forma eu consigo acessar meu formulário aqui dentro de um presta e a gente pode fazer
o seguinte ó formulário ponto corrente três pontos sei o que é que Esse método faz quando eu executar aqui esse método seis ele vai chamar dentro de cada um dos meus fios o método seja vou mostrar aqui só no caso do meio tem que um método 16 que vai receber o valor atual o velho e aqui eu posso simplesmente imprimir esse valor o velho que eu recebi no nome vou mostrar para vocês que uma vez que eu chamo o save aqui no formulário ele vai chamar esse método para cada um dos elementos e também se
você quiser eu vou só mostrar Referenciar mas se vocês quiserem vocês podem é depois fazer né se você quiser chamar o vale dei ele vai chamar um método vale deito que vai receber o valor velho ó e aqui você vai eventualmente retornar alguma mensagem de erro ocorreu um erro por exemplo certo mostrar para vocês aqui nesse caso a questão do vale deixe esse método ele vai retornar o valor do tipo booleano verdadeiro ou falso e que você pode ter por exemplo ó é mas seus Pais não mesmo pai não ex valeu você é válido e
aí você só faz o resto por exemplo isso por válido então posso colocar tanto a navegação como ao salvar o formulário se for válida sempre que você retornar algum tipo de texto ele vai sumir que houve um erro de validação só mostrando para vocês ó ó eu clicar aqui você vai ver que ele vai dizer ocorreu um erro mas você pode por exemplo fazer algum tipo de teste aqui ó se a velho for igual a nulo ou velho Ponto e if e você pode retornar aqui ó dizendo que o nome é válido tanto nome inválido
ou então informe o nome você pode fazer outro validação se por exemplo o valor ponto o f e você pode usar que um trem só para tirar termina para tirar os passos do banco ou menor do que seu igual a 5 não vai dar tinta monte colocar aqui em menor do que 3 tem uns for menor do que 3 você pode retornar que em outra mensagem de validação Dizendo que o nome é pequeno certo nome muito pequeno você pode dizer a quantidade de letras no mínimo 3 letras a e aí salvando aqui seu salval ele
vai colocar na univali do seu colocar espaços em brancos ele vai dizer ao no pequeno em três letras eu posso até que não empty também colocar um primo tá para se for vazio e aí você pode aplicando as regras obviamente se no final ele retornar aqui no lula o que Significa que esse cálculo está corretamente validado você está validado como é o único campo que eu estou válida no meu formulário ele vai cancelar que formular é válido vai salvar e vai sacar o top e aí salvando ele vai chamar o método aqui não sei se
vai imprimir o meu campo no meu terminal vamos colocar aqui console só limpar aqui para gente ver ó vou colocar aqui o nome ana ele vai validar corretamente salvando ele tanto que eu estou como pegou que o nome Ano legal então o que é que eu vou fazer aqui em relação lá não sei eu vou criar e para facilitar o que como o meu usuário ele só tem campos finais eu vou colocar os da e claro dentro de um map só vou colocar aqui um metro e vai ser king e o campo também vai ser
o campo posso colocar como eu vou colocar com spring mas você poderia colocar com o objetivo já que você pode tentar o vez no valor numérico coisas do tipo tá então aqui eu vou Chamar de forma inteira que eu vou iniciar com mede vazio e aqui no meu form beira dentro de todos os métodos que vão ser chamados quando eu salvar que eu não sei quer que eu vou fazer ó em vez de ter que não função sim eu vou chamar um euro e eu vou colocar no meu sono inteira aqui no caso na chave
name eu vou colocar o valor que eu recebi então vou colocar aqui valor vou pegar isso aqui a mesma coisa vou colocar alguns seja aqui no outro só que agora Vai ser na chave e-mail e esse aqui vai ser na chave e esse aqui debaixo vai ser na chave avatar o avatar url são botar url de tal forma que quando eu clicar em salvar se tiver tudo válido ele vai entrar aqui e nesse ponto aqui logo depois do seive eu tenho o meu form-data com todos os dados que eu preciso daqui eu consigo chamar o
meu pro vai ver para salvar o usuário que foi registrado a partir desse formulário então aqui eu posso chamar o provar ele Pro vai ver na verdade eu vou chamar aqui ó e usar e o joaquim diouser recebe provar eu posso chamar direto não precisa nem colocar aqui questão de usuário né então continuação provaider ou talvez o pai né pronto ó complex ao gaming se eu vou chamar direto sem armazenar uma variável tenho que resolver os genéricos aqui só importar pro vai ver que que vai ser líder e aqui eu tenho como chamar o método
sul passando um novo usuário eu Vou distanciar agora então eventualmente dentro do meu mestre vai ter wide também tá então fazer o seguinte ó aí de vai receber form-data pegando o agir vou ter que mais além do jardim amei você aqui o e-mail e finalmente vou ter o avatar url só importar aqui o usuário aqui vale se alimentar que você só entraria nesse ponto e todo formado tiver válido e você pode aplicar validações nos outros campos eu vou ficar forçando a barra aqui para ficar testando como e sem tal Só pra gente não complicar muito
aqui os testes mas nem na verdade vir com que caiu muito né só você colocar aí as validações garante que ele só vai chamar aqui quando realmente vem um usuário válido então para gente testar agora a única coisa que eu vou fazer aqui porque nesse caso a gente precisa ter um provaider e não vai se notificado aqui a gente vai ter que usar ele como sendo falso tá e também a gente não precisa que nesse ponto nosso provável esteja é Modificado possa colocar uma vídeo aqui só para formar para dirigir o açúcar aqui dentro legal
então salvando vou dar só um reflexo aqui na minha aplicação para ter certeza tá tudo atualizado e eu vou clicar para adicionar eu não apliquei validação em todos os campos né mas não falei vocês podem aplicar aí vou colocar aqui rebeca vou usar a classe rebeca arroba aluno.com.br e gozar essa mesma imagem de vou usar outra só para ficar diferente você vê Que realmente ele tá pegando com outro embaixo voltar aqui rapidinho para pegar esse aqui ó pronto ficar com o direito para abrir aqui uma nova janela eu vou selecionar ela e vou aqui você
pode clicar com o cursor do mouse e segurar um pouquinho soltar que ele vai marcar essa opção aqui ó de peixe eu vou jogar salvando você vai ter que mais um elemento a rebeca rebeca rouba aluga.com.br ou seja a nossa inclusão está funcionando pessoal agora nós vamos Implementar a alteração ou seja o clicar aqui nos ícones eu quero que até ela vinha preenchida para que a gente possa alterar os dados deste usuário e salvar ele mexer nos dados do usuário correto que foi passado como argumento a partir das navegações já fez isso quando dentro do
nosso e userstyle nós temos o metro que vai fazer navegação pegando usuário daquele taiyou edina maria rafael fernando guilherme suplicar vai pegar esse usuário passar o mar gumento para Outra tela eu preciso pegar esse elemento que passaram como argumento dentro do nosso componente de userform preciso fazer aqui a festa importante e até agora não mexi isso ainda mas você tá trabalhando com dado apesar de que eu coloquei o map como sendo pai não eu tô sempre mexendo nos dados do formulário aqui né da que esse form data que é esse map o ideal quando você
trabalha com dados que tá sendo modificados dentro do elemento é Você trabalhar com texto seja converteu alimento para um tipo space for para daí você trabalhar esses dados estão sendo modificados por mais que eu coloquei mepco no final conteúdo do médico tá sendo alterado então é importante de ter esse cuidado eu vou continuar aqui com os dentes depois a gente conversa para station é que eu vou fazer agora nós vamos pegar o dado que foi passado via rota como é que eu pego esse dado aqui ó dentro do meu bild eu vou pegar aqui alf
Não e usa recebe o pegar aqui ó modal haut ton of compras ó e aqui eu vou chamar o série série ponto barra dentro de séries e o argumento e aqui eu posso ou fazer um é user posso fazer aqui um teste quando eu posso colocar a própria variável como cena de usar então posso colocar aqui ó a gente fazer essa blusa posso dizer que essa parada do tio zé e ele vai fazer essa conversa automaticamente legal uma vez que eu tenho usuário aqui é que eu Posso fazer eu posso só mostrar aqui para você
só que ele vai mostrar o usuário que ele vai existir usuário eu voltar aqui deixa eu mostrar aqui o meu depois console vou clicar aqui vou ficar aqui no rafael distância de usuário se você quiser pegar por exemplo usuário ponto name ele vai mostrar o nome de usuário vou voltar ao clicar aqui em mostrar fernanda ou clicar aqui para mostrar rebeca vou ficar aqui vai mostrar a maria legal como é que eu faço E esses dados preenchidos nesse caso a gente pode criar aqui método por exemplo aqui é load do form data que recebe o
i user usuário arquivo de usar e aqui eu posso chamar esse método também pode ser um metro privado que loures e aqui ó load data vou passar o usar e aqui dentro ele vai pegar os dados do usuário vai jogar dentro de forma hidrata então faz o seguinte ó form-data pegando quaid vai receber exatamente de usar ponto agir vou fazer isso para os Outros atributos coloquei demais aqui mas beleza name o outro vai ser o e-mail e finalmente aqui avatar url apagar esse último só que isso não é o suficiente porque porque eu ainda preciso
colocar associado aos meus text form field qual é o valor inicial e aqui tem um atributo chamado initial velho que eu vou apontar para form data e aqui no caso vai ser pegando nele eu vou pegar a mesma coisa que jogar tudo debaixo e vai ser o e-mail Substituir aqui por e-mail e a mesma coisa aqui embaixo pô avatar url avatar url salvando então quando ele entrar aqui por volta era os dados de forma e data de tal forma e ele vai colocar aqui dentro e como eu estou considerando meu valor inicial de forma e
data ele vai mostrar os dados preenchidos deixa eu ver se ele não vai mostrar nem e rotina console deixa eu limpar aqui ou navegar para maria ver os dados preenchidos vou colocar aqui maria alterada então vou Salvar e ele mexeu aqui na maria alterada ficando aqui na fernanda fernanda alterada trocou salvar trouxe fernando alterada rebeca rebeca alterada é um salvando conseguir alterar ela o seu é um refri aqui na aplicação e vai tirar os dados que foram invocados e qualquer alteração também vai ser perdido porque os dados estão em memória e foi o que aconteceu
aqui em outra coisa que eu vou querer fazer aqui para não gerar nenhum tipo de problema é só Alterar isso aqui se o usuário for diferente de nulo né então por exemplo aqui se o iuser foi diferente de novo aí sim eu vou pegar essas informações aqui e carregar dentro do meu médico caso contrário eu não quero fazer nada porque no caso de incluir eu quero que o incluir continue funcionando né então coloca naquela teste vou passar aqui por segundo set o tabi não funciona por padrão você tem que trabalhar também essa questão do foco
na não vou mostrar Muito aqui não é muito propósito mas não é tão difícil de fazer não então preste arroba teste.com.br tem um salvando ele vai colocar aqui mais um elemento ou seja além de tá funcionando há algum tempo e continua funcionando eu tirar isso como os vai estar duro ele vai tentar acessar o no e vai dar um problema na aplicação então você precisa verificar para ele só fazer o carregamento das informações informe datas de usuário estiver diferente de Novo isso agora fazer a exclusão do usuário é muito simples né a gente vai fazer
essa exclusão dentro do ios style que é esse componente que tem esse botão e vai fazer a exclusão então aqui dentro a gente já tem como acessar aqui eu não sei se eu tenho eu não tenho provar né mas é simples eu não preciso me preocupar posso simplesmente fazer pior provar né então vou importar ele ponto ó conto é nesse caso eu não preciso é teu lição verdadeiro não vai ter nenhuma Mudança na verdade posso colocar o líquido pro se falso e aqui eu posso resolver os genéricos para ele pegar o user exatamente que eu
que ó e aqui no caso posso chamar o método rimou passando eu vou passar acho que o próprio usuário aí é o próprio usuário poderes eu aqui também aqui eu já tenho usuário então posso passar o usuário para cá ele vai excluir usuário então salvando eu vou já colocar um confirmação tá então aqui no caso e não Vai confirmar é simplesmente fui colocando como aqui ó esse provaider não precisa ser notificado mais o provar da lista aqui em cima acreditar usando ele vai ser notificado por isso que esse provado aqui ele vai realmente ser notificado
e ele vai fazer com que a nossa lista seja modificada por que esse elemento depende do provaider eu estou dizendo que nesse caso aqui ele vai querer escutar as alterações que acontecer dentro de user tá então não é O fato de que a ação foi chamada a partir de uma lista em falso ele não vai notificar os outros pro vários então aqui ó vou clicar excluiu will eu exclui eu vou dar um reflete aqui na aplicação para ele trazer tudo então agora em vez de ele excluir direto eu vou querer que ele conseguiu me a
partir de um dialog e para isso existe um método chamado show da alog e é que eu vou fazer o seguinte um texto eu vou passar o próprio conta que eu tenho aqui Acesso a colocar aqui um ponto e vírgula dentro desse dalog nós vamos definir aqui builder que é o médico que vai receber um contexto e aqui eu vou retornar um a leste da alog nós vamos criar que ele para que a gente consiga mostrar para o usuário sim ou não e a partir daí usuário vai definir se ele vai querer ou não excluir
tá então aqui o título vai ser fresco ir usuário voltei em relação ao conteúdo ao contém também o valor textual aí vou colocar Aqui tem certeza o e finalmente nós vamos ter as ações as acham que eu vou colocar um oeste batom e aqui coloca essa meu amigo não tem informação direitinho quando você não coloca essa última vírgula ele formata numa linha só quando você colocar a última vírgula ele meu que ajuda a formatação tá eu vou ter dois white button um que vai vai ser um texto como um filho que vai ser ou não
não não quer excluir vamos colocar com você no Primeiro botão e e aqui eu vou simplesmente saí fechar esse meu diálogo vou dar uma foto como é que seja log e eu vou criar aqui um outro botão que eu vou duplicar só que agora com sim e dentro desse botão a gente vai chamar o provaider então provar ele que vai fazer exclusão só vou chamar ele dentro eu tô sim então formatando vou mostrar para você já uma outra forma que também é possível fazer e aqui não não a única coisa que eu vou querer fazer
é chamar o Navigator um jeito com more complex eu vou chamar o método de pop pop faz com que ele fez se odalog e aqui na confirmação de quando você chamar o mestre sim vou até colocar o leite aqui pra cima e eu levo para cima aí eu também preciso chamar o pop para que ele possa fechar mesmo depois de excluir eu quero fechar o meu dai logo não formatando salvando de agora clicando ó eu até me excluir usuário tem certeza não não tenho Certeza pa tomou top e fechou barra logo continua nessa tela ligando
aqui tem certeza assim aí ele vai excluir e vai chamar o top e volta para a tela anterior mesmo que eu entro no formulário mesmo que eu volte continua ainda tendo os três elementos quero excluir sim voar assim ele confirma o outra forma que você tem o que esse método achou da alog só para finalizar a minha necessário mas só para mostraram esse método ele vai retornar ao fischer E aqui ó ele vai retornar o filtro no caso daquilo que eu retornar a partir do pop eu posso dentro do contexto de filter invocar aqui um
método bem e se eu quiser retornar por exemplo verdadeiro ou falso determinado valor eu vou receber esse valor aqui dentro dessa função então por exemplo no pop do sim eu posso retornar aqui ó eu e no pop do falso eu posso rei do pop do não melhor dizer não posso retornar um falso e esse valor que foi passado aqui para o pop Vai ser passado nos dentes quando o usuário fechar modal então quando o usuário fechar a modal eu passei falso no caso não e passei entrou no caso quando o usuário clica em cima aí
aqui eu posso simplesmente ou já que esse valor passado não falou verdadeiro ou falso então que eu posso até colocar no mais significativo como confirma seja confirmou se o usuário confirmou o depósito chamar ou provaider ponto of a contax e aí um provérbio the user's Aqui para pegar tinha ela que usar ponto formou o usuário selecionado dentro deste componente tão aqui também a outra possibilidade ou seja na no próprio flat button você vai chamar simplesmente navigator posso dar transformar isso aqui no maior fã tion então são aqui não era tirar e o ponto e vírgula
a mesma coisa aqui em cima só que obviamente nesse caso a gente vai retornar falso então colocar falso seja não falso sim é verdadeiro e se for confirmado você Chama a exclusão que no método de no já e esse show da alog retorna um filtro como ele retorno filtro esse método de no só será chamado quando o usuário fechar alok e o que você retorna na loja e aquilo que você quiser você pode retornar uns 30 que pode retornar uma lista de e pode retornar e lava o que você criar um formulário a partir da
bahia login você quer retornar todos os campos do formulário você pode retornar e caso Usuário feche sem confirmar você simplesmente a torna vazio ângulo então você tem a flexibilidade que você quer para retornar aquilo que você quiser legal então aqui ó só pra testar vou clicar não vou confirmar ou clicar aqui e confirmar e não exclui o rafael deixou só dar um reflexo aqui para ter certeza tá tudo ok vou clicar aqui no guilherme vou excluir ele não excluiu olhar aqui no console para ver então nesse caso ele tá pedindo para eu colocar o líquido
Para falso porque no ponto que ele foi definido ele está fora da árvore de componentes tá como é que tá a fora da área de componente eu preciso definir a aulicino para falso então legal é até melhor que nesse caso não precisa realmente doença de sendo falso a vou só formatar aqui para ver se ele volta um pouquinho fora aqui da tela mas sem bom então o clicar aqui não quero confirmar sem problema ligando confirmando ele vai excluir tá então é Isso nós fizemos o nosso cadastro com alteração exclusão o resetar aqui para ele botar
nossa lista e fizemos a lista a alteração inclusão alteração e exclusão que você aprendeu como desenvolver um cadastro dentro do sua tem muitos conceitos importantes foram abordados embora eu não parei para explicar cada um deles em detalhes como eu faço no curso mas com certeza você desenvolver essa aplicação vai te ajudar muito a entender como planta funciona Então a gente finalizar só para mostrar aqui para vocês ó ó que é possível converter o nosso componentes textiles um componente stateful para isso já tem uma refatoração pronto como de ponto em cima do nome state lei se
você tem a possibilidade de converter para uns textos e com isso a gente pode usando 1,5 de vida não o init state não dá certo nele tá eu tenho 1 m o e tate que você poderia usar mas isso aqui não é o adequado para esse caso a Gente tem um cara chamado de gente se dependesse no caso do planta ele tem várias árvores não entre muito mais detalhes no curso falando da árvore de widget sabor de elementos e o estado ele permanece mesmo quando há uma atualização na sua interface gráfica então esse método vai
ser chamado no momento certo e aqui a gente pode passar tanto para pegar aqui o argumento que foi passado na navegação você consegue pegar ele aqui como você também consegue Chamar o longe form-data não é interessante você mexer nos dados do estado diretamente dentro do bild porque isso pode gerar um bill de definido tá então ele é ar você fazer aqui dentro então tanto peguei o usuário como peguei aqui o fórmula de data significa se ele carregou corretamente a gente vai conseguir ter o nosso formulário carregado com celular vou dar só um reflexo aqui para
ter certeza que tá tudo ok a nossa aplicação está Atualizado ou carregou corretamente então fernando é alterada automec salvar fernando alterada eu vou colocar aqui um novo então ou navegar aqui por e-mail novo arroba novo.com.br ponto com.br eu vou deixar o avatar sem nada cadastrou novo a exclusão não tem a ver formulário mais continua funcionando perfeitamente pessoal chegamos no final de mais um vídeo do canal da corrida espero sinceramente que vocês tenham gostado Desse projeto acho muito importante aprender via projetos né uso de projetos no aprendizado da programação é fundamental para o crescimento de qualquer
programador por isso eu acho muito importante você principalmente aqueles que pararam e foram desenvolvendo projetos junto comigo porque isso sem dúvidas vai te ajudar muito no teu crescimento profissional compartilha esse vídeo se ele foi relevante para você assim no canal marca O sininho coloca algum comentário para dizer o que é que você achou do projeto e nos vemos no próximo vídeo