Android Broadcast
13.8K subscribers
3.13K photos
225 videos
9 files
5.31K links
Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot
Download Telegram
#Kotlin #SQLite #Multiplatform

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

Плюс аннотации @Relation над полем, в том, что связанные сущности из другой таблицы будут запрашиваться автоматически.
#SQLite #Room

SQLite Triggers (+ Android Room)

SQLite - самая популярная БД в мобильных ОС. Почему? Немалую роль сыграло в этом ее встраивание в мобильные ОС и схожесть синтаксиса запросов с SQL. В Android вы также могли слышать о библиотеке Room, которая является ORM для SQLite и значительно упрощает работу с получением данных, а также получением их обновлений через LiveData, RxJava Observable или Coroutines Flow.

В статье автор разбирается в механизме SQLite Trigger и как оповещается об обновление данных в Room.
#Database #SQLite #NoSQL

Mobile Databases in Android

Сравнение разных БД, которые вы можете использовать на Android. Также вы найдете описание того, почему мобильная БД важна.

Для тех кто хочет увидеть только таблицу сравнения, то смотрите здесь
#AndroidStudio #SQLite

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.

В статье вы найдете разбор возможностей этого инструмента:
👉 Получение доступа к БД
👉 Модификация и отладка БД
#SQLite #Security #Room

Securing a Room Database With Passcode-Based Encryption

Обеспечение безопасности данных пользователя важно для любого приложения. Если в вашем приложении есть экран с кодом, значит пользователю есть что защищать. Поэтому берите ключ, который вводит пользователь и шифруйте им данные пользователя.

В статье вы найдёте как шифровать базу данный SQLite, и в случае когда у вас используется Room.
#SQLite #Performance

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)
#Room #SQLite

Room auto-migrations

В следующей версией Room (2.4.0) появится использовать автоматическую миграции при изменении структуры БД. Поддерживаются простые случаи такие как обновление колонки и удаление/добавление таблицы, а для более сложных вам надо будет указать какие изменения произошли.

В статье разбираются все особенности работы новой возможности будущей версии Room
#SQLite #Room

Используем join в SQLite-запросах Room для android

Демонстрация работы JOIN запросов, поддержка которых появилась в Room 2.4.0-alpha02
На сайте developers.android.com появился раздел с лучшими практиками для высокой производительности SQLite:
👉 Выставляем настройки SQLite (тут)
👉 Правильно проектируйте таблицы с лучшими практиками (тут)
👉 Правильно делайте запросы в БД (тут)
👉 Анализируйте с помощь тулинга работу SQLite (тут)

#sqlite #performance
Если вы используете Room, то я рекомендую вам почитать статью (EN, 6 мин, ссылка без VPN) про то как устроена эта библиотека: вставка, обновление, удаление и получение данных из БД.

#sqlite #jetpack
Улучшения SQLIte. Новое API для улучшения чтобы использовать больше возможностей движка SQLite:
👉 beginTransactionReadOnly() - транзакции только для чтения
👉 createRawStatement() - выполнение сырых SQL запросов
👉 getLastChangedRowCount() - количество строк которые были добавлены, обновлены, удалены
👉 getLastInsertRowId() - id посленей добавленой строки
👉 getTotalChangedRowCount() - общее количество измененных строк в рамках текущего сессии Базы Данных

#android15 #sqlite
На сайте Android Developers почитайте рекомендации про работе с SQLite:
👉 Конфигурация БД
👉 Эффективное объявление схемы БД
👉 Ускорение запросов в БД
👉 Инструменты для анализа

#sqlite #performance
🔥 Первая альфа Jetpack SQLite 2.5.0 с поддержкой Kotlin Multiplatform: нативно Android и iOS, а остальные платформы через собранный из исходников SQLite (bundled версия)

Добавлены новые API: SQLiteDriver, SQLiteConnection и SQLiteStatement для установки связи с БД и выполнением запросов

#sqlite #kmp #jetpack #jetpackupdate
‼️‼️‼️ Главная новость дня - Jetpack Room становиться мультиплатформенным!

Стартанула разработка версии 2.7.0 и это становится главной новостью.

Важные факты:
👉 Переход на генерацию на основе KSP по умолчанию и генерация Kotlin кода
👉 KAPT и APT будут генерировать Java код
👉 Переход на новые мультиплатформенные API из Jetpack SQLIte
👉 Удалили KTX артефакт так как основной артефакт будет полностью на Kotlin
👉 Все функции Room интерфейсов должны содержать либо suspend функции или возвращать Flow

Что не работает
Пока не будет поддержки @RawQuery кроме как на Android
Подготовленная заранее БД (Pre-package Database) работает только на Android
RoomDatabase.Builder.enableMultiInstanceInvalidation доступно только для Android
RoomDatabase.Builder.setAutoCloseTimeout работает только на Android

Больше информации о 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 #оптимизация #производительность
Разработчик из мессенджера eXpress поделилась (15м) как они добивались минимальной задержки между нажатием кнопки отправки сообщения и показом этого в ленте сообщений. Одной из частей послужила оптимизация работы с БД SQLite черз Room:
🚀 Получать только необходимые столбцы (получили ускорение до 9 раз в отдельных сценариях)
🚀 Использование специальны операторов SQLite (например, EXISTS)
🚀 Использование транзакций (INSERT и UPDATE ускорили в несколько раз)
🚀 Обновление нескольких полей в рамках одной UPDATE операции
🚀 Игнорирование операций без результата (например, вставки пустого List)

Больше полезных советов в статье

#sqlite #оптимизации #room