Compose Broadcast
5.89K subscribers
392 photos
97 videos
634 links
Все о Jetpack Compose и Compose Multiplatform

По сотрудничеству - @ab_manager
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
⚙️ Вышел Compose HotSwan 2.0.0 - Hot Reload для Android, iOS и Desktop. В новой версии прокачали движок определения изменений.

Полезно как для людей, так и для разработки с AI агентами, так как не приходится прокликивать приложение до экрана при каждых изменениях, что экономит токены.

💰Решение платное - 5$/месяц, есть триал на 2 недели.

💬 Если кто уже пробовал - делитесь опытом в комментариях

#Compose #CMP #Android #Desktop #iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
В Compose 1.13 появится полноценный Blur для контента через Modifier

#Compose
👎1
⚙️ Вышел Compose Multiplatform 1.2.1, который принес фиксы

#Compose #CMP #KMP
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1
🐱 SIGO (Should I go outside?) - самое правильное приложение про погоду, дающее важный ответ - стоит ли выходить на улицу. Еще бы рассказала как стоит одеться или нет 😁

Из плюсов - всё open source и на современном стеке Compose Multiplatform и Kotlin Multiplatform с с поддержкой Android, iOS, Desktop

🔗 Можно поставить из 🛒 Google Play и App Store

#Compose #Android #Desktop #iOS #Пример
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1
⚙️ Эффект размытия и стекла для Compose Multiplaftom - вышел Haze 2.0

Modifier.hazeGlass(
input = HazeInput.Sources(hazeState),
style = GlassStyle.regular.then {
shape(RoundedCornerShape(20.dp))
tint(Color.White.copy(alpha = 0.16f))
},
)

🔗 Документация библиотеки
🔗 Бенчмарки как работают эффекты
🔗 Миграция с Haze 1.0 на 2.0

#Compose #CMP
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👎2
🤖 Wear Compose 1.7.0: жесты одной рукой и айтемы, которые уезжают за край, а не фейдятся

👉 Одноручные жесты теперь официально через API: оснвое действие — double-pinch, отмена — поворот запястья. На кнопках, карточках, списках и пейджерах рисуются индикаторы, когда жест доступен.
👉 В TransformingLazyColumn уходящий айтем может сдвинуться за край вместо анимации fade.
👉 SwipeToReveal перестал ломаться на nested scroll и быстрых флингах.

Тестировать надо на реальных часах, надетых на руку человека.

#Compose #WearOS #JetpackCompose
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1
⚡️⚡️Когда API недостаточно: хардкорные доклады на Mobius

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
🤖 Instagram Direct (мессенджер внутри приложения) переписали на Compose и результаты ВАУ

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👎1
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍12🔥4👎3
⚙️ Встраивание Compose в UIKit и SwiftUI-экраны стало стабильным

Раньше стабильным для 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. В прод пока рано.

🐱 Release notes CMP 1.13.0-alpha02

#Compose #CMP #iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1👎1
⚙️ Jetpack Compose 1.13 вышел в beta, можно пробовать

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👎3
⚙️ Pixelate: прячем данные за пиксельной мозаикой в Compose Multiplatform

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-рендер на кадр, так что не вешайте на каждую строку длинного списка.


🐱 GitHub
🔗 Статья 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👎1
⚙️ Google выпустил официальный скилл для аудита производительности Compose

Агенты любят лечить тормоза в 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 CLI: ищите в android skills list и добавляйте через android skills add. Про остальные скиллы Google писал тут.

‼️ UPD Скилл пока еще готовится, его страницу мне получилось найти заранее

🔗 Скилл

#Compose #AI #Performance
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥34❤2👎1