Android Broadcast
14.2K subscribers
3.49K photos
333 videos
11 files
5.85K links
Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot

РКН https://abdev.by/rkn_tg_ab
Download Telegram
#Room #Coroutines

Room 🔗 Flow

Room с каждой версии все больше и больше включает в себя поддержку Kotlin Coroutine. В последней версии (2.2) появилась возможно использовать Flow. Как это работает вы можете найти в статье.
#SQLite #Room

SQLite Triggers (+ Android Room)

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

В статье автор разбирается в механизме SQLite Trigger и как оповещается об обновление данных в Room.
This media is not supported in your browser
VIEW IN TELEGRAM
#Room #Tools

FloorPlan - translate Room schemas to DBML

Конвертирование схему БД на основе Room в Database Markup Language (DBML), чтобы затем использовать DBML в dbdiagram.io и красиво визаулизировать схему.
#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.
#Kotlin #Room #Jetpack

Using and testing Room Kotlin APIs

Разбор различных возможностей Room и кода, который генерируется по итогу.
#Room #SQLite

Room auto-migrations

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

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

Вышла новая часть курса по Android на Kotlin для новичков. В ней раскрываются особенности работы с обёрткой над SQL - Room
#SQLite #Room

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

Демонстрация работы JOIN запросов, поддержка которых появилась в Room 2.4.0-alpha02
#room #ksp

Room & Kotlin Symbol Processing

В Room 2.4 появилась возможность генерировать код с помощью KSP, что позволило до 2 раз увеличить скорость компиляции, особенно при чистой сборке проекта.

В статье рассказывается история интеграции KSP в Room: а также с какими вызовами столкнулись разработчики. Авторы разработали библиотеку X Processing - абстракцию над KSP и Java AP
#room #rxjava

Room + RxJava2 Flowable получение пустого списка при отсутствии данных

Магия с RxJava чтобы получать нужные данные при пустой таблице в Room получить пустой список. Странно что приходится городить такие костыли, но что есть
‼️‼️‼️ Главная новость дня - 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
🔥61👍3
Room 2.7.0-alpha08 дальше развивает поддержку KMP
👉 Артифакт room-paging получил поддержку KMP
👉 API InvalidationTracker теперь стало доступно не только для Android

#jetpack #room #kmp
👍14👎61
Media is too big
VIEW IN TELEGRAM
Прошедший год был ВАЖНЫМ для Room, и команда Jetpack делиться обновлениями, которые они сделали, для перехода Room в Kotlin Multiplatform

0:00 - Введение
0:49 - Начало работы над Room KMP
6:12 - Перенос Room из Android в Room KMP

📺 Оригинальное видео тут

#room #jetpack #sql #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍117🔥2
Статья(12м) с изложением подхода как сделать трекинг скорости работы методов Room. Автор использует Trace и создание обертки на Dao через Java Dynamic Proxy.

#room #sqlite #оптимизация #производительность
👍16
Разработчик из мессенджера eXpress поделилась (15м) как они добивались минимальной задержки между нажатием кнопки отправки сообщения и показом этого в ленте сообщений. Одной из частей послужила оптимизация работы с БД SQLite черз Room:
🚀 Получать только необходимые столбцы (получили ускорение до 9 раз в отдельных сценариях)
🚀 Использование специальны операторов SQLite (например, EXISTS)
🚀 Использование транзакций (INSERT и UPDATE ускорили в несколько раз)
🚀 Обновление нескольких полей в рамках одной UPDATE операции
🚀 Игнорирование операций без результата (например, вставки пустого List)

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

#sqlite #оптимизации #room
👍42🔥51
📹 В Jetpack Room есть возможность использовать не встроенный в Android ОС SQLite, а вместо этого использовать самую свежую версию (вес около 1 МБ для каждого ABI).

Это позволит использовать единую версию SQLite на всех устройствах и получать преимущества в скорости работы от новых функций. Причем эта возможность доступна для всех поддерживаемых платформ, которые поддерживает Room: Android, iOS, Desktop.

📹 Доклад с Droidcon от гуглера о том, как это сделать (EN, 15м)
🔗 Подробности в документации

#android #sqlite #room #jetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
👍39🔥11🤯3
Выполнение запросов SQLite на множестве потоков может привести к замедлению вашего приложения 🤯

Разработчик делает классный разбор того, как работают запросы SQLite в Android и как их оптимизировать. Статья - параллельность в Android SQLite (EN,11м)

Основные выводы:
👉 Используйте забандленную версию SQLite (добавит около 1 Мб за каждый ABI)
👉 Если работает с несколькими БД через ROOM, то задавайте CoroutineContext или Executor для выполнения запросов
👉 Больше полезного в статье, почитай. Она того стоит

#android #room #sqlite #jetpack
🤯28👍133
🚀 Вышла первая Beta версия Room 2.7.0. Самое важное нововведение - переход на KMP с поддержкой Android, iOS и Desktop 🔥🔥🔥. Также на Android теперь можно использовать SQLite из артефакта, а не только тот что в Android ОС

#android #kmp #jetpack #room #sqlite
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52👍4
🚀 Jetpack Room 2.7.0 RC02 с фиксами

Всё также идет подготовка к первому стабильному релизу Room с поддержкой KMP, самые важные:
🔥 Исправлено падение компилятора с NPE при обработке не JVM исходников через KSP
🛠 Исправлены Авто Миграции при добавление новой колонки в FTS таблице

#android #jetpack #room #sql #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉16👍14👎31