Для нашего следующего выпуска мы решили выбрать тему сугубо практическую. Мы собрали все известные нам способы хранения данных: от записи в файл и key-value хранилищ, до полноценных БД, а затем, подробно рассмотрев достоинства и недостатки, нашли применение каждому... ну почти.
https://soundcloud.com/flutterdevpodcast/31-sposoby-khraneniya-dannykhКак понять, что настало время развернуть базу данных? Что выбрать: SQL или NoSQL? Стоит ли использовать старый-добрый shared_preferences или лучше заменить его на get_storage? Что выбрать для хранения данных, утечку которых не хотелось бы допустить?
Вместе с нашими гостями мы подробно рассмотрели все самые популярных подходы и пакеты, обсудили аспекты производительности решений, не забыли поговорить о подводных камнях и других коварных нюансах, а также выяснили, почему важно обращать внимание на то, какое количество разных платформ поддерживает интересующий вас пакет даже в том случае, если вы не собираете ваш проект под каждую из них.
У микрофона: Евгений Сатуров (Surf), Михаил Матюнин (Ozon), Андрей Смирнов (fin_hood).
Главное по выпуску:
❗️ Официальный рекомендации по реализации хранения данных во Flutter
https://flutter.dev/docs/cookbook/persistence❗️ Key/Value-хранилища:
- shared_preferences
https://pub.dev/packages/shared_preferences- get_storage
https://pub.dev/packages/get_storage❗️ NoSQL базы данных:
- hive
https://pub.dev/packages/hive- objectbox
https://pub.dev/packages/objectbox- sembast
https://pub.dev/packages/sembast❗️ Object-Relational Mapping (ORM) для SQLite:
- moor
https://pub.dev/packages/moor- floor
https://pub.dev/packages/floor- sqflite
https://pub.dev/packages/sqflite❗️ Secured-хранилища:
- flutter_secure_storage
https://pub.dev/packages/flutter_secure_storage- biometric_storage
https://pub.dev/packages/biometric_storage- flutter_keychain
https://pub.dev/packages/flutter_keychain ❗️ Remote-хранилища:
- firebase_database
https://pub.dev/packages/firebase_database- firebase_storage
https://pub.dev/packages/firebase_storageНовости:
⚡️ Лучшие подкасты про Flutter
https://www.freecodecamp.org/news/best-podcasts-for-flutter-developers/?utm_source=pocket_mylist⚡️ Статья про Flutter Hot Reload
https://medium.com/flutter/flutter-hot-reload-f3c5994e2ceeОфициальный канал подкаста:
t.me/flutterdevpodcast_newsОфициальный чат подкаста:
t.me/flutterdevpodcast
sqflite с помощью sqflite_sqlcipher.
В свою очередь тоже пришел к хранению веб-кеша в файловой системе, и усовершенствовал его тем что json данные предварительно архивировались перед сохранением (это давало выигрыш в объёме до 10 раз и в скорости сохранения на диск из-за меньшего объёма), а данные картинок - локально тоже "архивировались" тем, что приводились к формату jpg с сжатием и авто-ресайзом в размер 1080p только тех что превышают