Android Good Reads
Представили первый девайс для Android XR. Дорого-богато, выглядит как Apple Vision. Теперь есть куда применить Android XR SDK. Кстати, можно и через KMP зацепить
Пространственные вычисления в Android XR
До боли знакомый подход с оптимизацией только видимых элементов. RecyclerView передает горячий привет. Android XR только-только разгоняется, так что время вкатиться еще есть.
До боли знакомый подход с оптимизацией только видимых элементов. RecyclerView передает горячий привет. Android XR только-только разгоняется, так что время вкатиться еще есть.
Charles Muchene
Jetliner XR: Building Spatial Apps on Android XR Platform
Explore Android XR development by building a 3D jetliner app. Learn spatial UI, SceneCore 3D models, and Jetpack Compose XR with practical examples and code
👍1
История одной утечки памяти
Само по себе расследование длинное и стоит того чтобы почитать, поэтому вот вам короткое напоминание:
👉 В LeakCanary есть компонент, работающий во время выполнения, который "привязывается" к объектам с известным жизненным циклом. Когда эти объекты получают событие жизненного цикла
👉 Если же какой-либо из этих объектов удерживается в памяти, то есть "утекает", LeakCanary инициирует создание
Само по себе расследование длинное и стоит того чтобы почитать, поэтому вот вам короткое напоминание:
👉 В LeakCanary есть компонент, работающий во время выполнения, который "привязывается" к объектам с известным жизненным циклом. Когда эти объекты получают событие жизненного цикла
DESTROY, LeakCanary использует WeakReference и ReferenceQueue, чтобы убедиться, что они собираются сборщиком мусора, как и ожидалось.👉 Если же какой-либо из этих объектов удерживается в памяти, то есть "утекает", LeakCanary инициирует создание
heap dump, а затем анализирует этот дамп, чтобы найти кратчайший путь сильных ссылок от GC Roots до "утекающего" объекта. Этот путь называется leak trace и он подсвечивает ссылки, которые мешают сборщику мусора удалить объект.Block Engineering Blog
The LeakCanary Method
This blog post shares a method for root causing Android memory leaks
❤5👍4🔥3⚡1
Обновилась страничка мультиплатформы в официальной документации по Андроиду
Для тех кто использует KMP ничего нового, но если вам не знакомо что это - будет полезно глянуть
Для тех кто использует KMP ничего нового, но если вам не знакомо что это - будет полезно глянуть
👍6
Android Good Reads
Я тут ковыряюсь со своим проектиком простеньким. Осваиваю чудеса делегирования своей работы AI. И первый раз наткнулся на это API в Android. Как-будто оно +- бесполезное, но и в то же время всегда до этого решал через бекенд или Places такую проблему. h…
Микродозы AI для мобильных разработчиков
Напомню, что Android Studio очень сильно выросла по фичам для AI. В статье приводится промтп и демонстрация его работы. Сценарии работы из статьи:
👉 Дебаг UI через ожидаемый-реальный результат
👉 Первичное кодревью перед отправкой команде. Наверно это самая часто используемая фича у меня в команде, у нас работает Copilot как авторевьювер до ревью человеком. Сильно снижает количество вопросов на ревью и подмечает исправления
👉 Замена
👉 Улучшенный поиск по проекту. Но тут скорее помошник для тех кто не умеет писать regex
C недавних пор вы можете гонять локальные модели и запускать все те же самые фичи не на Gemini, а на своей модельке
Я честно признаюсь, что меня зацепило название, а не содержание
Напомню, что Android Studio очень сильно выросла по фичам для AI. В статье приводится промтп и демонстрация его работы. Сценарии работы из статьи:
👉 Дебаг UI через ожидаемый-реальный результат
👉 Первичное кодревью перед отправкой команде. Наверно это самая часто используемая фича у меня в команде, у нас работает Copilot как авторевьювер до ревью человеком. Сильно снижает количество вопросов на ревью и подмечает исправления
👉 Замена
Remove unused Resources. Фича сама по себе не всегда работает как надо, особенно в многомодульных проектах где отключены часть индексов и модулей в угоду скорости сборки. Gemini справляется с этим сильно лучше👉 Улучшенный поиск по проекту. Но тут скорее помошник для тех кто не умеет писать regex
C недавних пор вы можете гонять локальные модели и запускать все те же самые фичи не на Gemini, а на своей модельке
Я честно признаюсь, что меня зацепило название, а не содержание
👍4😁4
Ребята из Яндекс Вертикалей собирают всех 14 ноября на мультистек-вечеринку о хобби и технологиях. Вдохновимся историями коллег об удачных внерабочих экспериментах, чтобы взглянуть по-новому на свои увлечения.
В программе события:
Разберёмся вместе с командой Вертикалей, как выбрать стек и наконец начать проект, который долго откладывали. А завершим вечер афтепати с DJ-сетом и разными активностями.
Подробности и регистрация
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👎3🔥3👍2
Android Good Reads
Glitch effect в Compose Делаем красивый глич эффект нативными компонентами. Воспринимайте как туториал к тому как делать сложно-красивую анимацию
Продолжаем историю с Glitch эффектом.
Как сделать этот же эффект не через Composable, а с помощью Android AGSL shaders. Внутри вас ждет:
👉 Что такое шейдеры
👉 Реализация
👉 Детальный сравнительный анализ производительности обоих подходов
В статье очень много демок, стоит прочитать!
Автор разбора - https://bento.me/mightyseal
Как сделать этот же эффект не через Composable, а с помощью Android AGSL shaders. Внутри вас ждет:
👉 Что такое шейдеры
👉 Реализация
👉 Детальный сравнительный анализ производительности обоих подходов
В статье очень много демок, стоит прочитать!
Автор разбора - https://bento.me/mightyseal
Medium
GPU-Accelerated Effects: Glitch at Scale
A few weeks ago I saw a great article by Sina Samaki about making a glitch effect using compose. As someone who enjoys doing low level…
🔥5❤2
Lenter — плагин для IntelliJ IDEA
Автоматизирует рутину CMP разработчика. Локально!
Главная фишка — Preview всего и вся:
👉 Цвета Compose — живые иконки прямо в коде
👉 Drawable в дереве — миниатюры вместо стандартных иконок файлов
👉 Inline preview — картинки рядом с
👉 Vector XML — полноценный редактор с
👉 Строковые ресурсы — содержимое
👉 KDoc генератор — описания классов/функций через Ollama (локально!)
👉 Генератор баг-репортов в Wiki Markup
👉 Отправка комментариев прямо из IDE
👉 Автоопределение задачи из Git-ветки
Ссылка на плагин: https://plugins.jetbrains.com/plugin/28860-lenter
Сорцы: https://github.com/thebordev/lenter
Автоматизирует рутину CMP разработчика. Локально!
Главная фишка — Preview всего и вся:
👉 Цвета Compose — живые иконки прямо в коде
Color(0xFF42A5F5) 👉 Drawable в дереве — миниатюры вместо стандартных иконок файлов
👉 Inline preview — картинки рядом с
painterResource() / vectorResource()👉 Vector XML — полноценный редактор с
zoom и вкладкой Preview👉 Строковые ресурсы — содержимое
stringResource() на нужном языке👉 KDoc генератор — описания классов/функций через Ollama (локально!)
👉 Генератор баг-репортов в Wiki Markup
👉 Отправка комментариев прямо из IDE
👉 Автоопределение задачи из Git-ветки
Ссылка на плагин: https://plugins.jetbrains.com/plugin/28860-lenter
Сорцы: https://github.com/thebordev/lenter
🔥8👍2
Опрос про то, как вы разрабатываете UI
Мне для небольшого пет-проекта очень важно собрать с вас немного информации про то, как вы подходите к разработке UI – что вас в таких задачах больше всего раздражает, что нравится, и как вы при этом используете AI инструменты (если используете их вообще).
А среди всех, кто заполнит опрос, разыграю сертификат в Ozon. Опрос открыт до сегодняшнего вечера, результаты горят, так что можете потратить пять минут прямо сейчас, и начнете день с прекрасного полезного дела!
Мне для небольшого пет-проекта очень важно собрать с вас немного информации про то, как вы подходите к разработке UI – что вас в таких задачах больше всего раздражает, что нравится, и как вы при этом используете AI инструменты (если используете их вообще).
А среди всех, кто заполнит опрос, разыграю сертификат в Ozon. Опрос открыт до сегодняшнего вечера, результаты горят, так что можете потратить пять минут прямо сейчас, и начнете день с прекрасного полезного дела!
survey.alchemer.eu
UI development survey
UI development survey.
👍6❤2
Ошибки — неотъемлемая часть любого роста. Новый сезон Podlodka Soft Skills Crew (24–28 ноября) посвящён умению ошибаться — как перестать бояться промахов, извлекать из них пользу и превращать факапы в источник развития.
📌 В программе:
• Чистый код мышления — почему мозг боится ошибок и как “починить” когнитивные баги (Ксения Ильянович)
• Ошибайся — позорься до конца — чем ошибки полезнее успехов и как перестать стыдиться факапов (Вера Стёксова)
• Fail night: Я ошибся, и мир не рухнул — честные истории промахов от экспертов и выводы, которые сделали их сильнее
• Ошибки, которые можно, и ошибки, которые нельзя — как разные культуры и руководители реагируют на промахи (Станислав Тагиев)
💡 Ошибки перестают пугать, когда их разбирают честно.
🗓24–28 ноября
🔗Подробности и билеты: https://podlodka.io/softskillscrew
📌 В программе:
• Чистый код мышления — почему мозг боится ошибок и как “починить” когнитивные баги (Ксения Ильянович)
• Ошибайся — позорься до конца — чем ошибки полезнее успехов и как перестать стыдиться факапов (Вера Стёксова)
• Fail night: Я ошибся, и мир не рухнул — честные истории промахов от экспертов и выводы, которые сделали их сильнее
• Ошибки, которые можно, и ошибки, которые нельзя — как разные культуры и руководители реагируют на промахи (Станислав Тагиев)
💡 Ошибки перестают пугать, когда их разбирают честно.
🗓24–28 ноября
🔗Подробности и билеты: https://podlodka.io/softskillscrew
❤3👍2💅2
Апгрейд диплинков с Dynamic App Links
Не путать с Firebase Dynamic Links, они уже пару лет как не поддерживаются. Тут все круче. С Android 15 у нас появились App links
Почему стоит обратить внимание?
👉 Гибче чем диплинки
👉 Динамически линки можно менять без раскатки приложения в прод
👉 A/B тесты из коробки через query-param
Пример
Не путать с Firebase Dynamic Links, они уже пару лет как не поддерживаются. Тут все круче. С Android 15 у нас появились App links
Почему стоит обратить внимание?
👉 Гибче чем диплинки
👉 Динамически линки можно менять без раскатки приложения в прод
👉 A/B тесты из коробки через query-param
?in_app=trueПример
assetlinks.json[
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example.app",
"sha256_cert_fingerprints": [
"14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"
]
},
"relation_extensions": {
"delegate_permission/common.handle_all_urls": {
"dynamic_app_link_components": [
{ "/": "/products/*" },
{ "/": "/shoes", "?" : { "in_app": "true" } },
{ "/": "*", "exclude": true }
]
}
}
}
]
Victor Brandalise | Collecting the best of what others have already figured out. Android & Kotlin
Improving your deep links with Dynamic App Links by Victor Brandalise
Users expect to tap a link and land straight in-app, not going to the browser. With the new Android 15 (API level 35) arrival, Android’s App Links system has gained a powerful upgrade: Dynamic App Links. You get granular link-routing, exclusions, query-parameter…
👍6❤2🔥2
Новые метрики в Google Play Store
Новые метрики касающие энергопотребления приложений. Планка качества приложений повышается. Пока что метрика в бете, но с Марта 2026 года приложение будет убрано из рекомендаций, если приложение не удовлетворяет следующему:
Кстати, я прошел через все этапы публикации в Google Play по новым правилам и опубликовал свое приложение
Новые метрики касающие энергопотребления приложений. Планка качества приложений повышается. Пока что метрика в бете, но с Марта 2026 года приложение будет убрано из рекомендаций, если приложение не удовлетворяет следующему:
Процент сеансов пользователей, в которых совокупное использование wake lock без исключения превышает 2 часа
Кстати, я прошел через все этапы публикации в Google Play по новым правилам и опубликовал свое приложение
👍3🔥2
О том как Reddit использует R8 оптимизацию для улучшения перформанса
Никакого рокет сайнса, но показатели хорошие:
👉 Стабильность выросла, 30% снижение ANR rate
👉 40% оптимизация холодного старта
👉 25% импрув в скорости рендеринга кадров
👉 14% снижение размера приложения
Бенчмаркали с помощью Jetpack Macrobenchmark и UIAutomator API
Никакого рокет сайнса, но показатели хорошие:
👉 Стабильность выросла, 30% снижение ANR rate
👉 40% оптимизация холодного старта
👉 25% импрув в скорости рендеринга кадров
👉 14% снижение размера приложения
Бенчмаркали с помощью Jetpack Macrobenchmark и UIAutomator API
👍4🔥3
Jake Wharton о том почему нужно использовать androidx-beta
На самом деле вся проблема в особенностях версионирования androidx библиотек. Вот их гайдлайн
А вот привычный нам всем semantic
Вывод: Спокойнее относимся к бета версиям androidx и принимаем тот факт, что у гугла даже версионирование своё
На самом деле вся проблема в особенностях версионирования androidx библиотек. Вот их гайдлайн
А вот привычный нам всем semantic
Вывод: Спокойнее относимся к бета версиям androidx и принимаем тот факт, что у гугла даже версионирование своё
😁11👍3😱2🙈1😡1
Compose Muliplatform Web Beta
Дождались, вышла из альфы.
👉 Теперь можно попробовать в playground (выбрать вместо JVM надо)
👉 Самый понятный юзкейз это шарить ваше CMP приложение в веб сразу для демок
Дождались, вышла из альфы.
👉 Теперь можно попробовать в playground (выбрать вместо JVM надо)
👉 Самый понятный юзкейз это шарить ваше CMP приложение в веб сразу для демок
JetBrains: Developer Tools for Professionals and Teams
Compose Multiplatform for Web
From instant previews to internal dashboards, use your Compose and Kotlin skills to deliver interactive web experiences without learning a new framework.
🔥12👍5
Опрос подписчиков Android Good Reads
Помогите мне разобраться с тем, как лучше вести канал – расскажите немного про себя, свой опыт в разработке, а главное – про то, какие темы канала вам интереснее всего! Опрос небольшой, минуты за 3 точно справитесь.
А чтобы обмен получился более честным, среди ответивших на опрос я разыграю сертификат на OZON
👉 Пройти опрос 👈
Помогите мне разобраться с тем, как лучше вести канал – расскажите немного про себя, свой опыт в разработке, а главное – про то, какие темы канала вам интереснее всего! Опрос небольшой, минуты за 3 точно справитесь.
А чтобы обмен получился более честным, среди ответивших на опрос я разыграю сертификат на OZON
👉 Пройти опрос 👈
🔥6❤2👍2💅1
Портируем Android приложение на Quest
Зачем? Потому что можем. Потому что, чем больше девайсов поддерживает ваше приложение, тем больше охват вашего приложения.
👉 Выставить удобные контролы для AR девайса. Тут не совсем привычное управление, так что местами придется редизайнить
👉 Докинуть необходимых пермишнов и вырезать неподдерживаемые. Получается надо сделать отдельный
👉 Удалить неподдерживаемые зависимости, потому что внутри нет Google Mobile Services (GMS). Но все мы это делали для Huawei уже
В целом, работы там не на 30 минут явно, но в статье подробно описывается на живом примере как это сделать
Зачем? Потому что можем. Потому что, чем больше девайсов поддерживает ваше приложение, тем больше охват вашего приложения.
👉 Выставить удобные контролы для AR девайса. Тут не совсем привычное управление, так что местами придется редизайнить
👉 Докинуть необходимых пермишнов и вырезать неподдерживаемые. Получается надо сделать отдельный
flavor, например👉 Удалить неподдерживаемые зависимости, потому что внутри нет Google Mobile Services (GMS). Но все мы это делали для Huawei уже
В целом, работы там не на 30 минут явно, но в статье подробно описывается на живом примере как это сделать
👍3❤2💅1