Telegram Web Link
Forwarded from AvitoTech
Официально: Android 16 только что вышел🤖
И мы уже разобрали его самые интересные фичи

Все они уже в новом выпуске AviCast! В нём Кирилл Розов, ведущий Android Broadcast, и Денис Стародубов, Android-инженер нашей команды Mobile Architecture, обсудили:
☑️ текущие обновления;
☑️ потенциальные ограничения для разработчиков и пользователей;
☑️ сходства и различия Android и iOS между собой.

Смотрим тут
⬇️

📺 YouTube
🔵 ВК Видео
💻 RuTube

#mobile_android
Please open Telegram to view this post
VIEW IN 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
Google обязует всех поддерживать Edge-to-edge в приложениях, при это системный UI для разработчиков такой 🫣 Ну а чё... стерпят

#android #android16
🤖 Из 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
Please open Telegram to view this post
VIEW IN TELEGRAM
Впервые за свой опыт использования Android столкнулся, что приложение требовало отключить USB Debugging в настройках. Приложение для покупки проходок в бизнес залы аэропорта.

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

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

#android #безопасность
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
🤖 Уверен что правильно работаешь с логами?

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

#android #производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
‼️ Что надо сделать? Не создавайте сообщения до того, как действительно убедитесь, что включено логирование и откладывать работу для на попозже (совет хорошо для всего). Например
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
🤖 Как удалить отладочный код в релизных сборках на примере логов

Еще одна рекомендация - используйте минификацию кода через 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
🤖 В 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
Используете подход Documentation-as-Code ? (не про документация в коде)
Anonymous Poll
13%
Да
14%
Нет
58%
Что это?
7%
Не пишу документацию вокруг проекта
1%
Другой вариант
7%
Не участвую в опросе
🚀 Новая 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
🏝 Стали доступны записи доклад с KotlinConf 2025

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

#kotlin #kotlinconf
Please open Telegram to view this post
VIEW IN TELEGRAM
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
🤖 Почему разработчик не контролирует, как выглядят уведомления в системной панели

Когда разработчик использует 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
🏗 Функциональное программирование в Android. Знакомство с парадигмой (21м)

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

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

#android #архитектура
2025/07/05 14:49:47
Back to Top
HTML Embed Code: