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
This media is not supported in your browser
VIEW IN TELEGRAM
📹 Как ускоряют Android-приложения в Яндексе: интервью с инженером (1ч)

В этом выпуске мы говорим с инженером по производительности из команды Яндекс Go: обсуждаем, как замеряют и оптимизируют работу Android-приложений, какие инструменты используют, и насколько важна низкоуровневая оптимизация на современных устройствах.

👨‍💻 Эксперт - Вадим Мезенцев, Android разработчик в Яндекс GO
Занимается платформенными задачами в мобильной разработкe. Некоторые из направлений: улучшение производительности приложений, CI/CD, архитектура, работа с сетью

📹 VK Video
📺 RuTube

#AndroidBroadcast #интервью #производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍295🔥4🤔3
Google обязует всех поддерживать Edge-to-edge в приложениях, при это системный UI для разработчиков такой 🫣 Ну а чё... стерпят

#android #android16
🔥115🤯49👍133🤔1
🤖 Из WearOS убирают поддержку циферблатов на основе AndroidX / Wearable Support Library (WSL)

Как часть улучшения качества работы WearOS компания отказывается от использования старых инструментов для создания циферблатов и переходит на Watch Face Format (уже скоро будет версия 4) - декларативный XML формат без написания кода для создания циферблатов 🤯

Все изменения вступают с 14 января 2026, а именно:
‼️ Пользователи не смогут установить циферблаты старых форматов. Те что уже были установлены, продолжат работать.
‼️ Разработчики циферблатов должны мигрировать на WFF
🪙 Для циферблатов старого формата отключат всю монетизацию
‼️ Если использовали Watch Face Studio для создания циферблата, тогда вам надо повторно отправить их в Google Play с использованием версии 1.8.7 и выше
⚰️ Публиковать циферблаты старого формата уже нельзя с 27 января 2025, только обновлять те что опубликовали ранее

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

#android #wearos #googleplay
Please open Telegram to view this post
VIEW IN TELEGRAM
9
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥184👍3
Впервые за свой опыт использования Android столкнулся, что приложение требовало отключить USB Debugging в настройках. Приложение для покупки проходок в бизнес залы аэропорта.

Знаю что есть проверки на root и эмуляторы, но вот на USB Debugging впервые 🤯

Кто знает зачем такое требование? От чего происходит защита?

#android #безопасность
🤔7510🤯2👍1
Media is too big
VIEW IN TELEGRAM
📹 Jetpack Navigation 3 Core Concepts (EN,11м)

Рассказ про основные принципы новой навигации от Google для Compose - Jetpack Navigation 3

0:00 Вступление
1:05 Что есть Навигация
2:08 Архитектура
4:40 Требования
5:26 Почему это так сложно
7:01 Задачи Navigation 3
9:02 Владение Backstack-ом
10:04 Будущее

#android #jetpack #compose #навигация
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26🤯94🤔1
🤖 Уверен что правильно работаешь с логами?

Разработчик решил оценить влияние логирования на работу приложения и описал в статье. Проблема только если создаете лишние объекты

#android #производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥32🤔1
‼️ Что надо сделать? Не создавайте сообщения до того, как действительно убедитесь, что включено логирование и откладывать работу для на попозже (совет хорошо для всего). Например
fun logD(tag: String, messageBuilder: () -> String) {
if (loggingEnabled) {
Log.d(tag, messageBuilder())
}
}


но автор еще не учел проверку уровня логирования:
fun logD(tag: String, messageBuilder: () -> String) {
if (loggingEnabled && Log.isLoggable(tag, Log.DEBUG)) {
Log.d(tag, messageBuilder())
}
}


или прийти к более общей функции
inline fun log(tag: String, level: Int, messageBuilder: () -> String) {
if (loggingEnabled && Log.isLoggable(tag, level)) {
when (level) {
Log.VERBOSE -> Log.v(tag, messageBuilder())
Log.DEBUG -> Log.d(tag, messageBuilder())
Log.INFO -> Log.i(tag, messageBuilder())
Log.WARN -> Log.w(tag, messageBuilder())
Log.ERROR -> Log.e(tag, messageBuilder())
else -> Log.d(tag, messageBuilder()) // fallback
}
}
}


#android #производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🤔43
🤖 Как удалить отладочный код в релизных сборках на примере логов

Еще одна рекомендация - используйте минификацию кода через R8/ProGuard чтобы удалить весь код логирования. Ничего лишнего не уйдёт в логи, а также повысите скорость работы

Добавьте в правила следующие инструкции
# Удаляем Log.v()
-assumenosideeffects class android.util.Log {
public static int v(...);
}

# Удаляем Log.d()
-assumenosideeffects class android.util.Log {
public static int d(...);
}

# Удаляем Log.i()
-assumenosideeffects class android.util.Log {
public static int i(...);
}


Подробнее про инструкцию assumenosideeffects читайте в документации

#android #proguard #r8 #оптимизация
Please open Telegram to view this post
VIEW IN TELEGRAM
👍543🤔1
🤖 В Android 16 появится поддержка десктопного режима на внешних дисплеях

В Android 16 QRP1 появилась поддержка десктопного режима при подключении внешних дисплеях. Включается режим плавающих окон, а значит приложения смогут иметь произвольный размер, управление перейдет в мышку и клавиатуру (а смысл иначе от внешнего дисплея?)

Совсем уже не новинка в мире Android, но какому количеству людей это будет необходимо? Делитесь своим мнением в комментариях

#android #android16 #desktop
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
31👍15🔥8
Используете подход Documentation-as-Code ? (не про документация в коде)
Anonymous Poll
13%
Да
14%
Нет
58%
Что это?
7%
Не пишу документацию вокруг проекта
1%
Другой вариант
7%
Не участвую в опросе
5
🚀 Новая Jetpack библиотека - Test Uiautomator Shell

Показали первую альфа версию Jetpack Test Uiautomator Shell - решения для выполнения команд в терминале. Фактически это backport UiAutomation.executeShellCommandRwe из API 34 (Android 14).

#android #androiddev #тестирование #автотесты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍152🔥2
🏝 Стали доступны записи доклад с KotlinConf 2025

Все сессии можно найти в расписании. Пока только на сайте, но там встроен YouTube плеер, так что позже выпустят плейлист. В @kotlin_broadcast буду выкладывать доклады и рассказывать самое интересное

#kotlin #kotlinconf
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥274
This media is not supported in your browser
VIEW IN TELEGRAM
‼️ Новое видео на 🪙 Boosty - Полный разбор Android Context (20 мин)

В новом видео погружаюсь в особенности того как работает Context, а именно:
👉 какие типы Context бывают
👉 почему Application класс != Application Context
👉 как Android ОС создает экземпляр Context и передает его в компоненты приложения
👉 советы по работе с Context

‼️ Всё это позволит вам лучше понимать работу с Contex, лучше организовать код и ответить на собеседования глубже, чтобы дать ответ уровня Senior!

Подписку на видео можно также оформить через Telegram

#AndroidBroadcast #android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35🔥21🤯74
🤖 Почему разработчик не контролирует, как выглядят уведомления в системной панели

Когда разработчик использует NotificationCompat.Builder для создания уведомлений из Android приложения, может показаться, что прямого контроля на внешний вид нету 🤯 На самом деле формируется не визуальный компонент, а объект данных, который описывает что есть в уведомление.

Этот объект — это просто структура, сериализуемая через Parcelable. Он передаётся в системный процесс через Binder — механизм межпроцессного взаимодействия в Android. А вот принимать и интерпретировать этот объект будет специальное системное приложение — SystemUI.

Уведомления отображаются не Android сам по себе, а конкретное приложение, которое называется com.android.systemui. И это приложение полностью отвечает за то, как будет выглядеть уведомление. Оно решает, какие поля отобразить, где их разместить, какой стиль применить, как будет выглядеть кнопка, будут ли видны иконки — и многое другое. Часть из данных может игнорироваться.

Вот почему одно и то же уведомление может выглядеть совершенно по-разному на разных устройствах и версиях ОС. Один и тот же вызов setContentTitle("Новость") может дать совершенно разный результат на Pixel с чистым Android и на Xiaomi с MIUI. Более того, даже RemoteViews, которые позволяют задавать кастомные layout’ы для уведомлений, могут игнорироваться или ограничиваться прошивками производителей.

Именно по этой причине я не люблю когда в уведомления вставляют Custom View, который выбивается из стиля и часто портит визуал системы и поведение. Мечтаю чтобы его поскорее запретили в Android. Пожалуйста, хотя бы в Android 17 🙏

Запомните ‼️ Уведомление в Android — это не UI объект, это контракт между приложением и SystemUI, который интерпретируется, а не исполняется дословно. Поэтому пишите уведомления так, чтобы они были понятны системе, а красоту UI вы можете контролировать только внутри вашего приложения.

#android #androiddev
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍756
🏗 Функциональное программирование в Android. Знакомство с парадигмой (21м)

Первая статья из серии про как построить архитектуру Android приложения в функциональном стиле. Стек: Kotln; Jetpack Compose; одна из UDF-архитектур (Redux, TEA, MVI); ArrowKt; Coroutines + Flow.

В начале рассматривают функциональную парадигму и отличия ее от других подходов (императивный и декларативный)

#android #архитектура
🔥232🤔2🤯1
🏝 Вышел Kotlin 2.2.0

Что нового в релизе языка:
👉 Превью context parametr
👉 Non-local break и continue теперь stable
👉 Kotlin/JVM: изменения в генерации метода по умолчанию
👉 Kotlin/Native: улучшения в управлением памятью
👉 Kotlin/Wasm: wasmJs таргет отделили от js таргета
🐘 Поддержка Gradle 7.6.3 - 8.14
👉 Base64 стало Stable

#kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
40👍5🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
⚙️ Liquid Glass Compose - библиотека для переноса эффекта стекла из iOS на Android в Compose.

Поддерживается Android 7.0, а на Android 13 и выше используются AGSL шейдеры, что повышает производительность и добавляет блюр.

Автор библиотеки - подписчик канал и буде рад звезде на GitHub и вашему мнению по коду решения в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
👍76🔥41🤯253