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

Вышла первая альфа Room 2.2.0

Показали первую альфу следующей версии Room. В ней нас ждут:
👉 Начальные данные для заполнения БД из asset-ов или файла
👉 Возможность задания значений по умолчанию для колонок @ColumnInfo(defaultValue=...)
👉 Поддержка m:n отношения между таблицами
👉 Поддержка инкрементного процессинга аннотаций. Пока для этого надо добавить room.incremental = true в опции процессора. В стабильном релизе будет включено по умолчанию.
👉 Теперь для работы с одной таблице смогут использовать несколько DAO. Новое свойство targetEntity в аннотация @Insert, @Update, @Delete, которое позволяет указать таблицу для которой выполняются действия метода DAO.
👉 Исправление багов

Очень жду следующих альфа версий, чтобы услышать о поддержке Flow из Kotlin Coroutines.
#SQLite #Coroutines #Room #ArchitectureComponents

Threading models in Coroutines and Android SQLite API

В Room 2.1.0 появилась поддержка Coroutine, но особенность их работы в том, что они не гарантируют выполнение всей Coroutine в одном Java потоке. И тут получается проблема - SQLite требует выполнение транзакций в одном и том же потоке.

Как эту проблему решили разработчики Room? Для этого была создана специальная функции withTransaction, которая позволяет выполнять транзакции в БД с помощью Room на основе Coroutine.

В статье вы найдете подробности реализации транзакций SQLite при использовании Coroutine и как можно использовать CoroutineContext.
#Room #Coroutines #Flow

Вышел Room 2.2.0-alpha02

Как я и предрек в своем докладе "Kotlin Coroutine. Flow is coming" Room получил поддержку Flow в альфа версии следующего обновления этого ORM от Google.
#SQLite #ArchitectureComponents #Room

Packing the Room: Pre-populate your database with this one method

Сейчас в разработке находится следующая версия (2.2) популярного ORM решения для Android - Room. В этой версии появляется функция предзаполнения, которая позволяет вам заполнить БД контентом из файла.

Это позволит избегать парсинга данных из файлов для заполнения данными и ускорить старт приложения.
#Jetpack #Room #Kotlin #Coroutines

Вышла новая стабильная версия Room 2.2.0

ORM библиотека Room достигла своей новой стабильной версии. В ней появились новые возможности:
👉 Возможность иметь подготовленную заранее БД для первоначальной инициализации. Теперь не нужно парсить файлы из asset-ов или ресурсов
👉 Значения по умолчанию для колонок таблицы
👉 Поддержка отношений M:N
👉 Возможность совмещать методы для разных Entity в одном Dao
👉 Поддержка Coroutines Flow
👉 Поддержка инкрементального процессинга аннотаций в Gradle
👉 Разворачивание * проекций при выборке данных, которое позволяет получать только поля, которые есть в конечной Entity. Опция пока экспериментальная и включается с помощью флага room.expandProjection
#AndroidX #JetpackWeekly #JetpackCompose #Room

Android Jetpack Weekly #9

🔥Первая порция артефактов Jetpack Compose
🔥Jetpack Compose и Android Studio 3.5 работают вместе
👉 Room 2.2.0
👉 AndroidX Concurrent Futures
👉 Множество новых beta и RC версий
#Room #SQLite

Database relations with Room

Статья о поддержки отношений между сущностями в SQLite с помощью аннотации @Relation в Room:
👉 1 - 1
👉 1 - N
👉 M - N

Плюс аннотации @Relation над полем, в том, что связанные сущности из другой таблицы будут запрашиваться автоматически.
#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