История о том как с помощью Perfetto нашли и решили проблему долгого ответа от подключенных USB девайсов к Android платформе. Пришлось сделать пул в AOSP, но задержка упала на 40%.
Если вы разрабатываете кассовое ПО - это точно статья, обязательная к прочтению
Если вы разрабатываете кассовое ПО - это точно статья, обязательная к прочтению
🔥6👍5👌1
Android Good Reads
Я не хочу превращать Android канал в новостник на тему очередного прорыва в AI, поэтому соберу в кучу несколько полезных статей и холиварных топиков, которые отражают мою позицию. 👉 Как AI влияет на способность думать "гораздо проще написать промпт, закинуть…
Продолжаем искать полезности в эре AI для Android:
👉 Сгенерированная вики для любого репозитория. Пример для compose-mp репы и для retrofit.
👉 Junie, интегрированная в IDE, получила необходимый набор инструментов для современного AI-coding плагина, а так же возможность взаимодействовать через Github
👉 SDD (Spec driven development) Не новый подход, нашедший свое применение в AI инструментах. В кратце: сначала определяем задачу и все требования (spec) -> затем ее дизайним -> и только потом приступаем к реализации.
Лично я по чуть-чуть перешел в терминальные тулзы(ClaudeCode, GeminiCLI, OpenCode), потому что переключаться между Android Studio и форками VScode уже порядком надоело
👉 Сгенерированная вики для любого репозитория. Пример для compose-mp репы и для retrofit.
👉 Junie, интегрированная в IDE, получила необходимый набор инструментов для современного AI-coding плагина, а так же возможность взаимодействовать через Github
👉 SDD (Spec driven development) Не новый подход, нашедший свое применение в AI инструментах. В кратце: сначала определяем задачу и все требования (spec) -> затем ее дизайним -> и только потом приступаем к реализации.
Лично я по чуть-чуть перешел в терминальные тулзы(ClaudeCode, GeminiCLI, OpenCode), потому что переключаться между Android Studio и форками VScode уже порядком надоело
👍9🔥4❤2
Google Sans Code
Monospace шрифт с различным написанием "l" и "1", or "O" и "0". Уже доступен в Android Studio. Выглядит удобно
Monospace шрифт с различным написанием "l" и "1", or "O" и "0". Уже доступен в Android Studio. Выглядит удобно
🔥12👍3
Нынче в Андроиде
👉 Canary версии обновлений для девайсов. На самой ранней стадии будем ловить все проблемы будущей операционки
👉 Продолжают вкладываться в Agentic AI внутри Android Studio. Могу дать только крайне негативный отзыв. Лучше бы вложились в Junie
👉 Еще разок о 16KB page size. Разбирались с вами вот тут
👉 Обновление для one-time product внутри Google Play Billing
👉 Грядущий изменения в разработки приложений под часы. Со следующего года буду введены ограничения на публикацию устаревших версий
👉 Google Play Игры теперь и на PC. Пример на основе Mecha BREAK.
👉 Canary версии обновлений для девайсов. На самой ранней стадии будем ловить все проблемы будущей операционки
👉 Продолжают вкладываться в Agentic AI внутри Android Studio. Могу дать только крайне негативный отзыв. Лучше бы вложились в Junie
👉 Еще разок о 16KB page size. Разбирались с вами вот тут
👉 Обновление для one-time product внутри Google Play Billing
👉 Грядущий изменения в разработки приложений под часы. Со следующего года буду введены ограничения на публикацию устаревших версий
👉 Google Play Игры теперь и на PC. Пример на основе Mecha BREAK.
Medium
Now in Android #120
Canary Channel, Agentic AI in Android Studio, 16 KB Pages, Policy Changes, Compose Tips, Play Games and so much more!
👍4😁2
Очень специфичный кейс. Отправляем RecyclerView ивенты в родительский Compose.
Возможный кейс при миграции на compose и сильной атомарности компонентов. В целом важен только код внутри статьи, но идея заключается в композиции
Возможный кейс при миграции на compose и сильной атомарности компонентов. В целом важен только код внутри статьи, но идея заключается в композиции
NestedScrollConnection
и NestedScrollDispatcher
🤯3👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Первый Android Meetup от Сбера: твой план на вечер
28 августа собираемся с Android-комьюнити, чтобы со спикерами из Сбера и Лаборатории Касперского обсудить современные практики разработки, опыт работы с инструментами и подходы к созданию качественных и доступных приложений.
📍 Выбирайте удобный формат участия и регистрируйтесь на лендинге!
Ждём вас очно и онлайн!
28 августа собираемся с Android-комьюнити, чтобы со спикерами из Сбера и Лаборатории Касперского обсудить современные практики разработки, опыт работы с инструментами и подходы к созданию качественных и доступных приложений.
📍 Выбирайте удобный формат участия и регистрируйтесь на лендинге!
Ждём вас очно и онлайн!
👎8🔥8❤5👍4😡2🥱1
Вчера был релиз Kotlin 2.2.20-RC
👉 В основном упор на мультиплатформу. Минорные изменение и стабилизация
👉 Можно в экспериментальном режиме посмотреть фичи из 2.3.0
Перегрузка
👉 В основном упор на мультиплатформу. Минорные изменение и стабилизация
👉 Можно в экспериментальном режиме посмотреть фичи из 2.3.0
Перегрузка
suspend
в лямде
fun transform(block: () -> Int) {}
fun transform(block: suspend () -> Int) {}
return
в expression bodies с explicit return types. На примере более очевидно. Больше примеров тут
fun returnInsideIf() = when {
else -> {
val result = if (someCondition()) return "" else "value"
result
}
}
❤4👍4🔥2
Эволюция архитектур в Android
⬇️ Мономодуль. Весь код в 1 модуле, код не переиспользуется между приложениями
⬇️ Упрощенная модуляризация. Общая часть выносится в единый base модуль. Все остальные модули зависят от него.
⬇️ Полная модуляризация. Помимо общего
⬇️ После того как вы обнаружили себя в миллионе модулей со временем сборки, стремящимся в бесконечность, - начинается объединение в фичегруппы и уменьшение количество модулей.
Подробнее про каждую внутри статьи
На какой стадии ваш проект по этой линейке?
⬇️ Мономодуль. Весь код в 1 модуле, код не переиспользуется между приложениями
⬇️ Упрощенная модуляризация. Общая часть выносится в единый base модуль. Все остальные модули зависят от него.
⬇️ Полная модуляризация. Помимо общего
kotlin
/android
модуля появляется data
/domain
/presentation
модули и сложный менеджмент зависимостей меж фиче-модулями⬇️ После того как вы обнаружили себя в миллионе модулей со временем сборки, стремящимся в бесконечность, - начинается объединение в фичегруппы и уменьшение количество модулей.
Подробнее про каждую внутри статьи
На какой стадии ваш проект по этой линейке?
👍8❤2🤔2
Kotlin/Compose MP - Что будет дальше?
👉 Фокус на iOS/web. Очень ждем, особенно первое. Зависимости и сборка это боль
👉 Улучшения IDE для MP разработки. Новый плагин это большая беда. Много багов, сломали что работало. Надеюсь будет лучше
👉 Kotlin Web/Wasm хотят выпустить в бету
👉 Ну и как обычно. Сборка быстрее, конфигурирование проще в грядущих версиях
Следим!
👉 Фокус на iOS/web. Очень ждем, особенно первое. Зависимости и сборка это боль
👉 Улучшения IDE для MP разработки. Новый плагин это большая беда. Много багов, сломали что работало. Надеюсь будет лучше
👉 Kotlin Web/Wasm хотят выпустить в бету
👉 Ну и как обычно. Сборка быстрее, конфигурирование проще в грядущих версиях
Следим!
The JetBrains Blog
What’s Next for Kotlin Multiplatform and Compose Multiplatform – August 2025 Update | The Kotlin Blog
Discover our priorities and the general direction for Kotlin Multiplatform and Compose Multiplatform over the next six to twelve months.
👍6🔥5❤4
Рынок вакансий в IT затух — что делать?
Год назад на собесы можно было влететь с ноги, а от HR-ов не было отбоя. Сегодня всё изменилось. Вакансий – меньше, на 100 откликов – 10 приглашений, а компании массово увольняют и замораживают найм. Теперь к поиску работы придется подходить системно:
1. Сделать резюме, до которого не докопаться.
Минимум 3 года опыта, грамотно описанные достижения, без пробелов в местах работы.
2. Кропотливо готовиться к собеседованиям.
Тренировать лайвкод – без него никак. Работодатели хотят видеть твой ход мыслей. А если идёшь на собес и не посмотрел записи интервью в эту компанию — тебя обойдут на повороте.
3. Выделяться в глазах работодателя.
Станешь профессионалом – тебе доверят задачи сложнее, чем сверстать новые экраны. А если хочешь получить большой оффер – нужно себя продавать. Это отдельный навык.
4. Принять правила игры.
Сегодня их устанавливают компании – вакансий меньше, чем кандидатов. Поиск работы — это уже не прогулка, а марафон, где слабые отпадают.
Бесполезно грустить, что «найм мертв». Базы подготовки уже есть, все советы известны, офферы продолжают зарабатываться. Самый эффективный способ пройти этот путь – прийти на менторство. Три месяца небольшого стресса, и вы кратно увеличите свой доход. Рекорд моих учеников – 540к, а мой личный – 600к. Минимальный оффер после программы – 250к.
На менторстве прокачиваем скиллы, составляем продающее резюме, разбираем сотни реальных задач, готовимся ко всем подводным камням технических и поведенческих интервью.
📌 Первая консультация – бесплатно. Записаться – здесь.
⚡️ Отзывы, подробная программа и стоимость – на сайте.
Для подписчиков этого канала по промокоду
Реклама. ИП Илькаев Артур Ринатович
ИНН: 594805887016
Год назад на собесы можно было влететь с ноги, а от HR-ов не было отбоя. Сегодня всё изменилось. Вакансий – меньше, на 100 откликов – 10 приглашений, а компании массово увольняют и замораживают найм. Теперь к поиску работы придется подходить системно:
1. Сделать резюме, до которого не докопаться.
Минимум 3 года опыта, грамотно описанные достижения, без пробелов в местах работы.
2. Кропотливо готовиться к собеседованиям.
Тренировать лайвкод – без него никак. Работодатели хотят видеть твой ход мыслей. А если идёшь на собес и не посмотрел записи интервью в эту компанию — тебя обойдут на повороте.
3. Выделяться в глазах работодателя.
Станешь профессионалом – тебе доверят задачи сложнее, чем сверстать новые экраны. А если хочешь получить большой оффер – нужно себя продавать. Это отдельный навык.
4. Принять правила игры.
Сегодня их устанавливают компании – вакансий меньше, чем кандидатов. Поиск работы — это уже не прогулка, а марафон, где слабые отпадают.
Бесполезно грустить, что «найм мертв». Базы подготовки уже есть, все советы известны, офферы продолжают зарабатываться. Самый эффективный способ пройти этот путь – прийти на менторство. Три месяца небольшого стресса, и вы кратно увеличите свой доход. Рекорд моих учеников – 540к, а мой личный – 600к. Минимальный оффер после программы – 250к.
На менторстве прокачиваем скиллы, составляем продающее резюме, разбираем сотни реальных задач, готовимся ко всем подводным камням технических и поведенческих интервью.
Для подписчиков этого канала по промокоду
OfferFactory
— скидка 5000 рублей.Реклама. ИП Илькаев Артур Ринатович
ИНН: 594805887016
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣34🥴7👍4❤3🔥3🌭2
Mobile Meetup SberHealth❤️
Когда: 10 сентября в 18:30
Где: Москва офлайн/онлайн трансляция
В программе доклады от ведущих экспертов SH:
🔘 От разрозненных решений к системному подходу: история Core-команды
🔘 Особенности построения и развития дизайн-системы в мобильном приложении СберЗдоровья
⭐️ Прокопьев Евгений,
Лид мобильной команды в Купере,
расскажет почему стоит следующее мобильное приложение писать на React Native
⭐️ Юрий Шабалин,
Appsec Solutions – Владелец продукта Стингрей, Управляющий директор Стингрей Технолоджиз,
разберет самые частые уязвимости в мобильных приложениях
Присоединяйтесь, чтобы прокачать свои навыки и задать вопросы экспертам⭐️
🔜 Узнать подробности и зарегистрироваться
Реклама. ООО "Инновационные сервисы"
ИНН: 7725317248, erid:2SDnjdGN5pS
Когда: 10 сентября в 18:30
Где: Москва офлайн/онлайн трансляция
В программе доклады от ведущих экспертов SH:
Лид мобильной команды в Купере,
расскажет почему стоит следующее мобильное приложение писать на React Native
Appsec Solutions – Владелец продукта Стингрей, Управляющий директор Стингрей Технолоджиз,
разберет самые частые уязвимости в мобильных приложениях
Присоединяйтесь, чтобы прокачать свои навыки и задать вопросы экспертам
Реклама. ООО "Инновационные сервисы"
ИНН: 7725317248, erid:2SDnjdGN5pS
Please open Telegram to view this post
VIEW IN TELEGRAM
👎9❤4👍3😁1🤩1
Android Good Reads
Rich Errors в Kotlin 2.4 Анонсировали на KotlinConf. На мой взгляд, классная обертка на замену старому-доброму try-catch. Какие возможные проблемы видите в этом?
Анонсированные Rich Errors все ближе
В статье о том как к этому подготовиться, ну а я предлагаю взглянуть на side-by-side пример:
Было
Стало
В статье о том как к этому подготовиться, ну а я предлагаю взглянуть на side-by-side пример:
Было
fun loadConfig(path: Path): Result<Config> =
runCatching { fileSystem.readBytes(path) }
.mapCatching { bytes -> parseConfig(bytes) }
.recover { e ->
if (e is NoSuchFileException) defaultConfig() else throw e
}
fun useConfig(path: Path) {
loadConfig(path)
.onSuccess { cfg -> startApp(cfg) }
.onFailure { e ->
when (e) {
is NoSuchFileException -> showMissingConfigWarning()
is ConfigFormatException -> showConfigParseError(e)
else -> showGenericError(e)
}
}
}
Стало
// Rich errors
// Define error variants (could be data objects/classes in your domain)
data object IoFailure
data class ParseFailure(val details: String)
fun loadConfig(path: Path): Config | IoFailure | ParseFailure
fun useConfigRich(path: Path) {
when (val r = loadConfig(path)) {
is Config -> startApp(r)
is IoFailure -> showMissingConfigWarning()
is ParseFailure -> showConfigParseErrorMessage(r.details)
}
}
🔥17❤4🥰3
Android Good Reads
Про поддержку 16KB page Зачем? Девайсы с поддержкой 16 KB работают быстрее на 5-10%, а так же: 👉 Старт приложений быстрее (до 30% для некоторых приложений, 3.16% в среднем), 👉 Меньше расход батареи (на 4.56% меньше) 👉 Быстрее запуск камеры (4.48-6.60%) …
Доброе утро! Google начал рассылать письма счастья о необходимости поддержки 16kb page и дедлайне 1 ноября. Если у вас есть аккаунт разработчика - проверяйте состояния ваших приложений!
Более подробно писали вот тут: https://android-developers.googleblog.com/2025/05/prepare-play-apps-for-devices-with-16kb-page-size.html
Более подробно писали вот тут: https://android-developers.googleblog.com/2025/05/prepare-play-apps-for-devices-with-16kb-page-size.html
❤4😢3
Android Good Reads
Тестируйте умнее, а не усерднее Google обновили документацию по тестированию приложений 👉 Акцент на продуктивности разработки. Пишем тесты пропорционально пирамиде тестирования, не переусердствуем с частотой запуска тестов. Все ради минимизации стоимости…
Какое то время назад я вам продвигал идею скриншот тестирования через новую библиотеку от гугла. К сожалению, очередная версия поломалась и не работает так стабильно, как мне бы хотелось на моем проекте.
Заменил я ее связкой Roborazzi (robolectric) + Compose Preview Scanner.
В чем идея:
Про автоматизацию Roborazzi тестов почитать можно тут
Заменил я ее связкой Roborazzi (robolectric) + Compose Preview Scanner.
В чем идея:
Robotazzi
в целом умеет в скриншот тестирование хорошо, но для этого надо писать тесты, а я не хочу! Я хочу лениво, у меня ведь много превьюшек моих компонентов в коде.Compose Preview Scanner
как раз и закрывает эту проблему, сканируя вашу androidMain
/screenshotTest
/commonMain
(да! да! Поддерживает даже CMP) директорию на наличие превьюшек. В самих репозиториях исчерпывающий гайд, но я очень рекомендую посмотреть на примеры реализацииПро автоматизацию Roborazzi тестов почитать можно тут
👍7🔥2😁2
Android Good Reads
Kotlin/Compose MP - Что будет дальше? 👉 Фокус на iOS/web. Очень ждем, особенно первое. Зависимости и сборка это боль 👉 Улучшения IDE для MP разработки. Новый плагин это большая беда. Много багов, сломали что работало. Надеюсь будет лучше 👉 Kotlin Web/Wasm…
Пробовали на KMP что-то кроме мобилок?
Final Results
30%
Да, Desktop
15%
Да, WASM
10%
Да, Kotlin Native
7%
Да, давно пробовал Web
61%
Нет
Опасности Jetpack Compose State
Внутри статьи ответы, тут проблемы. Проверяем себя, что знаем как решать такие беды. Полезно будет для собеседований:
👉 Вы использовали
👉 В приложении LazyColumn дергается на обновлении данных
👉 При навигации между экранами стейт теряется
👉 Любое обновление состояние вызывает полную рекомпозицию дерева
Внутри статьи ответы, тут проблемы. Проверяем себя, что знаем как решать такие беды. Полезно будет для собеседований:
👉 Вы использовали
remember
, но как только экран покрутили - данные потерялись👉 В приложении LazyColumn дергается на обновлении данных
👉 При навигации между экранами стейт теряется
👉 Любое обновление состояние вызывает полную рекомпозицию дерева
👍5❤2🤯2😁1
Не рекламы ради, а рекомендация каналов моих бывших коллег.
@fewideas раньше мы вместе в Ökko работали и Степа был разработчиком, который перешел из разработки в менеджмент. Сейчас он продакт в Авиасейлс
@mazurov_channel мы вместе работали в аутсорсе над мобильными приложениями. Сейчас Марк в Стокгольме и рассказывает как живется разработчику в Швеции
Это уютные авторские каналы, которые я и сам читаю. Рекомендую!
@fewideas раньше мы вместе в Ökko работали и Степа был разработчиком, который перешел из разработки в менеджмент. Сейчас он продакт в Авиасейлс
@mazurov_channel мы вместе работали в аутсорсе над мобильными приложениями. Сейчас Марк в Стокгольме и рассказывает как живется разработчику в Швеции
Это уютные авторские каналы, которые я и сам читаю. Рекомендую!
4❤7👍3🔥3❤🔥1
Как запустить свой мини-продукт
Главная ошибка, которую допускают почти все разработчики, начинающие делать свой продукт – застревать в бесконечных доработках и доведении его до идеала вместо того, чтобы побыстрее выходить на рынок.
Ребята из сообщества "Короче, Капитан" учат другому подходу – зафиксировать ровно 1 месяц на разработку и запуск, вложить на продвижение небольшую сумму денег, и потом внимательно изучить результат, и понять, что вышло, а что нет. И так – в течение 12 месяцев, за которые вы запустите 12 собственных проектов!
Если вы давно подумывали разнообразить свою рутину созданием своих продуктов, и хотите сделать их действительно кому-то нужными, подписывайтесь на сообщество @its_capitan.
Реклама. ИП Зуев, ИНН 360408359441, erid:2VtzqvBd835
Главная ошибка, которую допускают почти все разработчики, начинающие делать свой продукт – застревать в бесконечных доработках и доведении его до идеала вместо того, чтобы побыстрее выходить на рынок.
Ребята из сообщества "Короче, Капитан" учат другому подходу – зафиксировать ровно 1 месяц на разработку и запуск, вложить на продвижение небольшую сумму денег, и потом внимательно изучить результат, и понять, что вышло, а что нет. И так – в течение 12 месяцев, за которые вы запустите 12 собственных проектов!
Если вы давно подумывали разнообразить свою рутину созданием своих продуктов, и хотите сделать их действительно кому-то нужными, подписывайтесь на сообщество @its_capitan.
Реклама. ИП Зуев, ИНН 360408359441, erid:2VtzqvBd835
🤣6👍3❤2🔥2
Серия статей про Model View State Machine. "Новый" подход к разработке. Полезно посмотреть как бывает.
👉 Intro
👉 Создавая state машину
👉 Делаем side эффекты (Скоро)
👉 Создаем вложенный state (Скоро)
👉 Используем и переиспользуем state машину (Скоро)
Я предпочитаю брать готовые решения, потому что, помимо написания своего большого архитектурного паттерна, его нужно развивать и продавать внутри компании. Иначе трудозатраты на создание и обслуживание не соответсвуют результату
👉 Intro
👉 Создавая state машину
👉 Делаем side эффекты (Скоро)
👉 Создаем вложенный state (Скоро)
👉 Используем и переиспользуем state машину (Скоро)
Я предпочитаю брать готовые решения, потому что, помимо написания своего большого архитектурного паттерна, его нужно развивать и продавать внутри компании. Иначе трудозатраты на создание и обслуживание не соответсвуют результату
Medium
Model View State Machine: MVS
When Google gave us the Jetpack ViewModel library, it was a blessing. Now it is time for something better: Model View State Machine.
👍3❤1🔥1
Архитектурые паттерны
Anonymous Poll
14%
Писать свое
19%
Взять готовое
36%
Взять готовое и дописать своего
20%
Забить, туда-сюда и в продакшн
11%
Посмотреть результаты
😁5🔥1