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

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

Автор канала: @Lamprof
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Я устал писать боилерплейт в Compose и написал свой Emmet-like плагин для Android Studio

Мы все любим Compose, но "Nesting Hell" и бесконечный бойлерплейт из Column, Row и Modifier убивают продуктивность.

Встречайте YARC (Yet Another Rapid Compose) — плагин для Android Studio, который привносит скорость Emmet в разработку Android UI.

Вместо того чтобы писать 15 строк кода вручную, просто наберите: col/row/txt*3 и нажмите Cmd+Opt+E. Вы мгновенно получите готовое дерево компонентов.
👉 Быстрее, чем ИИ: Не нужно ждать ответа сервера или исправлять "галлюцинации"
👉 Умнее, чем Live Templates: Поддерживает динамическую вложенность и математику
👉 Open Source: От Android-разработчика для Android-разработчиков

IntelliJ Marketplace
GitHub (11 ⭐️) https://github.com/andrew-malitchuk/yet-another-rapid-compose
👍15😁10🔥3
Save for later

Новая фича в Google Play консоли. Помогает дробить изменения перед отправкой на ревью. Будет полезно, чтобы не блокировать весь релиз целиком из-за сторонних изменений.
👍6🔥3
Навыки, которые мы теряем, пока AI делает скучную работу

Чот я всё хвалю и хвалю AI, надо и поругать в сегодняшней статье. Автор проводит параллель с пилотами, которые теряют навыки ручного управления из-за надежды на автопилот, и утверждает, что то же самое происходит сейчас с разработчиками

👉 Скука — это тренировка. Написание тестов, документации и бойлерплейта — это не просто рутина. Это «повторения», которые формируют интуицию и помогают предугадывать баги и граничные сценарии
👉 Невидимая атрофия. Потеря навыка происходит незаметно. Вы по-прежнему закрываете тикеты, метрики выглядят хорошо, но способность глубоко понимать систему и находить сложные баги (которые AI пропускает) исчезает
👉 Иллюзия продуктивности. Ссылаясь на исследования (включая отчет GitClear 2025), автор отмечает, что с приходом AI количество рефакторинга упало, а копипасты — выросло. Опытные инженеры могут даже замедляться, используя AI, не замечая этого

Отказываться от AI глупо, но важно не превратиться в оператора, который не может работать без инструмента. Решение — периодически писать код и тесты самому, чтобы поддерживать форму
💯18👍6😱3👌2🔥1
Android Studio Panda 1 | 2025.3.1 Canary 5

Обрастает фичами. Хотелось бы верить что по клику на Update all libraries with AI агент сходит, посмотрит релиз ноутсы, сопоставит зависимости, подскажет или сам поправит минорные изменения, но нет

Это градловая таска, которую он запихивает в агента, чтобы там уже править ошибки. Спасибо 😡
😁15😱2
Shared Internals: кросс-модульная видимость

Разбираем KEEP-0451, предлагающий ввести shared internal, как еще один скоуп видимости внутри модуля и некоторых зависящих модулей

Кратко весь сехматоз описывают так
A ──shares──▶️ B ──shares──▶️ C

C имеет доступ к A shared internals


Сценарий простой и вы с ним сталкивались в многомодульном приложении: модуль с тестами хочет иметь доступ к internal функциям основного модуля.

Как по мне, это извращенная friends декларация из плюсов. Плохо ли?

Оригинальный KEEP-0451 почитать тут
🤯5😐3😢2
🤖 AI в практике разработчиков: новый сезон Podlodka AI Crew

«Мы поигрались с промптом, но пока не внедряли» — часто разговоры про AI в разработке заканчиваются именно так.

Инструментов всё больше, а вот времени на то, чтобы разобраться и сделать так, чтобы магия заработала, порой не хватает.

С 16 по 20 февраля у Podlodka AI Crew пройдёт сезон «AI-агенты в разработке»: проверенные рабочие сценарии от практиков индустрии.

👀 В программе:
единый AI-workflow для разработчика
автоматизация стендапов и работы с документацией
Claude Code, субагенты для кодинга
практические кейсы внедрения AI в SRE
подходы к созданию промптов с насыщенным контекстом

Формат — классический для Podlodka Crew: 5 дней, 10+ спикеров, 10 сессий и закрытое комьюнити в Telegram.

Отдельный плюс — цена: заметно ниже привычных конференций, при этом контента много, и он ориентирован на практику.

👉🏻Если тема AI в разработке вам интересна и хочется меньше хайпа, больше дела — держите ссылку.

До 10 февраля можно забрать билет по early-bird цене!🎁
👍3👎2
Итак, вопрос с собеседования! Чем отличается Dispatchers.Main от Dispatchers.Main.immediate

Внутри разбирают с картинками:
👉 А что если продьюсить на Main, а консьюмить на immediate. И вообще перебрать всевозможные комбинации?
👉 А зачем выбирать immediate?
👉 Почему AndroidX команда выбрала immediate стандартным диспатчером для lifecycleScope и viewModelScope?

Ладно, я немного преувеличил и думаю, что такого рода вопросы скоро, все-таки, пропадут с собеседований...
👍14🤔10🔥2💯1💅1
LeakCanary теперь встроен в профайлер внутри Android Studio, начиная с Panda 1

В чем особенность? Компьют перенесли с мобильного девайса на ваш лаптоп. Теперь поиск в дампе будет быстрее
👍17🔥6
Кажется, это было трендом еще в 2016 году, но давайте освежим. Модуляризация в Android для больших команд
И сразу же часть 2 с примером

От себя скажу, что на эту статью лучше посмотреть как на чужой опыт и не перенимать один в один. Прежде чем приступать к такого рода изменениям - попробуйте и обкатайте их на отдельном проекте и проверьте как это будет работать
😁7👍3🔥3
Как kotlinx.serialization генерирует код

​В этой статье разбирается внутреннее устройство compile плагина kotlinx.serialization: от стратегии двухпроходной генерации IR (промежуточного представления) до оптимизации «золотой маски» для проверки обязательных полей. Плагин превращает обычные аннотации @Serializable в эффективные и типобезопасные сериализаторы, полностью обходясь без рефлексии или генерации кода во время выполнения

​А зачем это знать?
​Можно успешно использовать библиотеку, и не зная этих нюансов. Однако понимание внутренних механизмов поможет вам решать редкие связанные баги и принимать оптимальные по производительности решения
👍4
Зовем на максимально практическую онлайн-конференцию Podlodka Techlead Crew «Архитектура данных», 2-6 марта.

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

А в надежном комьюнити можно обсудить доклады ❤️

«Идет долгий тренд на оптимизацию ресурсов и подсчет затрат на инфраструктуру.

Востребованы инженеры, которые могут разобраться, как оптимизировать потребление ресурсов хранилища, как быстрее и эффективнее работать с ними»,

— объясняет главный принцип выбора темы директор Techlead Crew Григорий Скобелев.


В программе:

⚙️ Как строить потоковую обработку данных и не получить неуправляемую систему.

⚖️ Как выбирать между SQL, NoSQL и NewSQL под реальные нагрузки и сценарии.

🧩 Как проектировать DWH и Data Lake так, чтобы было полезно бизнесу.

🧠 Как работать с консистентностью и транзакциями без потери масштабируемости.

📊 Как и когда применять OLAP-хранилища и не превращать аналитику в боль.

🗓 Когда: 2 - 6 марта
🔗 Посмотреть подробную программу →
👍32🔥2
Как и куда расти мобильному разработчику в эпоху ИИ?

Предлагаем разобраться вместе с Яндекс Вертикалями (Авто.ру, Яндекс Недвижимость, Аренда и Путешествия) на Vertis Mobile Meetup в Санкт-Петербурге.

В этот раз хардовых докладов не будет. Вместо них — нетворкинг, круглые столы, а также выступления о том, как работать над большими задачами, становиться продуктивнее и оставаться в балансе.

📍Обсудим разные карьерные треки, переходы между ролями, влияние ИИ на индустрию. И обменяемся мнениями по техническим темам: KMP / CMP, DI.

А после всех обсуждений участников ждёт афтепати 🐥

🔜 Полная программа и регистрация
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83👎3💅3😁2
И еще разок Dependency Injection vs Service Locator

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

Истинный Dependency Injection (Dagger, Hilt, Anvil, kotlin-inject, Metro)

👉 Строятся на Inversion of Control (IoC)
Строгая валидация графа на этапе компиляции (если собралось — в проде из-за DI не упадет). Разрешение зависимостей за O(1) в рантайме. Идеально для тестов и больших команд
Требуют больше явного кода от разработчика, замедляют сборку

Service Locators (Koin, Kodein, Spring DI, Compose CompositionLocals)

👉 Фокус на Developer Experience и скорости написания кода.
Почти нулевой оверхед на сборку (все происходит в рантайме), минимум бойлерплейта
Разрешение зависимостей за O(n), ошибки вылезают только при выполнении, а значит вылезает еще 1 категория багов на проде
Please open Telegram to view this post
VIEW IN TELEGRAM
👎8👍6🥴32
Петиция KeepAndroidOpen

В августе 2025 года Google объявила, что начиная с сентября 2026 года разрабатывать приложения для платформы Android будет невозможно без предварительной централизованной регистрации в Google. Эта регистрация будет включать:

👉 Оплату сбора Google
👉 Согласие с условиями использования Google
👉 Предоставление удостоверения личности государственного образца
👉 Загрузку доказательств владения приватным ключом подписи разработчика
👉 Указание всех текущих и будущих идентификаторов приложений

Если вкратце - распространять приложения станет сильно сложнее. На странице петиции описаны (на разных языках) последствия которые нас ждут после вступления правил в силу
👍11😁3
Goodbye ViewModel. Hello retain!

Потенциальная замена для viewModel из коробки. Основная проблема которой, это отдельная поддержка viewModel из каждого DI. retain же работает как Composable и не нуждается в отдельном @HiltViewModel

Переписывать на retain в ближайшие пару лет никто, конечно же, не будет, но знать про это все-таки стоит

@Inject
class AuthPresenter(...) {
val state: StateFlow<UiState>
fun login(creds: Credentials) { .. }
fun logout() { .. }
}

interface AuthScreenProviders {
@IntoSet
@Provides
fun provideRoute(presenter: Provider<AuthPresenter>): RouteEntryProviderScope = {
entry<Route.Auth> { AuthScreen(presenter = retain { presenter() }) }
}
}
👍6🤔6🔥3👎1😁1
Большое исследование мобильных разработчиков

Ребята из DevCrowd запустили новое большое исследование мобильных разработчиков (а они проводят их уже много лет). И вот в 2026 году его результаты, кажется, будут действительно неожиданными – разработка за последний год поменялась очень сильно, и эта волна точно затронула и Android.

В опросе будем разбираться с тем, что происходит на рынке по грейдам и зарплатам, выживает ли кроссплатформа, как мобильщики используют AI в работе, куда расти, и как искать работу. Результаты выложим где-то в апреле!

👉Пройти опрос
👍53
Новый Experimental Styles API в Jetpack Compose

Устали от простыней кода с InteractionSource и animate*AsState просто чтобы поменять цвет кнопки при нажатии? В Compose завозят решение!

👉 Всё в одном блоке: Больше не нужно жонглировать модификаторами и стейтами. Вы создаете единый блок Style, где описываете базовый вид и реакции на различные состояния (hovered, pressed, focused)
👉 Автоматические анимации: Достаточно обернуть изменения в блок animate { ... } (можно передать свой AnimationSpec), и система сама плавно заанимирует переходы
👉 Умная инвалидация под капотом: Свойства стилей хранятся с использованием битовых масок. Если при нажатии меняется только цвет (свойства отрисовки), Compose инвалидирует только фазу draw, полностью пропуская рекомпозицию и layout
👉 Доступ к темам: StyleScope имеет доступ к CompositionLocal, так что можно легко брать цвета из темы прямо внутри стиля, и они будут обновляться при ее смене

ClickableStyleableBox(
onClick = onClick,
style = {
background(Color.Green)
size(150.dp)
hovered {
animate { background(Color.Yellow) }
}
pressed {
animate(tween(100)) { background(Color.Red) }
}
}
)
13👍9🔥4🥱2
Android LLM leaderboard!

Бенчмарк для моделей с уклоном в андроид разработку

Ссылка на Android Bench: https://developer.android.com/bench
👍4🔥1👏1😁1