Какие у вас отношения с технологией Passkey?
Anonymous Poll
45%
Что это?
37%
Слышал(а), но не использую
10%
Использую её, где есть поддержка
3%
Интегрировали в приложение
1%
Другой вариант
8%
Не участвую в опросе
Изменение размера страницы в памяти от 4 KB в 16 KB даст для приложений:
🚀 Ускорения запуска приложений
🔋 Сокращение расхода батареи
📷 Ускорение включения камеры
Новая требование Google Play обязует реализовать поддержку работы всех новых приложений и обновлений с targetSdk 35 (Android 15). Изменение вступает в силу с 1 ноября 2025 года
Что нужно делать
👉 Обновить библиотеки с нативынм кодом до версий с поддержку нового размера страницы
👉 Перекомпилировать свой нативный код на C/C++ с последней версией инструментов
В Google Play в AppBundle Explorer вы будете видеть совместимо ли ваше приложение cо страницей размера 16KB.
Полезные ссылки
🔗 Как адаптировать приложение
🔗 Как провести тестирование приложения на таком устройстве
🔗 Подробная документация по 16Kb page size
#android #googleplay #ndk
Please open Telegram to view this post
VIEW IN TELEGRAM
Минусы повышения размера страницы памяти
⚠️ Мелкие объекты “тратят” больше памяти.
Если в 4 КБ-странице лежало 5 мелких объектов, в 16 КБ — может быть “пустого” пространства больше. Но в современных условиях прирост производительности важнее.
⚠️ Нужна поддержка от железа.
Процессор и ядро должны поддерживать размер страницы 16 КБ — это не просто «переключатель» в настройках.
#android #ndk
⚠️ Мелкие объекты “тратят” больше памяти.
Если в 4 КБ-странице лежало 5 мелких объектов, в 16 КБ — может быть “пустого” пространства больше. Но в современных условиях прирост производительности важнее.
⚠️ Нужна поддержка от железа.
Процессор и ядро должны поддерживать размер страницы 16 КБ — это не просто «переключатель» в настройках.
#android #ndk
Очень классная статья от @nek_12_personal про лучшие практики для загрузки данных из UI, чтобы не выполнять лишнюю работу и не занимать ресурсы, когда UI не показывается
❌ Чего следует избегать
Запуск загрузки данных в блоке init может привести к устаревшей информации при возвращении пользователя к экрану после длительного отсутствия.
Такой подход может вызвать множественные параллельные запросы, что увеличивает нагрузку на систему и усложняет управление состоянием.
Сбор данных в viewModelScope без учёта видимости UI может привести к утечкам памяти и избыточному потреблению ресурсов.
Перенос логики загрузки данных в UI нарушает принцип разделения ответственности и усложняет архитектуру приложения.
Все подробности в статье, которую рекомендую вам изучить подробно!
🔗 Альтернативная ссылка
#kotlin #android #coroutines
Please open Telegram to view this post
VIEW IN TELEGRAM
Для конвертации холодного Flow в горячий StateFlow для работы с состоянием (обычно происходит в ViewModel) стоит использовать оператор Flow<T>.stateIn(), с заданием политики запуска SharingStarted.WhileSubscribed
flow..stateIn(
scope = viewModelScope,
initialValue, // задаём начальное значение
started = SharingStarted.WhileSubscribed(
stopTimeoutMillis = 5.seconds,
replayExpirationMillis = 5.seconds,
),
)
SharingStarted.WhileSubscribed() — умный способ включать сбор данных только когда есть подписчики, и автоматически останавливать его, когда они исчезают. Важно настроить несколько значений:
👉 Параметр
stopTimeoutMillis
- задаем какое время пройдет после того как пропадет последний подписчик чтобы остановить StateFlow. По умолчанию стоит 0 мс, но Google рекомендует выставлять 5 секунд. Это позволит не останавливать Flow при пересоздании UI при смене конфигурации или если пользователь быстро свернул/развернул приложений.👉 Параметр
replayExpirationMillis
- указывает через какое время после остановки сбросить кэш значений StateFlow и начать с начала, а именно initialValue
#kotlin #coroutines
Please open Telegram to view this post
VIEW IN TELEGRAM
Знали про необходимость использования WhileSubscribed в stateIn ?
Anonymous Poll
44%
Да
45%
Нет
3%
Не использую Flow/корутины
1%
Не пишу код/не пишу на Kotlin
1%
Другой вариант
6%
Не участвую в опросе
#android #jetpack #media3 #camerax
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#figma #ai
Please open Telegram to view this post
VIEW IN TELEGRAM
Android Mainline модуль — это …
Anonymous Quiz
16%
Форк ядра Linux, скомпилированное Google’ом для устройств Pixel
2%
стороннее приложение для мониторинга батареи
3%
тема оформления интерфейса, устанавливаемая из Play Маркет
44%
системный компонент Android, без необходимости полного OTA-обновления
35%
Не участвую
До Android 10 фреймворк ОС был монолитным и любое изменение приводили к необходимости раздачи новой версии вендором.
Google выделила во фреймворке (и продолжает делать) компоненты и теперь может обновлять их независимо. Делать это может вендор или приложение с высокими системными правами, например Google Play Services.
Благодаря изменению, теперь не нужно ждать новой версии прошивки от вендора, а вы получите новую версию компонентов и даже портирование новых API из более поздних версий ОС. Так например было с Photo Picker, который появился в Android 14, но его перенесли и на Android 12+, благодаря тому что был сделан модуль медиа, частью которого и есть Photo Picker.
Более подробно читайте в документации
#androidos #android
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯 SOLID все. Берите CLARITY
C – Consistent abstraction levels
L – Limit interfaces
A – API over implementation
R – Reduce dependency complexity
I – Isolate dependency creation
T – Take exceptions when justified
Y – You decide
Берем?
C – Consistent abstraction levels
L – Limit interfaces
A – API over implementation
R – Reduce dependency complexity
I – Isolate dependency creation
T – Take exceptions when justified
Y – You decide
Берем?
Продолжение серии статей. Во второй части погружаются в то как устроена работа фокуса на Compose, а именно что происходит при запросе фокуса, вызовом requestFocus(), и что делается под капотом этого API
В первой части рассмотрели API для работы с фокусом в Compose
#android #androidtv #compose
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
В рамках The Android Show I/O Edition показали "самый большой редизайн Android за всё время" (со слов спикера). Нас ждет Material 3 Expressive - обновленная версия Material 3 на основе существующих токенов
Буду садиться разбираться и рассказывать на
#android #android16 #material #ui #material3expressive
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯 Material 3 Expressive классный, но он не взлетит
Выглядит все очень классно, но встает вопрос у меня один "Кто это будет адаптировать в своих приложения кроме Google?" Никто из крупных разработчиков приложений не использовал Material. Все строят свои UI Kit, а еще часто и кроссплатформенные. Производители оболочек тоже все это игнорируют.
Так для кого это изменение? Показать отделу дизайна что идет работа и получить новые ачивки? Да, владельцы Pixel и немного других вендоров увидят новый дизайн везде. Слишком большая свобода кастомизации Android оболочек и приложений убивает все крутые стремления Google.
Material 3 You не получил широкой адаптации. Попробуйте назвать 5 приложений не от Google, где вы видели Material 3 You. Я вот не смогу такого
⌨️Пишите в комментариях, что думаете вы о Material 3 Expressive и его будущем
Выглядит все очень классно, но встает вопрос у меня один "Кто это будет адаптировать в своих приложения кроме Google?" Никто из крупных разработчиков приложений не использовал Material. Все строят свои UI Kit, а еще часто и кроссплатформенные. Производители оболочек тоже все это игнорируют.
Так для кого это изменение? Показать отделу дизайна что идет работа и получить новые ачивки? Да, владельцы Pixel и немного других вендоров увидят новый дизайн везде. Слишком большая свобода кастомизации Android оболочек и приложений убивает все крутые стремления Google.
Material 3 You не получил широкой адаптации. Попробуйте назвать 5 приложений не от Google, где вы видели Material 3 You. Я вот не смогу такого
⌨️Пишите в комментариях, что думаете вы о Material 3 Expressive и его будущем