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

Обсуждение @android_broadcast_talks
Наши медиа https://taplink.cc/android_broadcast
Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot
Download Telegram
#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 #оптимизация #производительность