Banco de dados off-line em Flutter | Android e IOS | Rahul Agarwal | Skillshare
Menu
Pesquisar

Velocidade de reprodução


  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x

Banco de dados off-line em Flutter | Android e IOS

teacher avatar Rahul Agarwal, Flutter Developer & Trainer

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      INTRODUÇÃO DO CURSO

      1:03

    • 2.

      Vídeo 1 Começar com o Hive

      19:04

    • 3.

      Vídeo 2 Como entender métodos de colmeia

      7:20

    • 4.

      Vídeo 3 Implementando CRUD

      7:56

    • 5.

      Conceito de adaptadores de tipo

      12:25

    • 6.

      Vídeo 5 Construir um aplicativo Todo

      16:38

    • 7.

      Atualização de vídeo 6 e exclusão todo

      10:02

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

147

Estudantes

--

Sobre este curso

Como armazenar dados localmente e persistir entre lançamentos de aplicativos é um dos conceitos fundamentais de qualquer processo de desenvolvimento de aplicativos para celular. Quase todos os aplicativos precisam lidar com dados - desde armazenar informações dos clientes em um aplicativo de entrega de alimentos, até o número de pontos marcados em um jogo ou um valor simples para entender se o usuário se ativou no modo escuro durante sua última visita.

Hive é um banco de dados rápido, leve NoSQL para aplicativos de flutter e dardo. O Hive é realmente útil se você precisar de um banco de dados de valor chave sem várias relações e realmente simples de usar. É um banco de dados offline (armazene dados em dispositivos locais). Não tem dependências nativas (é executado na Web Flutter!) pode ser a escolha ideal. Colher todos os estágios defendidos por Flutter.

Vamos explorar o Hive DataBase com TypeAdapter em Flutter. Também vamos implementar um programa de demonstração, criar um aplicativo para uso usando pacotes de colmeias e usá-los em aplicativos de flutter

Por que Hive DataBase?:

  • É o banco de dados mais eficiente em termos de velocidade e desempenho em comparação com SQFlite e SharedPrefrences. compartilhadas

  • Ele fornece uma maneira simples de executar operações básicas (CRUD).

Vantagens:

  • Plataforma cruzada: como não há dependências nativas em Dart puro — dispositivos móveis, desktop, navegador

  • Alto desempenho.

  • Encriptação forte incorporada.

  • SEM dependências nativas.

Conheça seu professor

Teacher Profile Image

Rahul Agarwal

Flutter Developer & Trainer

Professor

Hello, I'm Rahul. I am skilled in building cross platform application using Flutter. I am freelance developer as well as conduct workshops to share my knowledge with the community.

Visualizar o perfil completo

Level: Intermediate

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Introdução ao curso: Novamente, muitas opções de banco de dados na foto, mas não é necessário que sempre desejemos armazenar usuários. Eles acham que o servidor. Haverá cenários que queremos armazenar os dados localmente no dispositivo do usuário AT para que seja uma maneira mais rápida e conveniente de recuperar essas informações. Uma vez que esse exemplo será preferência do usuário pelo modo escuro ou leitmotif, muitos bancos de dados em chamas. Mas entre eles, eu era HIV. O Hiv é um banco de dados de chave-valor leve que suporta desktop móvel e plataforma web. Podemos salvar dados de tipos primitivos, como strings, booleanos, em objetos personalizados complexos. Neste curso, abordaremos tudo o que é necessário para começar com o HIV. Vamos entender conceitos como executar operações crud, o que esse tipo adota. E, finalmente, crie um aplicativo básico de tarefas para que possamos executar praticamente tudo o que aprendemos até agora. Não vamos perder mais tempo e rolar agora, espero vê-lo nos tribunais. 2. Vídeo 1 Introdução com o Hive: Oi. Neste módulo, vamos falar sobre algo em você que é chamado HIV. Então HIV é um rápido, banco de dados NoSQL leve para a Flórida e aplicação pai. O HIV é realmente útil se você precisa de um banco de dados de valor-chave simples sem inúmeras relações e verdadeiramente simples de utilizar. Ele precisa de um off-line, o Ws, que significa que ele armazena dados no dispositivo do usuário em vez de prata como Firebase. Então, quando precisamos acessar alguns dados dentro do Firebase, então obviamente precisamos de conexão com a internet. Mas o HIV é armazenado no dispositivo do usuário. Isso significa que ele pode acessá-lo quando você quiser, onde você quiser. Não em qualquer lugar porque ele teve que acessá-lo apenas em seu dispositivo. Então isso é uma desvantagem porque se o usuário login com a conta wikis em outro dispositivo, então os dados não seriam síncronos. Então, obviamente, o HIV é usado para seus próprios propósitos e você vai começar a entendê-lo passo a passo. Agora, a questão surge é por que banco de dados de HIV? A primeira coisa é, é o banco de dados mais eficiente em termos de velocidade e desempenho em comparação com sinalizador SQL e preferência compartilhada, eles também são bancos de dados off-line. Então, quando comparado com aqueles com ele é mais rápido. O segundo benefício é que ele fornece uma maneira direta de executar as operações brutas básicas. Então você não precisa aprender muitas coisas que a sintaxe é muito simples. E o terceiro é, uma vez que não há dependências nativas em seus dados. Assim, ele pode ser facilmente usado para celular, desktop e navegador. Tão alto é suportado por todas as outras plataformas também. Então, basta, eu acho que para os Curie, devemos mergulhar diretamente em tentar esta tecnologia por conta própria. Para isso, Vamos criar um novo projeto flutter. Vá para o diretório, então, traga sua linha de comando e apenas crie inundação. Criar base de dados. Está bem. Agora você pode ver que o projeto foi criado. Traga VS Code e anexe projeto aqui. Basta anexar pasta, colmeia, banco de dados, assim. Soma. Antes de enviá-lo no modo de depuração, eu gostaria de adicionar essas dependências que são necessárias. Então, vá para um navegador Chrome. E aqui no pub dot surdo primeiro tipo. Então, aqui, você precisa apenas copiar as dependências. Agora vamos e vá para Arquivo e colado. Segundo é o HIV mais lisonjeado. Por isso, é necessário implementar o banco de dados na Flórida. E antes disso, você também pode ir e verificar a documentação do HIV, se você quiser. Veja aqui, aqui é mencionado água que as dependências são o, como é feito. O mesmo. Vou explicar tudo de uma maneira mais simples. E essa terceira dependência é apenas provedora. Em seguida, vá e instale-o. Está bem. Agora que três dependências estão sendo instaladas. Ubuntu Main.jack. Certifique-se de que você tem o emulador em execução e simplesmente clique em Iniciar depuração. Definitivamente levará alguns minutos dependendo do seu sistema. Como sempre. Gostaria de explicar por que usamos esse provedor de peças. Então o provedor de peças é usado para obter que os aplicativos para o local para armazenar dados. Ou seja, como já mencionei, que esses dados serão armazenados no dispositivo do usuário. Então vamos armazenar esses dados no mesmo local. Nosso aplicativo de projeto de banco de dados Hive, que é este aplicativo Android no aplicativo iOS será instalado. Então lembre-se disso. Agora. Agora, se você quiser, você pode verificar todas as dependências. Leia Me e saiba mais sobre por que estamos usando o HIV. Vou esperar mais alguns segundos para que nosso projeto esteja funcionando. Até lá. Eu também lhe daria um exemplo de vetor v usaria os dados Hive com supor em configurações como o pai modo escuro, se você tiver usado algum portão de ativação é algo chamado modo escuro ou modo noturno. Então a preferência de dose fez são as preferências do usuário. Podemos salvá-lo, digamos, os usuários próprios dispositivos. Ou seja, se o modo escuro é verdadeiro ou falso, são também o que é o ID de usuário do usuário? Podemos apenas fazê-lo no banco de dados do Hive para que ele possa ser usado facilmente. Numerosos exemplos. Mas acho que mais e mais você entenderá quando criarmos projetos. Neste momento, o nosso foco é apenas para garantir que entendemos os conceitos básicos corretamente. Como de costume. Está tomando um pouco mais de tempo. Não, então, eu gostaria de mostrar-lhe o próximo passo da nossa implementação. O próximo passo é inicializar. Então aqui, você pode simplesmente ter que inicializar o esconderijo. Na seção. Ou seja, antes do nosso aplicativo estar em execução. Temos de ter a certeza de que o nosso código de VIH está a ser inicializado. Ok? Você pode ver que nosso aplicativo está prestes a, prestes a ser instalado em nosso emulador. Sempre leva um pouco de tempo. Ok, veja, o projeto está pronto. Agora é hora de inicializarmos o HIV. Então temos que ir para o ponto principal, ponto na função principal, apenas torná-lo uma pia. Então, como sabemos, se queremos inicializar qualquer coisa antes que o aplicativo esteja em execução, temos que escrever esta linha de código, widget, ligação de dados flip tem garantir inicializado. Em seguida, o segundo não teria é que diretamente onde os dados estão sendo armazenados. Aguarde, consiga o pedido. Documentos, diretório como este. Isso vem de mas provedor. E este diretório vem desse I/O de dados. Agora segundo, o próximo passo é inicializar HIV, HIV dot init e depois mochila. E essa mordida será nosso diretório de pontos. É isso. Assim, desta forma, a inicialização é feita. Agora, a próxima coisa que eu gostaria, que eu gostaria de discutir é o conceito de caixas. HIV armazena seus dados em caixas contendo conjuntos de valores t. Antes que você possa ler ou compor dados, uma caixa deve ser aberta. Caixas podemos acrescentar com um peso, com apenas uma sintaxe básica como o HIV dot append box. Todos os dados armazenados em altura são caixas de entrada organizadas. Por isso, vou dar-vos um exemplo. Suponha que em nossas tabelas, isto é, quando temos um banco de dados, banco de dados SQL, existe um conceito chamado seixos. E quando estávamos usando o Firebase, então tivemos o conceito de coleção. Então perna que só você pode comparar uma caixa. Basta lembrar, uma caixa não tem um estruturado e pode conter qualquer coisa. Então você tem que se lembrar disso assim. E 40 exemplo do mundo real, eu vou dizer a caixa de um usuário ou a caixa de configurações, são essas mensagens enviadas caixa, se você quiser, você pode criar. Agora, vamos criar nossa primeira caixa. Então, como eu disse antes, você pode usar seus livros, você tem que anexá-lo e também dar-lhe um nome. Simplesmente entenda isso como um nome de banco de dados. Isso carrega todos os seus dados do armazenamento local na memória principal para acesso imediato. Então aqui, se eu for e escrever HIV, HIV dot append box, assim, eu tenho simplesmente acrescentar sua caixa. E depois disso, estou executando meu aplicativo. Além disso, lembre-se, não é obrigatório anexar uma caixa no arquivo principal. Você pode fazer isso em qualquer lugar. Basta lembrar de anexar um arquivo, isso em uma caixa bem no início e depois Let você pode usá-lo. E nosso aplicativo também não está mostrando nenhum editor agora. Então é uma coisa boa. Sob plugins estão funcionando perfeitamente. Então agora vamos criar nossa primeira tela. Vá para a pasta lib e crie um arquivo. Dê o nome de tela inicial, ponto-ponto. Está bem. Agora importe material. Em seguida, um widget stateful, nomeá-lo tela inicial. Então como realmente Dennis andaime, aquele bar AB. Eu lhe daria uma mensagem. Hive DB. Em seguida, no corpo, vamos ter um recipiente. E esse contêiner, eu daria a ele a largura da largura do dispositivo que esta consulta de mídia que fora contextos que diz essa largura. E brilhe. Eu daria uma coluna. Agora, simplesmente eu criaria uma interface que nos ajudará a entender que as operações crud. Criar, ler, atualizar, excluir, fazer esta coluna. Vou dar-lhes acesso alinhamento S e desolado sob widgets são centrados. Dentro dessas crianças. Vou criar botões elevados, botões iluminados. Então o primeiro botão será 38. Então eu vou apenas copiá-lo e colá-lo várias vezes assim. E depois o segundo, gosto muito de ler. Vou escrever atualização e para não relacionados. Então agora salve-o e vá para o ponto principal. E no meu widget de aplicativo, basta remover tudo abaixo. Aqui está a minha página inicial e sabemos que não precisamos dos códigos. E dentro da propriedade de casa, vou escrever tela inicial, que é a nossa própria tela inicial, e depois reiniciar. Vamos ver. Então nossa saída está aqui. Temos a Alda para os botões. Então, definitivamente, como qualquer outro banco de dados, haverá operações crud no HIV, que discutiremos nos próximos vídeos. Obrigado. 3. Vídeo 2 entendendo métodos hive: Então temos o IQR do pedido de crédito pronto. Mas antes de implementar todas as funcionalidades, gostaria de discutir e entender os métodos do HIV. Porque teoricamente também devemos saber quais são os diferentes, diferentes funcionalidades banco de dados Hive nos dá. Então, primeiro é levantar caixa de entrada. Então, no último vídeo, começamos ou inicializamos uma nova caixa com o nome deles fora amigo. Então, obviamente, se precisarmos se precisarmos dessa caixa ou dos Ws em suas telas posteriores, sejam telas detalhadas ou onde quer que seja. Portanto, não precisamos anexá-lo novamente, novamente, a fim de armazenar ou recuperar dados. HIV armazena uma referência a todas as caixas de acréscimo. Se quisermos obtê-los todos prontos, acrescentar caixa, podemos usar isso abaixo sintaxe. Então aqui você pode ver caixa var é igual a caixa de pontos HIV e o nome da caixa, no nosso caso, será caixa, ou seja, fazer amizade. Da mesma forma, uma vez que uma caixa está aberta, se quisermos, podemos fechar uma caixa também. Então, se você não precisa da caixa, de novo, você faz perdê-la. Vou lançar chaves e os valores da caixa serão descartados da memória. E o arquivo da caixa está fechado. Depois que nossas operações ativas de leitura e gravação estiverem concluídas. Além disso, lembre-se que é perfeitamente bom deixar uma caixa anexar pasta, executar o aplicativo. Se precisares de uma caixa outra vez no futuro, deixa-a aberta. Em palavras simples, suponha que temos apenas uma tela que estará usando essa caixa na missão de frente. Nessa tela, você pode descartá-la porque essa caixa não é usada por outras telas. Mas se essa informação é usada aplicação sábia, é em páginas mais antigas estão na maioria das páginas que eu, então, eu acho que não é aconselhável fechar a caixa. Lembre-se, você tem que fechar a caixa em que descartou meu widget stateful da sede. E a sintaxe é HIV ponto próximo. Ou se você quiser fechar uma caixa em particular porque o ponto HIV fechar fechará nas caixas. Mas se você quiser fechar apenas aquele amigo caminha, você pode apenas escrever diretamente caixa de pontos do HIV de Bach, então o nome da caixa pistas como essa. Agora, depois que a caixa é aberta, temos que inserir dados dentro dela? Então, se precisar armazenar dados, pode usar a referência à caixa de HIV e colocar meus 10 nela. Este método aceita um par de valor de chave. Então, aqui você pode ver saída de ponto de caixa e, em seguida, chave é nome, e valor é John. É assim que inserimos um dado. Agora, o HIV também suporta chaves de número inteiro para que você possa usar chaves de incremento automático. Em. Isso pode ser útil se você estiver armazenando vários valores tipo de semelhante a uma lista e um para recuperar por seus índices. Isso são índices. Você pode armazenar perna. Isto é, esta é a sintaxe. Você pode reduzir diretamente o ponto da caixa e eu coloquei pessoa. E agora isso é Adicionar e ele irá armazenar esse valor no índice a partir de 0. Então você pode vê-lo como um mapa e uma lista. Este é um exemplo muito bom porque o HIV também usa esses tipos de dados. Riso inserindo dados, temos que recuperar os dados também. Para ler dados, você pode usar esse GetMethod no objeto caixa. Você só tem que fornecer o nerd para recuperar seu valor. Como var, o nome é que vamos fazer ponto caixa, obter e, em seguida, nome. E como você pode ver, nome é a chave dos dados. Então é assim que você recupera informações do banco de dados do Hive. Agora, a próxima coisa que é importante é atualizar os dados. Para atualizar esses dados de uma determinada chave, podemos usar o mesmo método PUT que originalmente usamos para armazenar o valor. Isso atualizará o presente que a chave com o valor recém-fornecido. Então eu camada usamos Box dot colocar o nome é John. Agora podemos usar diretamente o nome do ponto Caixa vai fazer. E esse valor anterior será substituído. Da mesma forma, se você estiver usando valores de incremento automático, podemos usar que colocar no meu 10 para um lance seu valor presente dentro desse índice particular. Você pode ver o ponto da caixa colocado na posição 0, Jennifer. Então é assim que atualizamos dados em um banco de dados. Outra última milha, que é muito importante, é excluir dados. Para excluir os dados, podemos usar o método delete fornecendo essa chave ou excluir admitido fornecendo esse índice. Então cabe a nós o que somos, como estamos armazenando esses dados dentro da caixa de colméia. Se estivermos usando esse par de valor de chave, então podemos escrever diretamente Box Dot Delete e essa chave será nomeado. E se estamos usando índice, então podemos escrevê-lo acima. Inicie a exclusão na posição 0. Então esta é a teoria ou faz a próxima desse crédito, é assim que podemos executar esse crédito. E como eu digo, HIV é muito fácil porque você pode ver todas as palavras-chave são, os métodos são apenas simples. Box dot get, Box dot, put, brejos, Dot, Deletar. Então isso não é algo complexo para se lembrar. Então é isso. Para este vídeo. No próximo vídeo, implementaremos conceitos de Alda que entendemos aqui praticamente. Obrigado. 4. Vídeo 3 a implementação de CRUD: Oi. Então agora sabemos todos os conceitos que são necessários para a realização de operações crud no HIV e também construíram essa IU realmente básica. Para o mesmo propósito. Vamos implementar métodos de HIV em nossa tela inicial. Então vá para a tela inicial ponto, ponto. E aqui, vamos criar algumas variáveis. E a primeira coisa que eu faria é pegar a caixa de apêndice. Isto é, obter a referência desta caixa. Então, vou dar um nome a ele. Caixa de amigo é igual ao HIV. Caixa de pontos do HIV e nomeie. E então o nome era amigo. Então temos que usar o mesmo nome da caixa. E depois disso, a segunda será uma string que pode ser nula também. E eu vou escrever o nome da variável é nome. Este, será o nome do amigo, que é armazenado dentro desta caixa. Agora vamos criar alguns métodos como e amigo. Faça-o síncrono. Em seguida, o segundo método será obter amigo. Terceiro será o amigo e para a frente quando apagarmos amigo. Ok, então estes são meus lápis adquiridos. Agora, o que eu quero é quando um, quando clicamos neste criar, este add friend é executado e um valor está sendo armazenado nessa caixa. Então eu vou simplesmente escrever um ponto caixa amigo peso colocar. Então, para inserir dados que, eu estou usando colocar porque eu vou dar-lhe uma chave é quando chave será o nome e onde você será Bill Gates. Está bem? Agora, terminamos de adicionar um amigo. Quando um usuário clica nesta leitura, então eu quero que este get amigo para ser executado. N, armazene esses dados dentro. Em seguida, nomeie variável. Para isso eu tenho que escrever. Nome é igual a amigo caixa ponto get, e essa chave será nomeada. Então, pelo mais cedo que discutimos, temos que usar esse ponto, pegar minha etiqueta. E o que eu vou estar fazendo é assim esta variável é que os dados estão sendo armazenados nesta variável, eu vou definir este estado para que o UA é renderizado e, em seguida, variável nome pode ser mostrado na tela. Agora, para o quadro de atualização, vou simplesmente escrever aguarde caixa de amigo. Coloque dentro do nome da chave. Escreverei Elon Musk. É isso. Mas é assim que atualizamos. E simplesmente para a concha, então eu vou escrever um grande amigo Box Dot Delete, e chave é nomeado. Então nós mencionamos que uma chave aqui nesta função add friend. E depois disso, estávamos apenas usando essa chave para obter atualização de desvalorização ou excluir o valor de dados. Então nós temos nossas funções Pronto é tempo v. Certifique-se que aqueles estão sendo executados por esse botão Connect. Isso é quando criamos o concreto, ele deve pensar que deve ser executado. Nós adicionamos amigo. Então. Segundo é pegar amigo, que deve ser executado. Quando Redis clique em Atualizar amigo. Como este. E comida é deletar amigo. Então os botões agora estão conectados com essas funções. Está na hora. Vou mostrar-lhe texto no topo, como texto. E aqui simplesmente chamado variável. Agora vamos reiniciar e verificar se tudo está funcionando bem. R-naught, nosso aplicativo Cloud está pronto para ser testado. Então veja no início, a chave de nome Don tem um valor nulo. Agora, se eu clicar no botão Criar, o que deve ter centavos? O nome Bill Gates deve ser armazenado nessa variável de nome que é chamada chave. Agora, se eu clicar em ler, que ele deve ser atualizado com o nome. Vamos ver. Você pode verificar. Isto está a funcionar perfeitamente. Bill Gates está lá. Agora, se eu clicar em atualizar, ele deve ser alterado para Elon Musk. Se eu clicar nele e, em seguida, clicar em Ler, veja, Elon Musk está lá. Isso significa que vamos receber está sendo atualizado com Elon Musk. E, finalmente, se eu clicar em excluir, esses dados são excluídos e quando eu clicar em Ler, ele está mostrando novamente nulo. Então é assim que as operações de HIV cru funcionam. E esse banco de dados foi instalado somente no dispositivo do usuário. Então é isso para este vídeo. Nos próximos vídeos, falaremos mais sobre o HIV e suas outras características. Obrigado. 5. Vídeo 4 conceito de adaptadores de tipos: Bem-vinda. Nesta sessão, vamos falar sobre o conceito de adaptadores de tipo. HIV nos permite armazenar a maioria dos tipos padrão. Isso é uma corda no mapa digital, pelo menos o tanque. Agora, quando estamos construindo aplicativos do mundo real, teremos classe modal para nossos dados, já que isso torna o desenvolvimento muito mais simples e rápido. Os atrasos que esses tipos de modelo precisamos usar adaptadores de tipo, que faz com que são, o que ajuda a codificar e decodificar nossos dados para forma binária. Na nossa mesa. Os adaptadores de tipo podem ser escritos manualmente, são gerados automaticamente. É sempre melhor usar a geração de código para gerar os métodos necessários, pois ajuda a evitar qualquer erro que possa ocorrer ao criar o código manualmente. Vamos gerá-lo adicionando gerador de HIV e natureza selvagem em que dependências dev em Pub spec que arquivo YAML. Então traga seu Chrome para fora. E aqui, simplesmente escreva. Isto é, como você pode ver, Janet passo editores adaptadores para armazenar qualquer classe. É cópia. E vá para o Iêmen. Desculpe, dependências internas de desenvolvimento como esta. E segundo é construir um corredor. Basta copiá-lo e instalá-lo em que dependências de desenvolvimento. Lembre-se, não interdependências porque isso é apenas para o propósito de desenvolvimento. Agora, está bem? Temos as dependências em pedra. Como eu disse, V pode precisar de classe modal. Então eu iria, eu vou estar criando um aplicativo de tarefas a partir de agora para que possamos entender o banco de dados do Hive mais corretamente como suponha que os dados de tarefas de hoje não são necessários para armazenar no servidor. Esses são pessoais apenas para o dispositivo do usuário. Dentro da pasta lib, basta criar um arquivo chamado todo ponto, ponto, ponto. E aqui, vamos criar uma classe chamada para fazer. Então. Ele não tinha um título e foi concluído ou não. E isso deve ser agora criar o construtor. E este ponto-ponto-ponto. Isto está completado. Então temos a nossa classe modal está pronta. É hora de gerarmos adaptadores para esta classe. O pacote genoma do HIV pode gerar adaptadores automaticamente para qualquer classe como esta, nossa classe. Há alguns passos para isso. Primeiro passo para gerá-lo, digite, sua classe favorita. Eu anoto com HIV Type e forneço um ID de tipo. Segundo passo é um adicionado todos os campos. Ou seja, esses campos que devem ser armazenados com preenchimento de HIV e corrida incansável dívida dos EUA correia é há um comando que temos que usar para que ele irá construir automaticamente uma classe adaptador para ele. E o quarto passo é registrar esse adaptador gerado. Então. Vamos começar a fazer isso. Vamos começar. Eu sei que eles não morreram classe modelo para usar a geração de código. Simplesmente. A primeira coisa que temos que fazer é importar. Então aqui temos hoje tipo e tipo ID, basta dar-lhe um. Em seguida, dentro dos campos que falharam e, em seguida, indexar apenas 0. Então, da mesma forma aqui, HIV, índice um. Então, desta forma, nossos dois primeiros passos são feitos. Isso é um adicionado o tipo de hive e fornecer um ID de tipo. E segundo é alphas anotadas, que devem ser armazenadas com campo alto. Agora 30 anos. terceiro passo é simplesmente trazer o seu terminal e tipo. E antes disso, você tem que escrever este código também. Mas, em seguida, dentro dele escreva o nome desta classe arquivando que este ponto todo, ponto, ponto. Então, isso será gerado automaticamente quando escrevermos este comando que está trazendo para fora o terminal e Flutter direita pacotes e pressione Enter. Vamos ver se está funcionando ou não. Porque eu não sei. Talvez tenhamos que parar de depurar e reiniciar. Ele vai funcionar diretamente porque como nós instalamos algumas novas dependências. Digamos que isso funciona, eu acho que algo está mostrando no console. Veja, está feito. Nosso adaptador está sendo aprendido, ou você pode dizer que ele está sendo construído automaticamente aqui, este ponto, ponto, ponto. E lembre-se, este é o adaptador e não temos que modificar nada no init. E este ponto g, g significa gerar como tipicamente transformar nosso adaptador Janet para esta classe. Então é assim que nós, como usamos dados de classe personalizados. E nós nos certificamos de que nosso como sobre uma colméia suporta essas classes também. Aqui estou eu usando esta classe Todo. Agora, finalmente, todos os passos que eu fiz, é hora de registrarmos este adaptador. Então, todos esses códigos geram um adaptador chamado adaptador de todo. Aqui você pode ir e ver este adaptador. E você deve registrar este adaptador de tipo antes de abrir a caixa. Isso está usando qualquer um dos sábios , produzirá um erro. Como estamos apenas usando uma única caixa. E você pode ver que estou usando essa caixa de amigos. Mas agora eu gostaria de primeiro registrar o adaptador aqui. E que com este código, que você pode verificar, por que ele não está funcionando. O registo que Percy. E dentro desse aplicativo que eu gostaria, eu iria apenas escrever adaptador Magnus. E depois disso, vou acrescentar uma nova caixa. Largura. Para fazer. Isto é, esta caixa irá conter apenas dois dados. Vou simplesmente acrescentar caixa e nomeá-lo. Vou apenas escrever. Vamos ver. Vamos salvar. E se nenhum erro está morto e funcionou corretamente. Ok? Então, registramos com sucesso nosso adaptativo também. Agora, neste banco de dados que está a fazer caixa, todos os dados serão armazenados. Deste objeto é todo objeto anteriormente era como valor chave, que é formato JSON, que agora será diferente. Então é isso para este vídeo. No próximo vídeo, vou criar um aplicativo básico para fazer usando flutter e HIV. Obrigado. 6. Vídeo 5 Crie um aplicativo de Todo: Ei, bem-vindo de volta. Então, no último vídeo, criamos com sucesso o adaptador para nossa classe Todo. Mas agora é hora de começar a trabalhar no aplicativo completo Todo. Longe que Vamos para essa pasta e criar um novo arquivo e nomeá-lo, adicionar ponto por-fazer. Então, basicamente, esta tela será usada para adicioná-lo ao novo sólido. Obviamente, quando temos alguns dados no banco de dados, então só podemos recuperar esses itens a fazer. Então o primeiro passo é fazer uma tela para que um usuário possa digitar seu item a fazer e, em seguida, enviá-lo para a base de fogo. Como sempre, importe um pacote de material. Em seguida, uma tela sem estado. Eu vou, eu vou criar um nome que ele em fazer. Agora fazê-lo retornar um andaime, em seguida, no aplicativo, mas apenas dado ônibus para que eu possa ter um botão de volta. É isso. Agora, nesse corpo, meu plano é apenas mantê-lo campo de texto onde o usuário vai inserir um botão de envio, é isso. Então eu vou começar com dependendo porque eu sei que eu preciso de algum espaçamento de todos os lados e dá-lo para realmente isso. Lembre-se quando você está construindo um monte de aplicação, você sabe que uma vastamente de sites sob demanda, você precisa de algum espaçamento. Então é por isso que você pode fazê-lo no início também. Agora, na criança, eu vou ter uma coluna no item da coluna deve ser centrada. Então eu vou fazer principal existe centro ponto alinhamento. Então não teríamos os dos nossos filhos. Agora, antes de escrever o que está dentro de Chamberlain, vamos para a tela inicial. De modo que aqui teremos um botão de ação flutuante, que quando navegar para que adicionar à tela. Também todos os códigos anteriores perna este que eu apenas escrevi para explicar que operações de crédito. Eu gostaria de removê-lo porque eu não quero isso neste aplicativo de tarefas. Agora. Basta ter um botão de ação flutuante e ter um botão de ação flutuante como este. A criança será. Posso, posso acrescentar. E nós não desfasamos. Eu simplesmente escreveria o material do navegador ponto empurrar, bipá-lo para fora. Que fora teremos o nosso contexto e adicionar uma tela como esta. Salve isso. E em ambulatório pode ver que eu vou chamá-lo de HIV. Faça esse título da tela assim. Caverna. Agora, se eu clicar nele, ver que temos uma tela vazia e este é o nosso botão Voltar. Agora vamos para a tela Adicionar a fazer. E nós não fizemos isso crianças. Eu teria se eu tivesse um livro didático, eu criaria um controlador de edição de texto. No início, o controlador de detalhes íntimos é igual ao controlador de edição dx. Como este. E também, uma vez que já acrescentamos a nossa caixa no ponto-ponto principal é esta caixa de tarefas. Eu só iria pegar aquela caixa de apêndice. Então, só dissemos “caixa”. Caixa é igual a. Oi, caixa. E o nome que explodiu. Ou seja, seu nome foi feito. E será desligado para fazer dados como este. Agora, vamos lá, crianças, vamos criar nosso primeiro campo de texto. O controlador será o controlador de título. Decoração estará em boa curadoria. E basta dar texto rotulado como Pena. E como delinear colocar pó como este. Vamos guardá-lo e verificar. Veja, temos o campo de texto do título depois do baralho. Então eu vou dar algum espaçamento usando faíscas de tamanho, aumentado, dar 30. Então eu criaria um botão com o recipiente de altura. Eu daria 50. Quando eu daria o dispositivo quando isso é duplo ponto infinito. Quando eu lhe daria um botão libertado. E dentro desse texto, eu diria apenas adicionar azul e dar um pouco de estilo para esse texto. Isso é principalmente o tamanho da fonte, que estaremos fazendo bem. Vamos guardá-lo e verificar. Veja a interface do usuário na tela está bem. Agora está na hora. Trabalhamos no botão on press para que seja qual for o texto que estiver dentro do controlador estável, ou você também pode dizer qualquer texto que o usuário tenha escrito será armazenado. Primeiro de tudo, ele será convertido em um objeto de fazer, que é este para fazer o tipo. E então, depois, ele será armazenado na caixa de colméia. Então, basta pressionar Função. Eu primeiro verificaria se esse controlador de item não é nenhum ponto txt não é igual a NP, em seguida, executar esse código. Então, primeiro de tudo, eu criaria um novo objeto. Um novo azul é igual a dois, assim. E dentro dela. Para o título, eu escreveria texto de ponto do controlador detalhado. E agora para o Leste concluiu que o valor padrão, vamos visitar fontes. Como se trata de um novo item a fazer. Depois que esse objeto é criado, eu simplesmente pegaria essa caixa de tarefas. Esse é o alto Vaux e ponto direito, adicionar e enviar e deu-lhe este valor a fazer. Como já fizemos aqui, esse tipo de classe Todo, ele só vai aceitar que você faça tipo de dados. E este ponto n significa que não haverá chave. Ele será armazenado no índice. Ou seja, suponha que seja uma espécie de lista, por isso será armazenado no índice 0, pois não há itens. E depois disso, eu sairia da tela. É isso. Vá e confira. Nós clicamos neste Adicionar para fazer. E eu simplesmente escreveria gerência estadual de provedores, ok? Como este. E clique em Adicionar para fazer. E veja que temos navegado para fora. Mas não podemos ver se não recuperamos os itens por- fazer, então podemos, não temos certeza se a identidade está sendo armazenada corretamente ou não. Então vamos trabalhar nessa recuperação também. E a tela inicial será responsável por exibir os dados armazenados em altura. Basicamente, vamos implementar as operações de leitura aqui. Lisonjeado, fornecer-nos um construtor de listenable de valor rígido chamado que só atualiza quando qualquer valor dentro desse banco de dados especificado ou essa coleção é modificado. Vamos ver. Você entenderá o que quero dizer com isso. Primeiro de tudo, eu criaria uma caixa de exemplo que é Toolbox é uma chamada para o HIV. Não caixa. E dê-lhe um tipo de dados. É isso. Agora, no corpo, eu escreveria o construtor de valor listable, este aqui. Então ele tem dois parâmetros. primeiro é um vizinho sem valor, esse é o valor que ele tem que ouvir. E eu simplesmente gostaria de fazer isso é esta caixa de ponto listenable, mas este ouvinte foi, minha vez, só está disponível no pacote de alta vibração, então nós temos que importá-lo, importar HIV aqui terceiro, e então alta vibração como este e ver o adicionado desapareceu. Então você tem que lembrar que ponto listenable está disponível no pacote mais plano. Então, o que significa este código? Então, em palavras simples, se alguma coisa mudar nesta caixa de tarefas, este widget será reconstruído. Mais uma vez, tão simples como isso. Então apenas, você também pode entender que se algo mudar o estado definido será chamado. Este é um exemplo muito limitado, mas eu só quero que você entenda o conceito. O construtor é uma função que tem contexto de primeira coisa. A segunda coisa é uma caixa, que é uma caixa de tarefas líquida. E a terceira coisa é um widget. A menos que estejamos preocupados com este parâmetro de conversas, usaremos apenas isso. O primeiro, eu iria apenas verificar se a caixa está vazia. Isso é que não foi inserido. Nesse caso é simplesmente retornar. Basta retornar uma visita ao centro. Levamos uma criança. Esse é um texto, novo, Todo, como este. E suponha que a caixa escura não esteja vazia. Nesse caso, iríamos produzir um widget que é um construtor ListView. E simplesmente retornar uma exibição de lista. Uma vez que ele é armazenado em que o HIV é na forma de uma lista. Agora, a contagem de itens será o comprimento do ponto da caixa. Esse é este, que é também significa esta caixa. Mas vamos usar isso enquanto estamos ouvindo este construtor. E no enrolador item, Vamos contratar contextos e índice. Agora dentro disso, já que dentro daquela caixa azul, os nossos dados. Para fazer o tipo de dados, que é o objeto de fazer. Eu só escreveria em uma variável. Para fazer é usar o ponto da caixa, obter um índice. Imagine que este índice seja 0. Dentro dessa caixa. Ele vai para a posição de índice 0 e trazer que para fazer dados e armazená-lo em. E ele vai apenas iterá-lo. Vai continuar até que o comprimento termine. Então, basta escrever lista de retorno. E dentro dela. Eu lhe daria um título. Na propriedade título, eu daria esse texto de título de ponto azul, pescoço isso Vamos salvá-lo. Anteriormente, temos escrito mestre, fornecer gestão estadual dos EUA. Veja, nós temos isso aprender. Fornecer gestão imobiliária. E você pode estar perguntando por que obter é mais dois deles que é gestão de estado mestre em flertou e isso então eu gostaria de dizer que isso foi porque eu já testei o banco de dados Hive neste dispositivo. Então é por isso, porque aquele imitador era o mesmo da caixa. Isso é fazer isso tem buscado os dados anteriores armazenados como aluguel. Mas suponha que eu escreva aqui, acorde cedo, suponha, e depois adicione 2 e C. Você pode ver que acorda cedo aqui. Então, em última análise, nosso aplicativo de tarefas está funcionando até a cabeça. Então é isso para este vídeo. No próximo vídeo, nós iria implementar a atualização para fazer como muito menos excluir para fazer funcionalidades. Obrigado. 7. Vídeo 6 atualização e exclusão de todo o: Então, até agora temos este aplicativo básico para fazer. É hora v, implementar algo para indicar que este ToDO foi concluído ou está feito, então só ele será removido. São o usuário nem vai saber que esta tarefa foi feita, não estão longe que eu vou estar usando. Ele verifica o widget caixa de seleção. E longe disso. Porque nessa caixa de seleção, há algo chamado mudança. Ou seja, se você clicar nele, obtemos um valor de verdadeiro ou falso. E de acordo com esse valor, eu mudaria as propriedades desta região de texto. Então vamos fazer isso praticamente. Dentro desse título. Que eu mostraria um ícone principal. E ele vai ter que verificar. O valor da caixa seria fazer é convertido é verdadeiro ou falso. On, dentro da propriedade onchange. Eu tenho que fazer algo para que o valor dentro desses dois seja atualizado. Agora que ser é, desde que eu fiz este valor final, então eu não posso ir diretamente e alterar o valor que é valor dentro desta classe Todo, ele vai mostrar um somador. Então o que eu vou fazer, eu vou criar uma nova variável e simplesmente escrever assim isto e isto. E dentro dele, esse título seria o mesmo que este estudo é fazer o título que o anterior apenas mas é concluído será este valor. Esse é esse. E uma vez que está em segurança, eu tenho que usar esta explicação para que eu me certifique de que este valor não é nulo. Agora e agora. Depois disso, eu iria apenas substituí-lo por ele. Colocar no índice. E o valor seria novo para fazer assim. É isso. Então o que ele faz, ele, ele, ele, ele simplesmente cria um novo item de fazer e substituí-lo pelo anterior. Agora, como nossa pequena ferramenta, eu não estou atualizando isso para fazer porque suas propriedades são finais. Você também pode alterar a classe do modelo. Ou seja, você pode mudar aqui e depois novamente, reconstruí-lo, reconstruir este adaptador agora. Mas eu não estou fazendo isso em um, eu não estou tentando fazer isso também. E apenas patinar simplesmente um novo objeto e substituí-lo pelo anterior. Agora, suponha que esse valor seja dois, seja, essa tarefa foi concluída. Então eu mostraria, eu faria algumas mudanças neste texto também. Então dentro desse txt, primeira coisa que eu daria um tamanho de fonte simplesmente como 20. Então, peso da fonte. Peso da fonte, negrito. Agora essa cor. Então, se dois pontos azuis é concluída é verdade, então eu escreveria cores verde escuro. Se não, eu adicionaria cores pretas. Vamos verificar isso. Se eu clicar sobre ele, ver colorido está ficando verde. Se eu clicar nisso, a cor está ficando verde. Agora o que eu faria é simplesmente nessa declaração, eu faria para novo ponto é concluída. Se for verdade, escreva a decoração de texto com pontos de linha, verdadeiro. Se não, eu adicionaria decoração de texto nenhum. Vamos ver o que esse código faz? Então, se eu clicar nele, ver que é. Strikethrough. Ou seja, podemos entender que essa tarefa está concluída. Não temos que pensar nisso. Então é assim que nossa atualização funciona. Agora é hora que temos uma funcionalidade para excluir é perder também. Para isso, simplesmente após a liderança, eu teria ícone à direita. E dentro deste diário, eu lhe daria um ícone. Botão. Ícone seria eu posso começar a cor tardia para cores mais escuras vermelho. E então pressionado. Veja, ao contrário da preocupação aqui. Agora simplesmente temos que deletar. E nós podemos apenas escrever em uma linha de código que é Box Dot Delete, anúncio eo índice, é isso. Então ele pé deletar essa tarefa em particular naquele índice. Depois disso, eu gostaria de mostrar um snack-bar. Eu gosto de dar algum feedback para o usuário em algum momento, se você quiser, você pode dar este corpo mapa em outras seções como um a seis é como este. E é isso. Vamos experimentá-lo. Se eu clicar nele, veja com sucesso. Se eu clicar nisso, ele também será removido do banco de dados do Hive. E se eu remover tudo, então saiba o que fazer desde que nossas caixas estão vazias. Por isso, é um aplicativo muito profissional e básico para fazer usando flutter e altura. Agora está tudo bem. Além deste, posso, suponho que eu adicione algo como inundado? Ok. Está vindo no topo. Se eu escrever mostarda, Firebase 10 c, não está vindo no topo, está vindo, faz segundo. Então isso não deveria acontecer. Então deixe este deve estar no topo. Até agora que eu só tenho que fazer algumas mudanças neste construtor de pontos de vista lista aqui. A primeira coisa que eu escreveria este inverso é igual a verdadeiro. E segunda coisa, veja se eu clico nisso agora e salve-o. Essa coisa é invertida, mas tudo vai no topo porque o ListView leva todos os espaços disponíveis. É por isso que se não usarmos esta propriedade, o envoltório psiquiátrico é igual a true? Vai para o fundo. Mas qual encolhimento é verdade? Lista que só ocupa o espaço que é necessário. Veja, agora está parecendo muito bom. Se eu digitar algo agora como prática, provedor, estado, gestão, assim. E tudo bem, C e o topo está sendo produzido, que ele está sendo exibido corretamente na carreira que está decrescente ordem de seus dados de upload, você pode apenas salvar. Então é isso para este módulo. Espero que tenha gostado e aprendido muito. Porque quando estamos construindo qualquer aplicativo usando FERPA, Nem sempre é necessário usar banco de dados do servidor. Podemos, e teremos muitos cenários onde precisamos de banco de dados Hive, que é armazenamento local, armazenamento também.