Android Broadcast
14.1K subscribers
3.37K photos
274 videos
11 files
5.67K links
Подборка новостей и статей для Android разработчиков.

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

РКН https://abdev.by/rkn_tg_ab
Download Telegram
🔨 Вышла Android Studio Meerkat Patch 2

Релиз включает исправления багов в R8 и Android Resources Shrinking в AGP 8.9

#android #androidstudio
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Compose Broadcast
⚙️ Вышел Jetpack Compose 1.8.0

Все новинки расскажу отдельными постами в @compose_broadcast, а именно:
👉 Autofill
👉 ресайзинг текста под контейне
👉 новое API для отслеживания Composable на экране
👉 анминирование границ Composable
👉 стабилизация API (убрали экспериментальные аннотации)
👉 ContextualFlowRow и ContextualFlowColumn теперь deprecated, им на замену используйте FlowRow и FlowColumn
👉 диалоги теперь учитывают режим экрана edge-to-edge
👉 упростили тестирование ClickableText
👉 появилась возможность кастомизации overscroll

Свежий BOM для новых версий
implementation(platform("androidx.compose:compose-bom:2025.04.01"))


#compose #android
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Вышел Jetpack Datastore 1.1.5 где поменяли реализацию Storage по умолчанию с OkioStorage на FileStorage. Вызвано тем чтобы решить проблему с CorruptionException в PreferencesDataStore.

#jetpack #jetpackupdate
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышла библиотека Jetpack Print 1.1.0, которая перешла на RGB формат при отправке изображения на принтеры для лучшей совместимости

#jetpack #jetpackupdate
🚀 Room 2.7.1 уже здесь! Исправлен IndexOutOfBoundsException при валидации type converters, а также runInTransaction() теперь работает с SQLiteDriver

#jetpack #jetpackupdate
Please open Telegram to view this post
VIEW IN TELEGRAM
Вайб кодинг — не оправдание для некачественной работы

Интересная статья с размышлениями на тему пользы ИИ для кодинга и реально ли что 2 инженера смогут создать тех. долг за 50 разработчиков

🔗 Оригинал статьи

#программирование #ии
🤖 Dropbox делится своими подходами в автотестах на Android (7м)

Что интересного:
👉 Множество функций тесно завязаны на поведение ОС
👉 Используют Robolectric, чтобы запускать Android-тесты на JVM
👉 Целевая Test Coverage — 80%, но только для Unit-тестов
👉 Применяют скриншот-тестирование на базе Paparazzi, а также собственную разработку — Dropshots для получения скриншотов с эмуляторов и реальных устройств
👉 Экспериментируют с Compose Preview Screenshot Testing
👉 Ручное тестирование всё ещё актуально — особенно в случаях, где важно визуально проверить корректность отображения

🔗 Альтернативная ссылка

#android #тестирование
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
📺 Developing for the SDK Runtime (EN,7м)

SDK Runtime — новая технология в Android 14, созданная для повышения доверия: она изолирует сторонний код в защищённой среде — песочнице (sandbox). Доступна и на предыдущих версиях Android в режиме совместимости

В этом видео разберают:
👉 Зачем нужен SDK Runtime
👉 Как он работает
👉 Какие требования предъявляются к разработчику

0:00 Введение
0:29 Архитектура
0:50 Глоссарий
1:40 Среда разработки
2:21 Зачем нужны зависимости
5:30 Jetpack-библиотеки
6:20 Заключение

#android #безопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
🤖 Свежая статистика популярности версий Android

Статистику уже не найти на сайте Android, но вот можно увидеть при создании нового проекта в Android Studio. Представлены данные от 1 апреля 2025 на основе активных пользователей Google Play

Что самое интересное:
👉 Меньше чем за год с релиза Android 15 смог достичь долю в 4.5%, что большой прогресс для новой версии Google
👉 Самая популярная версия Android - 14 U с долей с 27.4%
👉 98.6% всех устройства работают на Android 7.0 и выше

Видно, как год из года усилия Google дают результат в распространении свежих версий Android

#android
Please open Telegram to view this post
VIEW IN TELEGRAM
🪙 Разработка FrameIO с помощью AI агента в прямом эфире

ВАЖНО Прямой эфир отложен из-за болезни Кирилла

Завтра, 27 апреля, в 11 00 (GMT+3) в прямом эфире буду дописывать функционал авторизации с помощью AI агента в Cursor IDE

Трансляция пройдет на Boosty и доступна платным подписчикам

#AndroidBroadcast #frameio
Please open Telegram to view this post
VIEW IN TELEGRAM
🔨 Как сократить потребление оперативной памяти в Android Studio (EN,16м)

Устали от того, что Android Studio съедает все доступные ресурсы вашего компьютера? Способ настроить простой - отключать различные ускорения и удобства. Меньше функций - меньше расхода памяти

Основные рекомендации:
👉 Настройка Gradle - отключите параллельную сборку модулей и настройте кэширование, а также отключайте демона
👉 Настройки памяти - увеличьте выделенную память в studio64.exe.vmoptions до 4096MB
👉 Плагины - удалите неиспользуемые плагины и отключите автоимпорт
👉 File watchers - отключите ненужные watchers для уменьшения нагрузки
👉 Power save mode - активируйте режим энергосбережения в настройках
👉 Project structure - разделите большой проект на модули
👉 Обновление IDE - используйте стабильную версию Studio и обновляйтесь своевременно

Для получения детальных настроек и дополнительных советов читайте полную статью.

🔗 Альтернативная ссылка

#android #AndroidStudio
Please open Telegram to view this post
VIEW IN TELEGRAM
Reanimator - простоя библиотека для Jetpack ViewModel (с поддержкой KMP) для работы с состоянием. Подробный разбор в статье (EN,11м) или альтернативной ссылке

@Serializable
data class MyUiState(
// Persistent
val data: List<String> = emptyList(),
val selectedItem: String? = null,
// Transient
val isLoading: Boolean = false,
val error: String? = null
)

class MyViewModel(private val savedStateHandle: SavedStateHandle) : ViewModel() {

// Define which properties are transient
private val transientProps = listOf("isLoading", "error")

// Declare your state flow - Reanimator handles the rest!
private val _uiState by savedStateHandle.getMutableStateFlow(
defaultValue = MyUiState(), // Initial/default state
coroutineScope = viewModelScope, // Scope for saving changes
transientProperties = transientProps // What NOT to save
// key = "custom_state_key" // Optional: custom key
)
val uiState: StateFlow<MyUiState> = _uiState.asStateFlow()

// ... rest of your ViewModel logic ...

fun updateData(newData: List<String>) {
// Just update the state - Reanimator saves persistent parts automatically
_uiState.update { it.copy(data = newData, isLoading = false) }
}
}


#android #kmp
DeepWiki - сервис по созданию подробной документации для Git репо и возможность с помощью AI спрашивать интересующие вас вопросы.

Чтобы использовать сервис надо просто в адресе на репо в GitHub поменять хост на deepwiki.com

https://github.com/user/repo -> https://deepwiki.com/user/repo


Сделал пример на основе своей либы ViewBindingPropertyDelegate. Результат тут и он довольно хороший. Сделал также толковые диаграммы для описания работы, а также описал архитектуру.

#ai
🚀 Тестируйте Android-приложения на 200+ реальных устройствах — без затрат на железо и админа!

Преимущества Мобильной фермы Selectel:

✔️ Мгновенный доступ к свежим и редким Android-устройствам (и iOS при необходимости)
✔️ Параллельный запуск тестов — ускоряйте проверки в разы
✔️ Нативные производительность и баги — тестируйте на реальном железе, а не на эмуляторе
✔️ Интеграция с популярными фреймворками (Espresso, UI Automator, Appium и др.)
✔️ Гибкая тарификация — платите только за минуты использования (от 1 ₽/мин)

❗️Запросите демо-доступ бесплатно и убедитесь, как это упрощает жизнь!

👉 Оставить заявку

Реклама. АО «Селектел». ИНН 7810962785
This media is not supported in your browser
VIEW IN TELEGRAM
Пример(4м) использования DynamicColors API для изменения цвета элементов RecyclerView на основе картинки в этом элементе

#android #material
🔨 Инструкция по использованию локальной AI модели в Android Studio для автокомплита, чата и др. функций.

#android #ai #androidstudio
Please open Telegram to view this post
VIEW IN TELEGRAM