Итак, вопрос с собеседования! Чем отличается Dispatchers.Main от Dispatchers.Main.immediate
Внутри разбирают с картинками:
👉 А что если продьюсить на
👉 А зачем выбирать
👉 Почему AndroidX команда выбрала
Ладно, я немного преувеличил и думаю, что такого рода вопросы скоро, все-таки, пропадут с собеседований...
Внутри разбирают с картинками:
👉 А что если продьюсить на
Main, а консьюмить на immediate. И вообще перебрать всевозможные комбинации?👉 А зачем выбирать
immediate?👉 Почему AndroidX команда выбрала
immediate стандартным диспатчером для lifecycleScope и viewModelScope?Ладно, я немного преувеличил и думаю, что такого рода вопросы скоро, все-таки, пропадут с собеседований...
👍14🤔10🔥2💯1💅1
LeakCanary теперь встроен в профайлер внутри Android Studio, начиная с Panda 1
В чем особенность? Компьют перенесли с мобильного девайса на ваш лаптоп. Теперь поиск в дампе будет быстрее
В чем особенность? Компьют перенесли с мобильного девайса на ваш лаптоп. Теперь поиск в дампе будет быстрее
👍17🔥6
Кажется, это было трендом еще в 2016 году, но давайте освежим. Модуляризация в Android для больших команд
И сразу же часть 2 с примером
От себя скажу, что на эту статью лучше посмотреть как на чужой опыт и не перенимать один в один. Прежде чем приступать к такого рода изменениям - попробуйте и обкатайте их на отдельном проекте и проверьте как это будет работать
И сразу же часть 2 с примером
От себя скажу, что на эту статью лучше посмотреть как на чужой опыт и не перенимать один в один. Прежде чем приступать к такого рода изменениям - попробуйте и обкатайте их на отдельном проекте и проверьте как это будет работать
😁7👍3🔥3
Как kotlinx.serialization генерирует код
В этой статье разбирается внутреннее устройство compile плагина
А зачем это знать?
Можно успешно использовать библиотеку, и не зная этих нюансов. Однако понимание внутренних механизмов поможет вам решать редкие связанные баги и принимать оптимальные по производительности решения
В этой статье разбирается внутреннее устройство compile плагина
kotlinx.serialization: от стратегии двухпроходной генерации IR (промежуточного представления) до оптимизации «золотой маски» для проверки обязательных полей. Плагин превращает обычные аннотации @Serializable в эффективные и типобезопасные сериализаторы, полностью обходясь без рефлексии или генерации кода во время выполненияА зачем это знать?
Можно успешно использовать библиотеку, и не зная этих нюансов. Однако понимание внутренних механизмов поможет вам решать редкие связанные баги и принимать оптимальные по производительности решения
Revenuecat
How kotlinx.serialization generates code: a compiler plugin deep dive
In this article, you'll dive deep into the internal mechanisms of the kotlinx.serialization compiler plugin.
👍4
Зовем на максимально практическую онлайн-конференцию Podlodka Techlead Crew «Архитектура данных», 2-6 марта.
Пригодится техлидам, которые хотят меньше теории и больше рабочих решений без ненужного хайпа.
А в надежном комьюнити можно обсудить доклады ❤️
В программе:
⚙️ Как строить потоковую обработку данных и не получить неуправляемую систему.
⚖️ Как выбирать между SQL, NoSQL и NewSQL под реальные нагрузки и сценарии.
🧩 Как проектировать DWH и Data Lake так, чтобы было полезно бизнесу.
🧠 Как работать с консистентностью и транзакциями без потери масштабируемости.
📊 Как и когда применять OLAP-хранилища и не превращать аналитику в боль.
🗓 Когда: 2 - 6 марта
🔗 Посмотреть подробную программу →
Пригодится техлидам, которые хотят меньше теории и больше рабочих решений без ненужного хайпа.
А в надежном комьюнити можно обсудить доклады ❤️
«Идет долгий тренд на оптимизацию ресурсов и подсчет затрат на инфраструктуру.
Востребованы инженеры, которые могут разобраться, как оптимизировать потребление ресурсов хранилища, как быстрее и эффективнее работать с ними»,
— объясняет главный принцип выбора темы директор Techlead Crew Григорий Скобелев.
В программе:
⚙️ Как строить потоковую обработку данных и не получить неуправляемую систему.
⚖️ Как выбирать между SQL, NoSQL и NewSQL под реальные нагрузки и сценарии.
🧩 Как проектировать DWH и Data Lake так, чтобы было полезно бизнесу.
🧠 Как работать с консистентностью и транзакциями без потери масштабируемости.
📊 Как и когда применять OLAP-хранилища и не превращать аналитику в боль.
🗓 Когда: 2 - 6 марта
🔗 Посмотреть подробную программу →
👍3❤2🔥2
Как и куда расти мобильному разработчику в эпоху ИИ?
Предлагаем разобраться вместе с Яндекс Вертикалями (Авто.ру, Яндекс Недвижимость, Аренда и Путешествия) на Vertis Mobile Meetup в Санкт-Петербурге.
В этот раз хардовых докладов не будет. Вместо них — нетворкинг, круглые столы, а также выступления о том, как работать над большими задачами, становиться продуктивнее и оставаться в балансе.
📍 Обсудим разные карьерные треки, переходы между ролями, влияние ИИ на индустрию. И обменяемся мнениями по техническим темам: KMP / CMP, DI.
А после всех обсуждений участников ждёт афтепати🐥
🔜 Полная программа и регистрация
Предлагаем разобраться вместе с Яндекс Вертикалями (Авто.ру, Яндекс Недвижимость, Аренда и Путешествия) на Vertis Mobile Meetup в Санкт-Петербурге.
В этот раз хардовых докладов не будет. Вместо них — нетворкинг, круглые столы, а также выступления о том, как работать над большими задачами, становиться продуктивнее и оставаться в балансе.
А после всех обсуждений участников ждёт афтепати
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3👎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 категория багов на проде
Вместо того чтобы просто сравнивать либы, автор делит их на две категории:
Истинный Dependency Injection (Dagger, Hilt, Anvil, kotlin-inject, Metro)
👉 Строятся на Inversion of Control (IoC)
Service Locators (Koin, Kodein, Spring DI, Compose CompositionLocals)
👉 Фокус на Developer Experience и скорости написания кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
Zac Sweers
Re: Dependency Injection vs. Service Locators
This is a port of a write-up I did in the Kotlin Lang slack here in response to the question "Dagger vs. Hilt vs. Koin vs. Metro vs. <what comes next>. Serious question: Are there any compelling reasons to switch from Koin to Metro in a Compose Kotlin multiplatform…
👎8👍6🥴3❤2
Петиция KeepAndroidOpen
В августе 2025 года Google объявила, что начиная с сентября 2026 года разрабатывать приложения для платформы Android будет невозможно без предварительной централизованной регистрации в Google. Эта регистрация будет включать:
👉 Оплату сбора Google
👉 Согласие с условиями использования Google
👉 Предоставление удостоверения личности государственного образца
👉 Загрузку доказательств владения приватным ключом подписи разработчика
👉 Указание всех текущих и будущих идентификаторов приложений
Если вкратце - распространять приложения станет сильно сложнее. На странице петиции описаны (на разных языках) последствия которые нас ждут после вступления правил в силу
В августе 2025 года Google объявила, что начиная с сентября 2026 года разрабатывать приложения для платформы Android будет невозможно без предварительной централизованной регистрации в Google. Эта регистрация будет включать:
👉 Оплату сбора Google
👉 Согласие с условиями использования Google
👉 Предоставление удостоверения личности государственного образца
👉 Загрузку доказательств владения приватным ключом подписи разработчика
👉 Указание всех текущих и будущих идентификаторов приложений
Если вкратце - распространять приложения станет сильно сложнее. На странице петиции описаны (на разных языках) последствия которые нас ждут после вступления правил в силу
keepandroidopen.org
Keep Android Open
Advocating for Android as a free, open platform for everyone to build apps on.
👍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 в работе, куда расти, и как искать работу. Результаты выложим где-то в апреле!
👉Пройти опрос
Ребята из DevCrowd запустили новое большое исследование мобильных разработчиков (а они проводят их уже много лет). И вот в 2026 году его результаты, кажется, будут действительно неожиданными – разработка за последний год поменялась очень сильно, и эта волна точно затронула и Android.
В опросе будем разбираться с тем, что происходит на рынке по грейдам и зарплатам, выживает ли кроссплатформа, как мобильщики используют AI в работе, куда расти, и как искать работу. Результаты выложим где-то в апреле!
👉Пройти опрос
survey.alchemer.eu
Исследование мобильных разработчиков, 2026
Исследование мобильных разработчиков, 2026.
👍5❤3
Новый 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.iss.one/androidraft/93
https://t.iss.one/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
👍4🔥1👏1😁1