Android Broadcast – Telegram
Android Broadcast
14.4K subscribers
3.68K photos
367 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
🐘 Вышел Gradle 8.13

🔥 Автоматическая загрузка JVM для Gradle Daemon: теперь Gradle может автоматически загружать необходимую версию JVM для работы Daemon, если подходящая версия не найдена локально.
👉 В Scala-плагине появилась возможность явно задавать версию Scala через расширение scala.
👉 Точные временные метки в JUnit XML: временные метки в отчетах JUnit XML теперь имеют миллисекундную точность, что улучшает детализацию отчетов.
🛠 Более 700 мелких исправлений и улучшений

Кроме того, добавлены улучшения для авторов сборок и разработчиков плагинов, включая улучшенный доступ к директории настроек в скриптах сборки, новый отчет о преобразовании артефактов, возможность создания пользовательских отчетов о тестировании и новый плагин distribution-base - сборка ZIP или TAR с необходимыми артефактами из проекта

#gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36👎5
🚀 Тестирование ViewModel стало проще

В AndroidX Lifecycle 2.9.0 появилось новое API для тестирования ViewModel - ViewModelScenario. Для использования этого API необходимо подключить артефакт "androidx.lifecycle:lifecycle-viewmodel-testing".

Пример использования:
class JetpackViewModelTest {

@Test
fun testStateRestoration() = runTest { // this = TestScope
viewModelScenario { // this = CreationExtras
SampleViewModel(
scope = this@runTest,
saveStateHandle = createSavedStateHandle(),
)
}.use { scenario: ViewModelScenario ->
scenario.state.data = "testValue"
scenario.recreate()
assertEquals("testValue", scenario.state.data)
}
}
}

class SampleViewModel(
scope: CoroutineScope,
private val saveStateHandle: SavedStateHandle,
) : ViewModel(scope) {
companion object {
private const val STATE_KEY = "state_key"
}

var data: String?
get() = saveStateHandle.get<String>(STATE_KEY)
set(value) {
saveStateHandle.set(STATE_KEY, value)
}
}


#android #kmp #тестирование #jetpackupdate
Please open Telegram to view this post
VIEW IN TELEGRAM
👍47👎7
📹 Непростые вопросы про Kotlin Coroutines, Александр Гирев (40м)

Однажды пятничным вечером Александр и его коллега задумались над вопросом: где живут корутины, когда запустивший их coroutineScope героически погибает в жерновах GC? Субботнее утро было проведено за чтением статей и исходников.

Вот так и родилась идея доклада. В нем — ответы на вопросы об устройстве и работе корутин для самых любознательных.

📹 Версия на VK Video

#kotlin #coroutines
Please open Telegram to view this post
VIEW IN TELEGRAM
30👍6👎6
⚰️ Библиотеки RxIdler и okhttp-idling-resource теперь depreacated

Десять лет назад Espresso привнес в тестирование Android одно из своих ключевых понятий – idling resource. Этот механизм ждал, пока приложение выполнит фоновую работу, прежде чем тест мог продолжиться. Square выпустили RxIdler и okhttp-idling-resource для мониторинга RxJava и OkHttp. Сегодня пришло время отправить их в архив.

Что не так с idling resource?
Idling resource привязывает тесты к внутренней реализации приложения, а не к пользовательскому взаимодействию. Настоящий пользователь не ждет, пока OkHttp станет “idle” – он смотрит на UI. Если кнопка “Продолжить” загорелась зеленым – значит, можно нажимать.

💡 Как теперь тестировать ожидания?
Google обновил рекомендации, и теперь Compose предлагает встроенные API для ожидания условий. Для View-based интерфейсов можно написать кастомный ViewAction, который зацикливается на проверке условия, пока оно не выполнится.

Deprecated статус не значит что библиотеки больше не рабоают. Вы можете их продолжать использовать, они стабильны, но подход больше не рекомендуется к использованию.

#android #compose #okhttp #rxjava #тестирование
Please open Telegram to view this post
VIEW IN TELEGRAM
11👎7👍6😢1🎉1
Есть ли функции на Server Driven UI (SDUI, он же BDUI) в вашем приложении?
Anonymous Poll
33%
Да
51%
Нет
7%
Не знаю
2%
Не занимаюсь разработкой
8%
Не участвую в опросе
👎20👍7
🤖 Хорошая статья с простым разбором SDUI (4м)

👉 Что такое Server Drive UI (SDUI), он же BDUI
👉 Зачем его применяют
👉 Каким приложениям будет полезен подход

#android #sdui
Please open Telegram to view this post
VIEW IN TELEGRAM
👎34🔥256👍4😢1
Белорусское комьюнити, вы там как?

Именно такой вопрос возникает после просмотра нового выпуска подкаста с Лесей Набока, Глебом Кудрявцевым и Кириллом Розовым.

🙊 Кирилл, мобильный разработчик, андроид-эксперт и блогер, рассказал, как живет белорусский IT-рынок. Что случилось с конференциями и почему местные айтишники не готовы к рынку работодателей.

Смотрите выпуск и отвечайте на главный вопрос Глеба про Липецк 😁

Для удобства подгрузили подкаст на площадки:
📺 YouTube
📺 Rutube
🎵 Яндекс.Музыка
💙 VK
Please open Telegram to view this post
VIEW IN TELEGRAM
👎41👍18🔥22
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33👎74
🚀 Вышел Coordinator Layout 1.3.0

В новой версии добавили поддержку управления клавишами, исправили баги и доабвили новые примеры

#android #jetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13👎53
Вышел Room 2.7.0-rc01 где исправили баг Room, который приводил к крешу KSP процессора на iOS с Kotlin 2.1

#android #jetpack #kmp #sqlite
👍24👎7🤯2
🚀 Core-Viewtree 1.0.0 — стабильный релиз! 🎉

AndroidX представил первую стабильную версию библиотеки core-viewtree, которая вводит новое понятие — disjoint parent для View, дополнительно к уже существующему View.parent

🔍 Что это значит?
Теперь View может иметь родителя, который есть у View, но не задан через View.parent. Это полезно в случаях, когда элемент находится вне стандартной иерархии, например: ViewOverlay, попапы, диалоги.

Такой подход позволяет гибко управлять связями между View, особенно в анимациях и сложных UI-компонентах.

Пример использования
class CustomOverlayView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null
) : View(context, attrs) {

fun attachToOverlay(overlayView: View) {
// Устанавливаем overlayView как разобщённого родителя
ViewTreeDisjointParent.set(this, overlayView)
}
}


Где используется
AndroidX автоматически задаёт disjoint parent для ViewOverlay, начиная с Transition 1.6.0-alpha01. Также разработчики могут самостоятельно назначать такие связи.

Будете использовать в своих проектах? Делитесь мыслями в комментариях! 👇

#android #jetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
👎28👍14🤯53
🔥 Ищем инженера по разработке и кастомизации Android OS

💡 Проект связан с разработкой ретро-модели телефона, сочетающей современные технологии и минималистичный интерфейс. Устройство основано на Android 14 Go Edition, требует кастомизации системы, оптимизации работы с ограниченными ресурсами и интеграции ключевых функций, включая VoLTE, GPS, камеру, музыкальный плеер и NFC.

👉 Подробнее о вакансии по ссылке
❗️ Для отклика на вакансию пишите @Irina_HRD с указанием от Android Broadcast

#вакансия
🔥17👎12👍22
📹 Как строится мобильная архитектура в AvitoTech (1ч)

Я поговорил с мобильным архитектором Александром Бильчуком из AvitoTech о том, как работают архитектурные команды в одной из крупнейших IT-компаний.

📌 В выпуске:

👉 Какие задачи решает отдел мобильной архитектуры
👉 Влияние Jetpack Compose, SwiftUI, AI на архитектуру
👉 Как посчитать пользу архитектурных решений?
👉 Как стать мобильным архитектором?

Если хотите глубже понять, как принимаются архитектурные решения в масштабных продуктах – обязательно к просмотру!

#AndroidBroadcast #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35👎21🔥1194
Forwarded from AvitoTech
🔥 От собеседования до оффера лида за неделю? Правильный ответ: «Я в деле!»

Итак, обо всём по порядку. С 29 по 30 марта проведём марафон Avito TeamLead для опытных лидов в команды:
➡️ вертикалей (Авито Работа, Товары, Недвижимость, Авто и Услуги);
➡️ горизонталей (рекомендации, главная страница, поиск);
➡️ платформы (Backend Driven UI, Platform as a Service и другие сервисы).

Всего будет три этапа:
1️⃣ заявка
2️⃣ техсобеседование
3️⃣ решение кейсов и менеджерское интервью.
А после, если случится мэтч, оффер!

Ждём тех, кто уже имеет опыт в разработке от 5 лет, управлении командой от года и владеет DevOps-практиками.

Узнали себя? Тогда оставляйте заявку на странице марафона. И до встречи 29 марта!

#management_avitotech
Please open Telegram to view this post
VIEW IN TELEGRAM
👎298🔥4🤯1
Есть в ли в вашем проекте com.android.dynamic-feature Gradle модули ?
Anonymous Poll
8%
Да
68%
Нет
18%
Что это
1%
Не пишу вовсе или нативно под Android
5%
Не участвую в опросе
👍6👎51
🤖 Руководство(EN,5м) по добавлению выбора языка с помощью Jetpack API и интеграции его с Jetpack Compose

Ссылка без VPN

#android #jetpack #compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24👎82🔥2
Как мы ускорили работу с базой данных в Android-приложении (11м)

Разработчик поделился опытом, какие практики применялись для ускорения работы с SQLite в Android: неоптимальные обращения к БД в циклах и их последствия. Также не стоит хранить JSON-объекты в виде строк в БД (это кажется слишком очевидным).

Команда столкнулась с этими проблемами, объяснила, почему это плохо, и как можно исправить ситуацию, чтобы производительность приложения не снижалась из-за обращений к БД.

#android #sqlite #производительность
👍18👎10🤯11
Media is too big
VIEW IN TELEGRAM
Анонсировали новый эпизод TheAndroidShow, который пройдет 13 марта в 20:00 (GMT+3)

#android #google #theandroidshow
👍17👎108
Media is too big
VIEW IN TELEGRAM
⚙️ Интервью с командой Compose Runtime про недавние оптимизации, что будет дальше и лучшие практики. Оригинал можно посмотреть/послушать на 📹 YouTube

#android #compose #производительность #AndroidDevelopersBackstage
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👎85👍41
🤖 App Widget получают ранжирование по качеству (Quality Tier)

Для App Widget представили Quality Tiers — оценку качества App Widget. Состоит из 3 классов:
🏆 Tier 1 — самый высокий. Соответствует всем требованиям по разметке, цветам, доступности и интеграции с системой.
👍 Tier 2 — стандарт качества. Соответствует основным требованиям для App Widget.
😞 Tier 3 — низкое качество. Фактически любой виджет, который просто есть в приложении.

Подробнее про тиры качества читайте в официальной документации.

#android #appwidget
👍11👎753