#Kotlin #SQLite #Multiplatform
SQLDelight 1.x Quick Start Guide for Android
Пишите на Kotlin и шарите код между платформами либо просто мечтаете делать "чистокровный" Kotlin код? Тогда вы уже слышал о SQLDelight или вам нужно ознакомиться с этой библиотекой.
Помимо чистого Kotlin и поддержки Multiplatform Projects вы можете найти ее подход к работе с БД SQLite интересным - она генерирует модели на основе ваших запросов в БД.
В статье вы найдете хорошое руководство как начать работу с этой библиотекой на Android.
SQLDelight 1.x Quick Start Guide for Android
Пишите на Kotlin и шарите код между платформами либо просто мечтаете делать "чистокровный" Kotlin код? Тогда вы уже слышал о SQLDelight или вам нужно ознакомиться с этой библиотекой.
Помимо чистого Kotlin и поддержки Multiplatform Projects вы можете найти ее подход к работе с БД SQLite интересным - она генерирует модели на основе ваших запросов в БД.
В статье вы найдете хорошое руководство как начать работу с этой библиотекой на Android.
#Room #SQLite
Database relations with Room
Статья о поддержки отношений между сущностями в SQLite с помощью аннотации @Relation в Room:
👉 1 - 1
👉 1 - N
👉 M - N
Плюс аннотации
Database relations with Room
Статья о поддержки отношений между сущностями в SQLite с помощью аннотации @Relation в Room:
👉 1 - 1
👉 1 - N
👉 M - N
Плюс аннотации
@Relation
над полем, в том, что связанные сущности из другой таблицы будут запрашиваться автоматически.Medium
Database relations with Room
An important part of designing a relational database is splitting the data into related tables and pulling the data together in meaningful…
#SQLite #Room
SQLite Triggers (+ Android Room)
SQLite - самая популярная БД в мобильных ОС. Почему? Немалую роль сыграло в этом ее встраивание в мобильные ОС и схожесть синтаксиса запросов с SQL. В Android вы также могли слышать о библиотеке Room, которая является ORM для SQLite и значительно упрощает работу с получением данных, а также получением их обновлений через
В статье автор разбирается в механизме SQLite Trigger и как оповещается об обновление данных в Room.
SQLite Triggers (+ Android Room)
SQLite - самая популярная БД в мобильных ОС. Почему? Немалую роль сыграло в этом ее встраивание в мобильные ОС и схожесть синтаксиса запросов с SQL. В Android вы также могли слышать о библиотеке Room, которая является ORM для SQLite и значительно упрощает работу с получением данных, а также получением их обновлений через
LiveData
, RxJava Observable
или Coroutines Flow
.В статье автор разбирается в механизме SQLite Trigger и как оповещается об обновление данных в Room.
Medium
SQLite Triggers (+ Android Room)
Diving into SQLite Triggers and Android Room internals
#Database #SQLite #NoSQL
Mobile Databases in Android
Сравнение разных БД, которые вы можете использовать на Android. Также вы найдете описание того, почему мобильная БД важна.
Для тех кто хочет увидеть только таблицу сравнения, то смотрите здесь
Mobile Databases in Android
Сравнение разных БД, которые вы можете использовать на Android. Также вы найдете описание того, почему мобильная БД важна.
Для тех кто хочет увидеть только таблицу сравнения, то смотрите здесь
Medium
Mobile Databases in Android.
Distribution of power and information among local governments…
#AndroidStudio #SQLite
Android Studio 4.1: Database Inspector
Не успела релизнуться Android Studio 4.0, но в новых канарейках Android Studio 4.1 нас радуют крутым функционалом. Теперь посмотреть данные из БД SQLite, модифицировать ее и делать запросы.
Все этого интегрировано с Room. Если AS будет находить аннотации, то позволит сразу выполнять запросы 🔥
Android Studio 4.1: Database Inspector
Не успела релизнуться Android Studio 4.0, но в новых канарейках Android Studio 4.1 нас радуют крутым функционалом. Теперь посмотреть данные из БД SQLite, модифицировать ее и делать запросы.
Все этого интегрировано с Room. Если AS будет находить аннотации, то позволит сразу выполнять запросы 🔥
#AndroidStudio #SQLite #Room
Database Inspector - A live database tool we’ve been waiting for!
Android Studio 4.1 Canary 5 порадовала нас новым инструментом - Database Inspector.
В статье вы найдете разбор возможностей этого инструмента:
👉 Получение доступа к БД
👉 Модификация и отладка БД
Database Inspector - A live database tool we’ve been waiting for!
Android Studio 4.1 Canary 5 порадовала нас новым инструментом - Database Inspector.
В статье вы найдете разбор возможностей этого инструмента:
👉 Получение доступа к БД
👉 Модификация и отладка БД
Medium
Database Inspector
Creating and managing local databases is a core component of most mobile apps. But whether you’re using SQLite directly or through the…
#SQLite #Security #Room
Securing a Room Database With Passcode-Based Encryption
Обеспечение безопасности данных пользователя важно для любого приложения. Если в вашем приложении есть экран с кодом, значит пользователю есть что защищать. Поэтому берите ключ, который вводит пользователь и шифруйте им данные пользователя.
В статье вы найдёте как шифровать базу данный SQLite, и в случае когда у вас используется Room.
Securing a Room Database With Passcode-Based Encryption
Обеспечение безопасности данных пользователя важно для любого приложения. Если в вашем приложении есть экран с кодом, значит пользователю есть что защищать. Поэтому берите ключ, который вводит пользователь и шифруйте им данные пользователя.
В статье вы найдёте как шифровать базу данный SQLite, и в случае когда у вас используется Room.
Medium
Securing a Room Database With Passcode Based Encryption
Using available Java APIs
#SQLite #Performance
Android Room Hidden Costs
При использовании Room Android разработчики зачастую использую реактивные стримы (RxJava, Coroutines Flow) для получения всех изменений в данных. Важная особенность этого процесса, что при вставке любых данных выполняется повторный запрос в БД. В статье разбирается как можно оптимизировать это.
Полноценно сделать это не получилось, также автор не разобрал что будет в случае выполнения транзакций.
Android Room Hidden Costs
При использовании Room Android разработчики зачастую использую реактивные стримы (RxJava, Coroutines Flow) для получения всех изменений в данных. Важная особенность этого процесса, что при вставке любых данных выполняется повторный запрос в БД. В статье разбирается как можно оптимизировать это.
Полноценно сделать это не получилось, также автор не разобрал что будет в случае выполнения транзакций.
#SQLite
Полнотекстовый поиск FTS3, FTS4 и FTS5 в Android
Full Text Search (FTS) - инструмент, который позволит вам эффективно искать данный в SQLite БД. Одной из явных отличительных особенностей ее является поддержка Unicode, что позволяет делать текстовый поиск не только в латинице
В статье разбирается:
👉 как работать с FTS в Android
👉 что происходит под капотом (виртуальные таблицы)
👉 сравнение различных версий FTS
👉 интеграция FTS 5 через отдельную библиотеки (придется отдельно подключать SQLite)
Полнотекстовый поиск FTS3, FTS4 и FTS5 в Android
Full Text Search (FTS) - инструмент, который позволит вам эффективно искать данный в SQLite БД. Одной из явных отличительных особенностей ее является поддержка Unicode, что позволяет делать текстовый поиск не только в латинице
В статье разбирается:
👉 как работать с FTS в Android
👉 что происходит под капотом (виртуальные таблицы)
👉 сравнение различных версий FTS
👉 интеграция FTS 5 через отдельную библиотеки (придется отдельно подключать SQLite)
#Room #SQLite
Room auto-migrations
В следующей версией Room (2.4.0) появится использовать автоматическую миграции при изменении структуры БД. Поддерживаются простые случаи такие как обновление колонки и удаление/добавление таблицы, а для более сложных вам надо будет указать какие изменения произошли.
В статье разбираются все особенности работы новой возможности будущей версии Room
Room auto-migrations
В следующей версией Room (2.4.0) появится использовать автоматическую миграции при изменении структуры БД. Поддерживаются простые случаи такие как обновление колонки и удаление/добавление таблицы, а для более сложных вам надо будет указать какие изменения произошли.
В статье разбираются все особенности работы новой возможности будущей версии Room
#SQLite #Room
Используем join в SQLite-запросах Room для android
Демонстрация работы JOIN запросов, поддержка которых появилась в Room 2.4.0-alpha02
Используем join в SQLite-запросах Room для android
Демонстрация работы JOIN запросов, поддержка которых появилась в Room 2.4.0-alpha02
На сайте developers.android.com появился раздел с лучшими практиками для высокой производительности SQLite:
👉 Выставляем настройки SQLite (тут)
👉 Правильно проектируйте таблицы с лучшими практиками (тут)
👉 Правильно делайте запросы в БД (тут)
👉 Анализируйте с помощь тулинга работу SQLite (тут)
#sqlite #performance
👉 Выставляем настройки SQLite (тут)
👉 Правильно проектируйте таблицы с лучшими практиками (тут)
👉 Правильно делайте запросы в БД (тут)
👉 Анализируйте с помощь тулинга работу SQLite (тут)
#sqlite #performance
Если вы используете Room, то я рекомендую вам почитать статью (EN, 6 мин, ссылка без VPN) про то как устроена эта библиотека: вставка, обновление, удаление и получение данных из БД.
#sqlite #jetpack
#sqlite #jetpack
Улучшения SQLIte. Новое API для улучшения чтобы использовать больше возможностей движка SQLite:
👉 beginTransactionReadOnly() - транзакции только для чтения
👉 createRawStatement() - выполнение сырых SQL запросов
👉 getLastChangedRowCount() - количество строк которые были добавлены, обновлены, удалены
👉 getLastInsertRowId() - id посленей добавленой строки
👉 getTotalChangedRowCount() - общее количество измененных строк в рамках текущего сессии Базы Данных
#android15 #sqlite
👉 beginTransactionReadOnly() - транзакции только для чтения
👉 createRawStatement() - выполнение сырых SQL запросов
👉 getLastChangedRowCount() - количество строк которые были добавлены, обновлены, удалены
👉 getLastInsertRowId() - id посленей добавленой строки
👉 getTotalChangedRowCount() - общее количество измененных строк в рамках текущего сессии Базы Данных
#android15 #sqlite
На сайте Android Developers почитайте рекомендации про работе с SQLite:
👉 Конфигурация БД
👉 Эффективное объявление схемы БД
👉 Ускорение запросов в БД
👉 Инструменты для анализа
#sqlite #performance
👉 Конфигурация БД
👉 Эффективное объявление схемы БД
👉 Ускорение запросов в БД
👉 Инструменты для анализа
#sqlite #performance
🔥 Первая альфа Jetpack SQLite 2.5.0 с поддержкой Kotlin Multiplatform: нативно Android и iOS, а остальные платформы через собранный из исходников SQLite (
Добавлены новые API: SQLiteDriver, SQLiteConnection и SQLiteStatement для установки связи с БД и выполнением запросов
#sqlite #kmp #jetpack #jetpackupdate
bundled
версия)Добавлены новые API: SQLiteDriver, SQLiteConnection и SQLiteStatement для установки связи с БД и выполнением запросов
#sqlite #kmp #jetpack #jetpackupdate
Стартанула разработка версии 2.7.0 и это становится главной новостью.
Важные факты:
👉 Переход на генерацию на основе KSP по умолчанию и генерация Kotlin кода
👉 KAPT и APT будут генерировать Java код
👉 Переход на новые мультиплатформенные API из Jetpack SQLIte
👉 Удалили KTX артефакт так как основной артефакт будет полностью на Kotlin
👉 Все функции Room интерфейсов должны содержать либо suspend функции или возвращать Flow
Что не работает
Больше информации о Room в KMP читайте в документации
#sqlite #room #jetpack #jetpackupdate #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья(12м) с изложением подхода как сделать трекинг скорости работы методов Room. Автор использует Trace и создание обертки на Dao через Java Dynamic Proxy.
#room #sqlite #оптимизация #производительность
#room #sqlite #оптимизация #производительность
Разработчик из мессенджера eXpress поделилась (15м) как они добивались минимальной задержки между нажатием кнопки отправки сообщения и показом этого в ленте сообщений. Одной из частей послужила оптимизация работы с БД SQLite черз Room:
🚀 Получать только необходимые столбцы (получили ускорение до 9 раз в отдельных сценариях)
🚀 Использование специальны операторов SQLite (например, EXISTS)
🚀 Использование транзакций (INSERT и UPDATE ускорили в несколько раз)
🚀 Обновление нескольких полей в рамках одной UPDATE операции
🚀 Игнорирование операций без результата (например, вставки пустого List)
Больше полезных советов в статье
#sqlite #оптимизации #room
🚀 Получать только необходимые столбцы (получили ускорение до 9 раз в отдельных сценариях)
🚀 Использование специальны операторов SQLite (например, EXISTS)
🚀 Использование транзакций (INSERT и UPDATE ускорили в несколько раз)
🚀 Обновление нескольких полей в рамках одной UPDATE операции
🚀 Игнорирование операций без результата (например, вставки пустого List)
Больше полезных советов в статье
#sqlite #оптимизации #room