⚡️⚡️Когда API недостаточно: хардкорные доклады на Mobius
Mobius — профильная конференция по мобильной разработке: здесь встречаются разработчики, архитекторы, DevOps-инженеры, тестировщики и тимлиды, чтобы разбирать технологии iOS, Android, Аврора ОС, Flutter и Kotlin Multiplatform.
📅21–22 октября, Санкт-Петербург + online
Собрали в карточках несколько докладов для тех, кому интересно заглянуть глубже готовых API и библиотек. Внутри — внутреннее устройство Kotlin Flow, NFC internals в Android, Liquid Glass и Metal, шейдеры, портирование KMP-приложения на Аврора ОС и инструмент для AI-агентов.
Это только небольшая часть программы Mobius — в ней еще десятки докладов и разные форматы для мобильных разработчиков.
Листайте карточки и переходите на сайт, чтобы посмотреть полное расписание.
🌟По промокоду
[Купить билет]
Реклама. ООО «Джуг Ру Груп». ИНН 7801341446
Mobius — профильная конференция по мобильной разработке: здесь встречаются разработчики, архитекторы, DevOps-инженеры, тестировщики и тимлиды, чтобы разбирать технологии iOS, Android, Аврора ОС, Flutter и Kotlin Multiplatform.
📅21–22 октября, Санкт-Петербург + online
Собрали в карточках несколько докладов для тех, кому интересно заглянуть глубже готовых API и библиотек. Внутри — внутреннее устройство Kotlin Flow, NFC internals в Android, Liquid Glass и Metal, шейдеры, портирование KMP-приложения на Аврора ОС и инструмент для AI-агентов.
Это только небольшая часть программы Mobius — в ней еще десятки докладов и разные форматы для мобильных разработчиков.
Листайте карточки и переходите на сайт, чтобы посмотреть полное расписание.
🌟По промокоду
composebroadcast персональные билеты дешевле[Купить билет]
Реклама. ООО «Джуг Ру Груп». ИНН 7801341446
👎1
Meta с Google сделали мессенджер "AI native" на Compose. Это значит что теперь агенты лучше пишут код и тратят на это меньше времени и токенов. Ключ - меньше способов агенту давать смешивать императивное (XML/View) с декларативным (Compose) и нагенерить багов.
Какие заявленные итоги:
👉 UI-кода стало меньше примерно наполовину меньше
👉 После перехода статистика: расход токенов сократился на 33%, время на выполнение задач сократилось на −35% (очень спорная метрика), инженеры стали меньше вмешиваться в сессии на −32%
👉 Заявляют об улучшение производительности UI
На самом деле - это всё мифы! Там не просто переход на Compose помог, а еще оптимизация кода вокруг него, но вот "AI native" - это кажется новый подход к коду, чтобы с ним эффективно работали агент. Сюда же идут Quality Gate и контроль качества через CI/CD
🔗 Источник - официальный блог Android Developers
#Compose #AndroidDev #AI
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1
Раньше стабильным для iOS был только
ComposeUIViewController, и чтобы вставить кусок Compose в готовый экран, его приходилось оборачивать в контроллер. В CMP 1.11 появилась ComposeUIView(), которая сразу возвращает UIView, но она была экспериментальной. В 1.13.0-alpha02 с неё сняли @ExperimentalComposeUiApi.В Kotlin всё как с контроллером:
// iosMain/ComposeViews.kt
fun ProfileCardUIView(): UIView = ComposeUIView {
ProfileCard()
}
В SwiftUI оборачиваем в
UIViewRepresentable. Чтобы view подстраивалась под контент, на iOS 16+ передаём ей размер, который предлагает SwiftUI:struct ProfileCardView: UIViewRepresentable {
func makeUIView(context: Context) -> UIView {
ComposeViewsKt.ProfileCardUIView()
}
func updateUIView(_ uiView: UIView, context: Context) {}
@available(iOS 16.0, *)
func sizeThatFits(_ proposal: ProposedViewSize, uiView: UIView, context: Context) -> CGSize? {
uiView.sizeThatFits(CGSize(
width: proposal.width ?? UIView.noIntrinsicMetric,
height: proposal.height ?? UIView.noIntrinsicMetric
))
}
}Что важно знать:
👉 Настройки передаются через
configure с ComposeUIViewConfiguration. Стабильна только часть из них, например onFocusBehavior, а opaque, parallelRendering и preferredSizeReportingStrategy пока экспериментальные👉 Compose-сцена создаётся, когда view попадает в Window, и уничтожается, когда её оттуда убирают
👉
UIViewController в иерархии всё равно нужен, просто вручную привязывать к нему Compose больше не надо⚠️ Важно: это alpha, нужны Kotlin 2.4.20 и
compileSdk 37.1 для Android. В прод пока рано.#Compose #CMP #iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
Google выпустила Compose 1.13.0-beta01, а вместе с ним Material 3 1.5.0-beta01. В beta API уже feature-complete: всё новое из альф 1.13 зафиксировали, и до stable дальше пойдут в основном фиксы. Так что самое время обновить проект и попробовать новые API, не боясь, что они поменяются через пару недель.
⚠️ Важно: библиотеки Compose теперь требуют Kotlin 2.2. Если проект ещё на Kotlin 2.1 или ниже, вместе с Compose придётся обновить и Kotlin.
🔗 Release notes Compose 1.13.0-beta01
🔗 Release notes Material 3 1.5.0-beta01
#Compose #JetpackCompose #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👎2
Joe Birch сделал Pixelate для своего приложения Sleevd. Там данные портфеля доступны только на платном плане, но вместо заглушки бесплатные пользователи видят тот же UI, только значения закрыты мозаикой.
Text(price, modifier = Modifier.pixelate())
Для целого поддерева есть обёртка
Pixelate { }.Как работает:
👉 Через
drawWithCache контент рисуется в крошечный ImageBitmap, один пиксель на блок, и растягивается обратно с FilterQuality.None👉 Размер блока считается от высоты контента, поэтому текст одного кегля пикселизуется одинаково, будь то «$12» или «$134,502.88»
👉 Всё происходит на этапе отрисовки, размер и позиция в layout не меняются
⚠️ Важно: это не защита. Значение остаётся в composition и semantics tree, его увидит screen reader или дебаггер. И это один offscreen-рендер на кадр, так что не вешайте на каждую строку длинного списка.
🔗 Статья Joe Birch
#Compose #CMP
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21
Агенты любят лечить тормоза в Compose через
@Stable, @Immutable и ImmutableList. Новый скилл Google прямо это запрещает для моделей с коллекциями: со Strong skipping (по умолчанию с Kotlin 2.0.20) .equals() по списку дороже, чем сравнение по ===.Агент проверяет код по 7 категориям и перед каждой правкой читает справочный гайд:
👉 state и stability: чтение state в Layout/Draw, backwards writes,
computedStateOf в Compose 1.13+👉 лейауты: без
onGloballyPositioned и BoxWithConstraints в горячих местах👉 Lazy:
key и contentType, без LaunchedEffect для аналитики в items👉 анимации, эффекты и Flow, графика (
drawWithCache), миграция на Modifier.NodeСначала скилл требует release-сборку, R8 и Baseline Profiles.
android skills listandroid skills add🔗 Скилл
#Compose #AI #Performance
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33❤2
Старая версия писала, что нестабильный параметр значит рекомпозицию всегда. Но с Kotlin 2.0.20 по умолчанию работает Strong Skipping, и нестабильные параметры сравниваются по ссылке (===). Гайд наконец под это обновили, и советы поменялись.
👉 Коллекции. Раньше советовали Kotlinx immutable collections или @Immutable/@Stable. Теперь: не делайте этого без нужды в equals(). === стоит O(1), а equals() по большому списку на каждой рекомпозиции может выйти дороже самой рекомпозиции
👉 Типы из других модулей. Вместо обёрток в UI-модели теперь файл конфигурации стабильности или аннотации, но только для небольших моделей с дешёвым equals()
👉 Отладка. Первым делом проверьте, не создаётся ли новый экземпляр нестабильного параметра на каждой рекомпозиции
🔗 Stability in Compose
#Compose #AndroidDev #Performance
Please open Telegram to view this post
VIEW IN TELEGRAM
❤18
Mobile вызывает. Ответите? 📱
VK JT Mobile Meetup на связи сразу в двух городах:
📍 В Москве — 31 октября
📍 В Санкт-Петербурге — 14 ноября
В Москве вас ждут два параллельных трека — iOS и Android, а в Петербурге — один общий мобайл-трек.
На проводе будут инженеры ВКонтакте, Дзена, MAX, VK Tech и других команд ВК. В программе — реальные кейсы мобильной разработки: 120 FPS, анализ влияния, сравнительные тесты, ИИ, архитектура и другие задачи производства.
После докладов можно обсудить кейсы с другими разработчиками, поучаствовать в интерактивах и пообщаться на вечеринке.
Мероприятие рассчитано на iOS- и Android-разработчиков и пройдут только офлайн. Принимайте вызов в своём городе!
→ Регистрация
#реклама
VK JT Mobile Meetup на связи сразу в двух городах:
📍 В Москве — 31 октября
📍 В Санкт-Петербурге — 14 ноября
В Москве вас ждут два параллельных трека — iOS и Android, а в Петербурге — один общий мобайл-трек.
На проводе будут инженеры ВКонтакте, Дзена, MAX, VK Tech и других команд ВК. В программе — реальные кейсы мобильной разработки: 120 FPS, анализ влияния, сравнительные тесты, ИИ, архитектура и другие задачи производства.
После докладов можно обсудить кейсы с другими разработчиками, поучаствовать в интерактивах и пообщаться на вечеринке.
Мероприятие рассчитано на iOS- и Android-разработчиков и пройдут только офлайн. Принимайте вызов в своём городе!
→ Регистрация
#реклама
❤2👎1
Compose Broadcast
#Compose #AndroidDev #AI
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13