Android Good Reads
4.1K subscribers
400 photos
16 videos
1 file
2.17K links
Самые интересные статьи, видео и новости, связанные с Android разработкой. Не больше трёх материалов в день.

Размещение рекламы: @tanyasanovna

Автор канала: @Lamprof
Download Telegram
Надеюсь в скором будующем..
🤣36😡3😁2
История одной утечки памяти

Само по себе расследование длинное и стоит того чтобы почитать, поэтому вот вам короткое напоминание:

👉 В LeakCanary есть компонент, работающий во время выполнения, который "привязывается" к объектам с известным жизненным циклом. Когда эти объекты получают событие жизненного цикла DESTROY, LeakCanary использует WeakReference и ReferenceQueue, чтобы убедиться, что они собираются сборщиком мусора, как и ожидалось.

👉 Если же какой-либо из этих объектов удерживается в памяти, то есть "утекает", LeakCanary инициирует создание heap dump, а затем анализирует этот дамп, чтобы найти кратчайший путь сильных ссылок от GC Roots до "утекающего" объекта. Этот путь называется leak trace и он подсвечивает ссылки, которые мешают сборщику мусора удалить объект.
5👍4🔥31
Обновилась страничка мультиплатформы в официальной документации по Андроиду

Для тех кто использует KMP ничего нового, но если вам не знакомо что это - будет полезно глянуть
👍6
Android Good Reads
Я тут ковыряюсь со своим проектиком простеньким. Осваиваю чудеса делегирования своей работы AI. И первый раз наткнулся на это API в Android. Как-будто оно +- бесполезное, но и в то же время всегда до этого решал через бекенд или Places такую проблему. h…
Микродозы AI для мобильных разработчиков

Напомню, что Android Studio очень сильно выросла по фичам для AI. В статье приводится промтп и демонстрация его работы. Сценарии работы из статьи:

👉 Дебаг UI через ожидаемый-реальный результат
👉 Первичное кодревью перед отправкой команде. Наверно это самая часто используемая фича у меня в команде, у нас работает Copilot как авторевьювер до ревью человеком. Сильно снижает количество вопросов на ревью и подмечает исправления
👉 Замена Remove unused Resources. Фича сама по себе не всегда работает как надо, особенно в многомодульных проектах где отключены часть индексов и модулей в угоду скорости сборки. Gemini справляется с этим сильно лучше
👉 Улучшенный поиск по проекту. Но тут скорее помошник для тех кто не умеет писать regex

C недавних пор вы можете гонять локальные модели и запускать все те же самые фичи не на Gemini, а на своей модельке

Я честно признаюсь, что меня зацепило название, а не содержание
👍4😁4
🌟 Вечеринка для разработчиков: пет-проекты, хобби и вайб-кодинг

Ребята из Яндекс Вертикалей собирают всех 14 ноября на мультистек-вечеринку о хобби и технологиях. Вдохновимся историями коллег об удачных внерабочих экспериментах, чтобы взглянуть по-новому на свои увлечения.

В программе события:

🔴Доклады про футбольного ИИ-аналитика и телеграм-бота для канала с мемами

🔴Воркшоп — сделаем свой MCP-сервер для автоматизации задач

🔴Открытый диалог о хобби с тимлидами, разработчиками, ML-специалистами и аналитиками

Разберёмся вместе с командой Вертикалей, как выбрать стек и наконец начать проект, который долго откладывали. А завершим вечер афтепати с 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
🔥52
Lenter — плагин для IntelliJ IDEA

Автоматизирует рутину 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. Опрос открыт до сегодняшнего вечера, результаты горят, так что можете потратить пять минут прямо сейчас, и начнете день с прекрасного полезного дела!
👍62
Ошибки — неотъемлемая часть любого роста. Новый сезон Podlodka Soft Skills Crew (24–28 ноября) посвящён умению ошибаться — как перестать бояться промахов, извлекать из них пользу и превращать факапы в источник развития.

📌 В программе:
• Чистый код мышления — почему мозг боится ошибок и как “починить” когнитивные баги (Ксения Ильянович)

• Ошибайся — позорься до конца — чем ошибки полезнее успехов и как перестать стыдиться факапов (Вера Стёксова)

• 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 ?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 }
]
}
}
}
]
👍62🔥2
Новые метрики в Google Play Store

Новые метрики касающие энергопотребления приложений. Планка качества приложений повышается. Пока что метрика в бете, но с Марта 2026 года приложение будет убрано из рекомендаций, если приложение не удовлетворяет следующему:
Процент сеансов пользователей, в которых совокупное использование wake lock без исключения превышает 2 часа


Кстати, я прошел через все этапы публикации в Google Play по новым правилам и опубликовал свое приложение
👍3🔥2
О том как Reddit использует R8 оптимизацию для улучшения перформанса

Никакого рокет сайнса, но показатели хорошие:

👉 Стабильность выросла, 30% снижение ANR rate
👉 40% оптимизация холодного старта
👉 25% импрув в скорости рендеринга кадров
👉 14% снижение размера приложения

Бенчмаркали с помощью Jetpack Macrobenchmark и UIAutomator API
👍4🔥3
Jake Wharton о том почему нужно использовать androidx-beta

На самом деле вся проблема в особенностях версионирования androidx библиотек. Вот их гайдлайн
А вот привычный нам всем semantic

Вывод: Спокойнее относимся к бета версиям androidx и принимаем тот факт, что у гугла даже версионирование своё
😁11👍3😱2🙈1😡1
Compose Muliplatform Web Beta

Дождались, вышла из альфы.

👉 Теперь можно попробовать в playground (выбрать вместо JVM надо)
👉 Самый понятный юзкейз это шарить ваше CMP приложение в веб сразу для демок
🔥12👍5
Опрос подписчиков Android Good Reads

Помогите мне разобраться с тем, как лучше вести канал – расскажите немного про себя, свой опыт в разработке, а главное – про то, какие темы канала вам интереснее всего! Опрос небольшой, минуты за 3 точно справитесь.

А чтобы обмен получился более честным, среди ответивших на опрос я разыграю сертификат на OZON

👉 Пройти опрос 👈
🔥62👍2💅1
Портируем Android приложение на Quest

Зачем? Потому что можем. Потому что, чем больше девайсов поддерживает ваше приложение, тем больше охват вашего приложения.

👉 Выставить удобные контролы для AR девайса. Тут не совсем привычное управление, так что местами придется редизайнить
👉 Докинуть необходимых пермишнов и вырезать неподдерживаемые. Получается надо сделать отдельный flavor, например
👉 Удалить неподдерживаемые зависимости, потому что внутри нет Google Mobile Services (GMS). Но все мы это делали для Huawei уже

В целом, работы там не на 30 минут явно, но в статье подробно описывается на живом примере как это сделать
👍32💅1