Две новости последних дней:
1. Гильдия актёров озвучки видеоигр в США закончила годовую забастовку, выбив себе особые условия по использованию их голосов в ИИ
2. Крупнейшие медиагиганты Disney и Universal подали в суд на Midjourney за незаконное использование их изображений в обучении нейросети
Обычно в таких темах люди делятся на две группы. Одна говорит, что ИИ обучается как и человек, только быстрее, поэтому подобные запреты приближаются по смыслу к запрету людям обучаться на работах других людей, что немыслимо. Другая говорит, что ИИ комбинирует кусочки существующих данных, просто очень хитрым образом, но всё равно это нарушение, потому что человек тоже не может вырезать кусок чужого изображения и где-то его использовать, не имея на это прав.
Я считаю, что у нас на лицо сценарий романа Стругацких «Далёкая радуга» — человечество кинулось лавинообразно исследовать и расширять некоторое явление, для которого не изучены последствия и не выработаны правила и меры предосторожности. У нас нет ни хорошей юридической практики обращения с нейросетями, ни защиты от возможного коллапса экономики из-за потери сотен тысяч рабочих мест, ни контроля за данными в интернете, которые постепенно превращают поисковые выдачи текста, картинок и видео в неконтролируемый мусор. Да, корпорациям очень хочется понастроить себе датацентров с ИИ, чтобы выгнать людей и не платить зарплаты. Иронично, что другие крупные корпорации сейчас этому частично противятся, но, я вас уверяю, тому же Диснею абсолютно плевать на своих художников, и они тоже с радостью заменят их на тот же Midjourney, как только нейросети поднимутся ещё на пару градаций по качеству и предсказуемости.
Окей, когда ИИ заменит программистов, никто не будет особо горевать из-за исчезновения дорогих зажравшихся айтишников-выскочек. Но с художниками ситуация сложнее. В теории мы рискуем потерять огромный пласт человеческой культуры, потому что работа людей-художников перестанет цениться, а сами художники не смогут эффективно презентовать себя в потоке нейрошлака. И с этой позиции конкретно сейчас Дисней с Юниверсалом делают благое дело. Вот только, по-видимому, они сильно опоздали.
#life
HotSwan - быстрое обновление Composable на реальном устройстве. Доступно как плагин для Android Studio
Я выбрал другой путь - делаю СMP проект с поддержкой Android + Desktop JVM и так можно быстро проверять + делать код чище.
#Compose
⚙️ Нашел сайт с демонстрацией того как происходит рекомпозиция с примером хороших и плохих практик
Как была сделана реализация написали в статье, а исходники есть на GitHub
#compose
⚙️ Нужно ли проставлять аннотации @Stable и @Immutable сразу при написании кода? 🤔 Мой ответ — НЕТ!
Не стоит заниматься преждевременной оптимизацией. Пишите UI без оглядки на аннотации стабильности, а затем используйте инструменты анализа, чтобы определить, где действительно возникают лишние рекомпозиции и есть смысл оптимизировать типы.
Как анализировать рекомпозиции и пропуски?
👉 Используйте Layout Inspector в Android Studio (подробнее — в этом посте)
👉 Включайте отслеживание работы composable-функций в System Trace
👉 Можно воспользоваться библиотекой Compose Investigator, чтобы получать детальные логи по рекомпозициям
‼️Важный нюанс:
Если вы используете типы из внешних библиотек или из модулей, где не подключён Compose Compiler, такие типы всегда считаются Unstable. Это может приводить к лишним рекомпозициям.
🚀Strong Skipping Mode действительно упростил жизнь разработчикам, но старайтесь передавать в параметры Сomposable-функций только Stable или Immutable типы. Это позволит максимально эффективно использовать skipping и сделать UI более производительным.
#compose
Вышел Coil 3.2.0
Что нового
⬆️ Обновление Kotlin, Compose, Okio, Skiko, Coroutines и др зависимостей до актуальных версий
🛠 Исправление багов
👉 Compose артефакты требуют Java 11 и выше из-за перехода на Compose 1.8.0
#compose
⚙️Вышел Jetpack Compose 1.10.0
👉 Стабильное API Shared Transition
👉 Оптимизированный скролл
👉 Новые подходы к сохранению данных при пересоздании Activity через ViewModel
🚀 Повышена производительность UI на Compose
🛠 Исправлено багов и шероховатостей
Изменений действительно много — в один пост всё не поместить.
Буду разбирать ключевые обновления по отдельности в следующих публикациях на @compose_broadcast✨
#compose#android
🤖 Как использовать Compose, чтобы сделать анимированный Splash Screen
Разработчик создал библиотеку androidx-splashscreen-compose (не от Google решение), которая позволяет делать красивую анимацию как на анимашке.
Подробный разбор и реализация есть в статье (EN,6м, альт. ссылка) или 🐱исходниках на GitHub
#android#compose
⚙️Вышел Jetpack Compose 1.9 Stable (августа 2025)
Главные новинки:
👉 Тени нового поколения — dropShadow() и innerShadow() дают больше контроля, чем классический shadow().
👉 LazyLayout — новый API предзагрузки и кэширования элементов для более плавного скролла.
👉 2D-прокрутка — Scrollable2D для таблиц, карт и больших изображений.
👉 Расширенный stack trace — имена composable и их позиции для отладки в stacktrace (только в debug).
👉 Новые аннотации — @RememberInComposition, @FrequentlyChangingValue и перенос @Stable в отдельный модуль.
Подробнее буду рассказывать в @compose_broadcast. Подписывайтесь!
#compose#android
📹Mastering text input in Compose (EN, 18м)
Google выпустили шикарное видео, где показали лучшие практики работы с текстовыми полями в Compose — с примерами, API и лайфхаками.
В ролике разработчики на примере рассказывают:
👉 как использовать state-based TextField — новый подход к управлению вводом;
👉 зачем нужен SecureTextField и как задать требования к паролю;
👉 как работает Autofill API (да, теперь можно сохранять логины и OTP);
👉 как кастомизировать поле ввода OTP с помощью BasicTextField и decorator;
👉 как принимать GIF и изображения через drag & drop с новым contentReceiver;
👉 как использовать input/output трансформации для автоподстановки скобок и тире в номерах;
#android#compose
⚙️ Вышел Jetpack Compose 1.8.0
Все новинки расскажу отдельными постами в @compose_broadcast, а именно:
👉 Autofill
👉 ресайзинг текста под контейне
👉 новое API для отслеживания Composable на экране
👉 анминирование границ Composable
👉 стабилизация API (убрали экспериментальные аннотации)
👉 ContextualFlowRow и ContextualFlowColumn теперь deprecated, им на замену используйте FlowRow и FlowColumn
👉 диалоги теперь учитывают режим экрана edge-to-edge
👉 упростили тестирование ClickableText
👉 появилась возможность кастомизации overscroll
Свежий BOM для новых версий
implementation(platform("androidx.compose:compose-bom:2025.04.01"))
#compose#android
⚙️Как работать с Custom Layout в Jetpack Compose (21м)
В этой статье вы найдете:
👉 как работают layout-ы в Compose;
👉 изменение layout-а отдельного компонента;
👉 создание кастомных Layout и LazyLayout;
👉 отложенную композицию.
Всё это на примерах, в том числе из дизайн-системы Авито.
#compose#android