Flutter уроки | #14 - Hive Локальное хранилище NoSQL | Курс для начинающих 2023

preview_player
Показать описание

Ссылки из видео:

✅ Полезные ссылки:

Flutter - это идеальный инструмент, чтобы начать путь в айти или перейти на него в 2023. А я как раз тот самый коуч, которого ты искал.

В этом уроке мы будем знакомиться с локальным хранилищем Hive в инфраструктуре Flutter. Hive - это NoSql база данных. Написана она на чистом dart, без использования (своего) нативного кода. Работает эта магическая аннигиляторная пушка очень быстро и решает большинство задач программистов при настройке хранения данных локально. Идеальная штука для кеширования.

Кстати, как раз кеширование мы и будем делать. Короче говоря, переходи смотреть видео, ведь я там настолько преисполнился, что даже про некоторые паттерны в программировании рассказываю

В ходе курса, мы вместе разберемся с тем, что такое Flutter и как на нем сделать первое приложение. Научимся программировать на dart, узнаем про основные виджеты в Flutter, как работать с сетью http dio, узнаем про основной стейт менеджемнт в Flutter - BLoC.

00:00 - 01:48 Что такое Hive DB
01:48 - 03:34 Устанавливаем hive в проект
03:34 - 04:21 Что такое Box в Hive
04:21 - 05:09 Что такое TypeAdapter в Hive
05:09 - 05:29 Про паттерн Adapter
05:29 - 05:57 Наглядное объяснение паттерна Адаптер
05:57 - 06:58 Как создать TypeAdapter руками
06:58 - 09:16 Генерируем TypeAdapter используя hive_generator
09:16 - 10:22 Как работает запись данных в Hive под капотом
10:22 - 11:16 Продолжаем генерировать TypeAdapter
11:16 - 12:14 Смотрим что сгенерировал hive_generator
12:14 - 14:02 Для чего нужен typeId. Бинарная запись данных
14:02 - 14:26 Генерируем TypeAdapter’ы для других моделей
14:26 - 15:30 Регистрируем созданные адаптеры в Hive
15:30 - 17:09 Инициализируем (открываем) Hive Box
17:09 - 17:30 Что мы будем делать - кеширование!
17:30 - 18:26 Внедряем Hive Box в репозиторий
18:26 - 19:09 Про делегирование в репозиториях
19:09 - 19:48 Делай проще, применяй KISS
19:48 - 20:12 Когда нужно использовать делегирование
20:12 - 21:24 Выносим ключ Hive в константу
21:24 - 22:22 Как будет работать логика кеширования
22:22 - 23:19 Стандартные методы Hive Box
23:19 - 24:34 Сохраняем весь список криптовалют метод putAll
24:34 - 28:29 Делаем логику кеширования с использованием Hive
28:29 - 29:44 Проверяем работу кеширования
29:44 - 30:50 Проверяем кеширование после рестарта
30:50 - 35:07 Делаем кеширование одной модели, метод get и containsKey
35:07 - 35:42 Проверяем кеширование во всем приложении
35:42 - 38:38 Делаем сортировку списка криптовалют
38:38 - 39:03 Итоги урока и что будет дальше

#войтивайти #программирование #flutter
Рекомендации по теме
Комментарии
Автор

выпуск супер информативный и полезный, спасибо!

alina
Автор

Всегда легко и приятно понимать Стаса, лучший русский канал по флаттер.

kirillsabko
Автор

Не все дожили до последних видео)
А если по делу - спасибо тебе за труд, благодаря твоим урокам понял, что после ts в вебе во флатере разобраться не так уж и сложно

iliabaranov
Автор

Спасибо за проделанную работу! Один из лучших курсов в рунете!
Может когда-нибудь возьмешься записать видео по чистой архитектуре? чтобы было понятно как в больших проектах распределяют код.

antonyaz
Автор

объясняешь офигенно, про блок питания угарнул)))👍

devWave
Автор

Классный урок. все понятно особенно для людей кто уже работал с БД. С пониманием работы кода вопросов нет.

МагестЛоил
Автор

Было бы круто увидеть урок по авторизации/аутентификации на примере текущего приложения. В 99% проектов есть, но не всегда легко разобраться, а у тебя крутые уроки, думаю отлично бы объяснил!

gregfisenko
Автор

Привет. Спасибо большое за урок. Раньше использовал shared_preferences. Можно как вариант и Hive. Стас, что лучше ?
И еще вопрос - можно ли для кэширования картинок криптовалют использовать cached_network_image в этом проекте ?

RenatBakaiev
Автор

При первом запуске приложения без интернета не будет отображаться список валют, так как их нет ни с сети, ни с кеша. 
Неплохо было бы проверять наличие закешированных данных в Hive и если их нет прокидывать ошибку выше `throw e`.

Александр-лдл
Автор

Стас, хороший урок, подскажи пожалуйста, я когда пересобираю проект без интернета у меня всё как и у тебя: картинок нет, валюты загружаются, но потом у меня возникает проблема, что я не могу перезагрузить или нажать на какую нибудь кнопку. Вообще вроде все загрузилось но зависло и обновить нельзя как у тебя. Что может быть?

ЛеонидБулгаков-ет
Автор

А где hive хранит данные? В оперативной памяти? Или в файлах? В документции по hive ответа на нашел, а это важно. Это конечно хорошо, когда есть 5 записей, а что если речь идет о приложении с 500 000 товаров, каждый товар имеет кучу дополнительных моделей, типа опции, характеристики отзывы, фотогаллерея и так далее. Попытка хранить это все в оперативной памяти потребует сотен гигов. Если все-таки хранение в оперативке, то hive пригоден только как инструмент для кеша или же для очень небольших и практически статичных приложений, хотя возможно это и поверхностное суждение. Ну и конечно необходимость вручную проставлять индекс в аннотации выглядит "по-детски". Действительно, прийдется вести текстовый файлик, в котором отмечать какой модели какой индекс соответствует и это вызывает диссонанс. С одной стороны мы тут все такие крутые, что ленимся писать код руками а все доверяем генераторам, а с другой стороны в блокнотике ведем список айдишников...

АлександрМельник
Автор

я думал нельзя использовать hive_flutter без hive, и везде их подгружают вместе. разве это не так?

yurarudenko
Автор

все по уроку, как бы и работает но вылетает ошибка после подключения Hive, Zone mistmatch, правда все библиотеки свеженькие на сегодня, покачто гугл подсказки безуспешны) копаю дальше!

revoltiks
Автор

выпуск супер информативный и полезный, спасибо!

stalin-pidoras