Новый 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👍10🔥4🥱2
Немного про то как за год vibecoding перешел от гэмблинга к части моего рабочего процесса
https://t.me/androidraft/93
https://t.me/androidraft/93
Telegram
Антоха Разраб c AI
From Gambling to Shipping
Крутецкая статья о том, как менялся подход. У меня откликается, ибо год назад я дергал ручку AI в попытке получить результат. В итоге, пришел примерно к тому же самому. Если кратко, как писать запрос во вселенную
👉 Не сделай что…
Крутецкая статья о том, как менялся подход. У меня откликается, ибо год назад я дергал ручку AI в попытке получить результат. В итоге, пришел примерно к тому же самому. Если кратко, как писать запрос во вселенную
👉 Не сделай что…
👍6😁3🔥2❤1🥴1
Android LLM leaderboard!
Бенчмарк для моделей с уклоном в андроид разработку
Ссылка на Android Bench: https://developer.android.com/bench
Бенчмарк для моделей с уклоном в андроид разработку
Ссылка на Android Bench: https://developer.android.com/bench
👍6😁2
Android Good Reads
JetBrains представила новую IDE - AIR Сделана только для кодинга через агентов, поддерживает только claude (Удивительно, что не их Junie). И что? Я верю что такой стиль разработки прочно впишется на долго и рад видеть не очередной форк VSCode, а IDE от…
This media is not supported in your browser
VIEW IN TELEGRAM
🔥8🥴4👎3😱2👍1
Android Good Reads
Новые метрики в Google Play Store Новые метрики касающие энергопотребления приложений. Планка качества приложений повышается. Пока что метрика в бете, но с Марта 2026 года приложение будет убрано из рекомендаций, если приложение не удовлетворяет следующему:…
Google Play раскатывает это обновление!
Внутри разбирают популярные сценарии и что с ними делать
👉 Некоторые подключаемые библиотеки могут влиять на это, увы, с этим, вы ничего не сделаете, но сможете отследить в Android Vitals
👉 Загрузка или выгрузка файлов
👉 Одноразовые или периодические операции в фоне
👉 Bluetooth соединение
👉 Location трекинг
👉 Частое снятие показаний с сенсоров (всякие гироскопы и прочее)
👉 Remote messaging не через гугловский FCM. Да-да, если у вас собственная реализация слушания ивентов - увы и ах
Внутри статьи рекомендации по тому как избежать проблем
Внутри разбирают популярные сценарии и что с ними делать
👉 Некоторые подключаемые библиотеки могут влиять на это, увы, с этим, вы ничего не сделаете, но сможете отследить в Android Vitals
👉 Загрузка или выгрузка файлов
👉 Одноразовые или периодические операции в фоне
👉 Bluetooth соединение
👉 Location трекинг
👉 Частое снятие показаний с сенсоров (всякие гироскопы и прочее)
👉 Remote messaging не через гугловский FCM. Да-да, если у вас собственная реализация слушания ивентов - увы и ах
Внутри статьи рекомендации по тому как избежать проблем
👍4😱2
Исследуем CompositionLocal API
С этим API вы уже знакомы
Внутри статьи рассказывают:
👉 Разбор внутреннего устройства: как связаны
👉 Что на самом деле создают функции
👉 Механика работы
👉 Внутренняя кухня Compose: работа с
👉 Рекомендации по оптимизации производительности и разбор типичных ошибок, которых следует избегать при использовании
С этим API вы уже знакомы
val LocalUser = compositionLocalOf { "GoodReads" }
@Composable
fun App() {
CompositionLocalProvider(LocalUser provides "AndroidGoodReads") {
UserProfile()
}
}
@Composable
fun UserProfile() {
val name = LocalUser.current
Text("Hello, $name")
}Внутри статьи рассказывают:
👉 Разбор внутреннего устройства: как связаны
CompositionLocal, ProvidableCompositionLocal и их различные вариации👉 Что на самом деле создают функции
compositionLocalOf, staticCompositionLocalOf и compositionLocalWithComputedDefaultOf, и в чем разница между результатами их работы👉 Механика работы
CompositionLocalProvider и свойства .current. Как правильно передавать локальные данные между различными композициями👉 Внутренняя кухня Compose: работа с
Value Holders, использование Persistent Maps и интеграция на уровне Composer👉 Рекомендации по оптимизации производительности и разбор типичных ошибок, которых следует избегать при использовании
CompositionLocal👍8🔥4😁1
Альфа Room 3.0 Alpha
Обновление одной из флагманских библиотек. Я всегда стараюсь использовать что-то по меньше и шустрее, типа
👉 KMP и WASM
👉 Чтобы избежать конфликтов с Room 2.x,
👉 Отказ от SupportSQLite: Библиотека теперь полностью работает на драйверах
👉 Только
👉 Coroutines First: Из-за требований веб-платформ все API стали асинхронными. Блокирующие функции в
👉 Кастомные типы возвращаемых значений: Добавлена аннотация
👉 Текущее поколение Room 2.x переходит в maintenance mode. Новые фичи добавляться не будут, планируются только исправления ошибок и обновления зависимостей до релиза стабильной Room 3.0
Обновление одной из флагманских библиотек. Я всегда стараюсь использовать что-то по меньше и шустрее, типа
sqldelight, но знаю, что этого монстра многие используют! А чо внутри то?👉 KMP и WASM
👉 Чтобы избежать конфликтов с Room 2.x,
androidx.room теперь стал androidx.room3 👉 Отказ от SupportSQLite: Библиотека теперь полностью работает на драйверах
androidx.sqlite. Для постепенного перехода предусмотрен артефакт room3-sqlite-wrapper👉 Только
Kotlin и KSP: Генерация Java-кода, а также поддержка Java Annotation Processing (AP) и KAPT полностью прекращены👉 Coroutines First: Из-за требований веб-платформ все API стали асинхронными. Блокирующие функции в
DAO больше не поддерживаются — они должны быть либо suspend, либо Flow. Наканец-та!👉 Кастомные типы возвращаемых значений: Добавлена аннотация
@DaoReturnTypeConverter. Она позволяет разработчикам создавать собственные интеграции (например, для RxJava, Paging, LiveData)👉 Текущее поколение Room 2.x переходит в maintenance mode. Новые фичи добавляться не будут, планируются только исправления ошибок и обновления зависимостей до релиза стабильной Room 3.0
Android Developers Blog
Room 3.0 - Modernizing the Room
News and insights on the Android platform, developer tools, and events.
👍9🔥3
🔒 Безопасность Android-приложений: углубляемся в тему с Podlodka Android Crew
Современные Android-приложения работают с пользовательскими данными, платежами и приватным контентом. Это буквально мишень для злоумышленников всех мастей.
Иногда самая опасная уязвимость — это та строчка кода, которую написали в спешке, не задумываясь об информационной безопасности.
С 30 марта по 3 апреля пройдет новый сезон Podlodka Android Crew — это будет онлайн-конференция, полностью посвящённая безопасности мобильных приложений на Android.
💡Участники сезона разберут:
🔐С чего начинается безопасность приложения
🧩 Как UI может стать точкой взлома
👀 Как выглядит Android-приложение глазами атакующего
🧬 Где реально помогают passkeys и биометрия, а где — нет
💳 Как защищаются платежи и видеоконтент в Android-приложениях и не только — программа обновляется на сайте.
Формат — классический для Podlodka Android Crew: 5 дней, 10+ спикеров, 10 сессий и закрытое комьюнити в Telegram.
Отдельный плюс — цена: заметно ниже привычных конференций, при этом контент в этот раз ориентирован на очень глубокое и всестороннее изучение темы безопасности.
👉 Early-bird билеты на сезон Podlodka Android Crew доступны до 23 марта
Современные Android-приложения работают с пользовательскими данными, платежами и приватным контентом. Это буквально мишень для злоумышленников всех мастей.
Иногда самая опасная уязвимость — это та строчка кода, которую написали в спешке, не задумываясь об информационной безопасности.
С 30 марта по 3 апреля пройдет новый сезон Podlodka Android Crew — это будет онлайн-конференция, полностью посвящённая безопасности мобильных приложений на Android.
💡Участники сезона разберут:
🔐С чего начинается безопасность приложения
🧩 Как UI может стать точкой взлома
👀 Как выглядит Android-приложение глазами атакующего
🧬 Где реально помогают passkeys и биометрия, а где — нет
💳 Как защищаются платежи и видеоконтент в Android-приложениях и не только — программа обновляется на сайте.
Формат — классический для Podlodka Android Crew: 5 дней, 10+ спикеров, 10 сессий и закрытое комьюнити в Telegram.
Отдельный плюс — цена: заметно ниже привычных конференций, при этом контент в этот раз ориентирован на очень глубокое и всестороннее изучение темы безопасности.
👉 Early-bird билеты на сезон Podlodka Android Crew доступны до 23 марта
👍2🔥2
Боремся с лишними рекомпозициями в Compose
Если вы хоть раз пытались понять, какого черта ваш экран перерисовывается 10 раз при скролле или вводе текста, то это для вас. Подъехали сразу две годные тулзы, которые подходят к проблеме перфоманса с абсолютно разных сторон:
👉 DejaVu
Мощная библиотека, которая превращает проверки рекомпозиций в полноценные тесты
Под капотом: Это test-only решение, то есть в прод не улетит ни строчки лишнего кода. Подключается максимально просто: инициализируете правило
В чем фишка: Идеально для CI. Библиотека отслеживает счетчики для каждого инстанса отдельно и выдает аналитику. Если кто-то из команды или AI-ассистент сломает стейт, тест упадет и покажет таймлайн проблемы с диффом параметров, из-за которых случилась рекомпозиция
Github (55⭐️ ): https://github.com/himattm/dejavu
👉 Compose Rebound
Инструмент для мониторинга "бюджета рекомпозиций" прямо во время работы приложения
Под капотом: Работает на базе Kotlin Compiler Plugin. Во время компиляции плагин автоматически резолвит имена
В чем фишка: У Rebound есть шикарный плагин для IDE. Он не просто считает перерисовки, а отделяет вынужденные рекомпозиции (из-за родителя) от тех, что вызваны изменением параметров самого компонента. Помогает находить реальные спайки и аномалии, а не просто пугать вас большими цифрами в Layout Inspector
Github (37⭐️ ): https://github.com/aldefy/compose-rebound
Такое мы внедряем!
Если вы хоть раз пытались понять, какого черта ваш экран перерисовывается 10 раз при скролле или вводе текста, то это для вас. Подъехали сразу две годные тулзы, которые подходят к проблеме перфоманса с абсолютно разных сторон:
👉 DejaVu
Мощная библиотека, которая превращает проверки рекомпозиций в полноценные тесты
Под капотом: Это test-only решение, то есть в прод не улетит ни строчки лишнего кода. Подключается максимально просто: инициализируете правило
createRecompositionTrackingRule<>() в тестовом классе, вешаете стандартный Modifier.testTag() на нужный Composable и пишете ассерты на количество перерисовокВ чем фишка: Идеально для CI. Библиотека отслеживает счетчики для каждого инстанса отдельно и выдает аналитику. Если кто-то из команды или AI-ассистент сломает стейт, тест упадет и покажет таймлайн проблемы с диффом параметров, из-за которых случилась рекомпозиция
Github (55
👉 Compose Rebound
Инструмент для мониторинга "бюджета рекомпозиций" прямо во время работы приложения
Под капотом: Работает на базе Kotlin Compiler Plugin. Во время компиляции плагин автоматически резолвит имена
Composable-функций и назначает им лимиты в зависимости от роли (например, 3 рекомпозиции в секунду для экрана, 30/с для кнопок, 120/с для анимаций)В чем фишка: У Rebound есть шикарный плагин для IDE. Он не просто считает перерисовки, а отделяет вынужденные рекомпозиции (из-за родителя) от тех, что вызваны изменением параметров самого компонента. Помогает находить реальные спайки и аномалии, а не просто пугать вас большими цифрами в Layout Inspector
Github (37
Такое мы внедряем!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Вступайте в Podlodka AI Engineers Club
Если ваша основная цель на этот год – прокачаться в использовании AI в разработке, то вы не одни. Все пытаются разобраться и в том, как оптимально использовать агентов самому, и в том, а как под это дело перестроить процессы в команде. Но поставить цель легче, чем ее достичь. State-of-the-art модели, инструменты и подходы меняются каждую неделю, лучшие практики ещё не устоялись, а городские сумасшедшие либо хоронят программирование, либо пытаются нафармить просмотры за ваш счет.
Мы в Подлодке хотим помочь опытным инженерам, которые учатся работать с AI – да что там, и самим себе тоже. Поэтому в начале марта мы запустили Podlodka AI Engineers Club – закрытое сообщество для тех, кто уже пробует AI в работе и хочет делать это системно, а не на ощупь.
👉Что внутри. Каждую неделю – воркшопы и лайвкодинги с людьми, которые внедряют AI в реальных продуктах. Разбор конкретных инженерных практик: как строить своих агентов, как работать по Spec-Driven Development, как собирать комбайн, превращающий таски Jira в PRы, как масштабировать это на команду и в бигтехе, и в небольшом стартапе.
Между встречами – сеть закрытых чатов в Telegram, клубные созвоны с шарингом опыта, random coffee, совместные эксперименты с AI.
👉Кто уже в программе. Среди экспертов – инженеры из компаний разного масштаба: Степан Гончаров (xAI), Роман Елизаров (Яндекс), Андрей Бреслав (CodeSpeak), Денис Неклюдов (Google), Алексей Козятинский (Cursor) и много других крутых ребят. Полная программа на март-апрель есть на сайте.
👉А кто в клубе. Мы собрали уже 350 инженеров с медианным опытом 12 лет – российский и зарубежный бигтех, банки, стартапы. Большинство уже активно используют агентов в своей работе, поэтому обсуждаем прямо прикладные вопросы. У кого-то в компаниях AI внедряется очень активно, а кто-то работает в супер зарегулированных отраслях, где запрещено почти все – так что мы собираем весь спектр проблем.
👉Как попасть. Клуб платный, вход через список ожидания с отбором – нам интересно сделать сообщество именно для опытных разработчиков – людей, которые большую часть своей карьеры писали код, решали технические задачи, принимали архитектурные решения, и жили с их последствиями. Мы набираем участников постепенно – нам важно сохранить атмосферу, в которой можно открыто делиться опытом и проблемами.
Подробности, расписание и заявка – на сайте. А если есть какие-то конкретные вопросы, пишите прямо в личку @etolstoy!
Если ваша основная цель на этот год – прокачаться в использовании AI в разработке, то вы не одни. Все пытаются разобраться и в том, как оптимально использовать агентов самому, и в том, а как под это дело перестроить процессы в команде. Но поставить цель легче, чем ее достичь. State-of-the-art модели, инструменты и подходы меняются каждую неделю, лучшие практики ещё не устоялись, а городские сумасшедшие либо хоронят программирование, либо пытаются нафармить просмотры за ваш счет.
Мы в Подлодке хотим помочь опытным инженерам, которые учатся работать с AI – да что там, и самим себе тоже. Поэтому в начале марта мы запустили Podlodka AI Engineers Club – закрытое сообщество для тех, кто уже пробует AI в работе и хочет делать это системно, а не на ощупь.
👉Что внутри. Каждую неделю – воркшопы и лайвкодинги с людьми, которые внедряют AI в реальных продуктах. Разбор конкретных инженерных практик: как строить своих агентов, как работать по Spec-Driven Development, как собирать комбайн, превращающий таски Jira в PRы, как масштабировать это на команду и в бигтехе, и в небольшом стартапе.
Между встречами – сеть закрытых чатов в Telegram, клубные созвоны с шарингом опыта, random coffee, совместные эксперименты с AI.
👉Кто уже в программе. Среди экспертов – инженеры из компаний разного масштаба: Степан Гончаров (xAI), Роман Елизаров (Яндекс), Андрей Бреслав (CodeSpeak), Денис Неклюдов (Google), Алексей Козятинский (Cursor) и много других крутых ребят. Полная программа на март-апрель есть на сайте.
👉А кто в клубе. Мы собрали уже 350 инженеров с медианным опытом 12 лет – российский и зарубежный бигтех, банки, стартапы. Большинство уже активно используют агентов в своей работе, поэтому обсуждаем прямо прикладные вопросы. У кого-то в компаниях AI внедряется очень активно, а кто-то работает в супер зарегулированных отраслях, где запрещено почти все – так что мы собираем весь спектр проблем.
👉Как попасть. Клуб платный, вход через список ожидания с отбором – нам интересно сделать сообщество именно для опытных разработчиков – людей, которые большую часть своей карьеры писали код, решали технические задачи, принимали архитектурные решения, и жили с их последствиями. Мы набираем участников постепенно – нам важно сохранить атмосферу, в которой можно открыто делиться опытом и проблемами.
Подробности, расписание и заявка – на сайте. А если есть какие-то конкретные вопросы, пишите прямо в личку @etolstoy!
Podlodka AI Engineers Club
Учимся применять AI и внедрять его в команды. Еженедельные сессии с экспертами и живое сообщество от создателей подкаста Подлодка.
🤣5😎4❤3👍3
Android Good Reads
Петиция KeepAndroidOpen В августе 2025 года Google объявила, что начиная с сентября 2026 года разрабатывать приложения для платформы Android будет невозможно без предварительной централизованной регистрации в Google. Эта регистрация будет включать: 👉 Оплату…
А вот и ответ GooglePlay на петицию - разрешат ставить приложения в обход, но с ограничениями
😐14😡6👍4
Делаем жизнь пользователя проще и выводим в топ свои Android-приложения: 26 марта hh.ru проведёт митап по Android-разработке
В программе доклады от экспертов:
• Константин Дубинко (hh.ru) поделится опытом ухода от навигации на базе Fragment и Cicerone в сторону чистого Compose при помощи навигационной библиотеки Modo.
• Денис Конопелькин (Циан) расскажет, как ускорить проверки в Android‑проекте с помощью Impact‑анализа.
• Максим Качинкин (Dodo Engineering) разберет, как проектировать ИИ-фичи в мобильном приложении, когда ИИ живет не на бэкенде, а на клиенте.
Подписывайся на канал Охэхэнные новости и регистрируйся на митап. Встречаемся 26 марта!
В программе доклады от экспертов:
• Константин Дубинко (hh.ru) поделится опытом ухода от навигации на базе Fragment и Cicerone в сторону чистого Compose при помощи навигационной библиотеки Modo.
• Денис Конопелькин (Циан) расскажет, как ускорить проверки в Android‑проекте с помощью Impact‑анализа.
• Максим Качинкин (Dodo Engineering) разберет, как проектировать ИИ-фичи в мобильном приложении, когда ИИ живет не на бэкенде, а на клиенте.
Подписывайся на канал Охэхэнные новости и регистрируйся на митап. Встречаемся 26 марта!
❤3👍3😁3💅1