TGViewer
Channel Public Channel
Mobile Compose

Mobile Compose

@mobile_compose

Твой главный путеводитель в мир Jetpack Compose и Compose Multiplatform.

Android XR: @android_xr
Личный блог: @grigorievdy_blog

Автор: @grigorievdy

Поддержать канал: https://t.me/mobile_compose?boost
Subscribers
2.96K
Photos
159
Videos
3
Links
340

Showing posts older than #377 · Back to latest

Older Posts 18 shown
Post #376 3.67K
#Video #KotlinConf #Compose

🏝 Creative UIs with Compose | Chris Horner

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

Автор доклада показывает, как с помощью Jetpack Compose воссоздать сложный UI из игры Persona 5 — с кастомными формами, анимациями и нестандартными элементами в LazyColumn/LazyRow.

Без Material Design, смс и регистраций.

📺 Смотреть видео

🎨 Mobile Compose 💬 Чат канала
♾️
  • 🔥 18
  • 👍 5
  • ❤‍🔥 1
  • ❤ 1
Post #375 3.88K
#Video #Foundation #Compose

😇 Embedded Layout Inspector | Jetpack Compose Tips

В Android Studio появился Embedded Layout Inspector — новый способ дебага UI на Jetpack Compose прямо в среде разработки. Быстро, наглядно и без лишних окон.

В этом видео рассказывается:
▫️ как открыть инспектор
▫️ как пользоваться деревом компонентов и панелью атрибутов
▫️ и зачем нужен Deep Inspect

📺 Смотреть видео

🎨 Mobile Compose 💬 Чат канала
♾️
  • ❤ 6
  • 👍 3
  • 🔥 2
  • ❤‍🔥 1
Post #374 3.37K

Forwarded from Kotlin Adept Notes (Alex Panov)

Как встроить SwiftUI в Compose Multiplatform

Обычно я стараюсь избегать использования кастомных CompositionLocal в Compose, так как это добавляет неявные зависимости, и если не предоставить значение, приложение упадёт в рантайме. Я придерживаюсь подхода, в котором CompositionLocal можно использовать только тогда, когда значение действительно может быть полезно любой Composable-функции в дереве. Яркий пример — тема приложения.

И при работе с Compose Multiplatform я подсмотрел классное применение этого механизма для встраивания SwiftUI вьюшек в Composable функции.

1. В сорсете iosMain создаём CompositionLocal и интерфейс NativeViewFactory.
2. На стороне Swift реализуем этот интерфейс и передаём его в функцию создания UIViewController.
3. В этой функции пробрасываем фабрику через CompositionLocalProvider.
4. Далее в любом месте поддерева в iosMain можно получить доступ к этой нативной вьюшке.

🌐 Посмотреть пример приложения для сканирования QR-кодов с этим подходом можно в репозитории, который я подготовил для лекции в онлайн-университете.

#Compose #SwiftUI
  • 👍 11
  • ❤ 8
  • ❤‍🔥 2
  • 👎 1
Post #373 2.8K
#Release #Compose #Changelog

😇 Релиз Compose библиотек (от 02.07.2025)

🔵 Animation 1.9.0-beta02
🔵 Foundation 1.9.0-beta02
🔵 Material 1.9.0-beta02
🔵 Runtime 1.9.0-beta02
🔵 UI 1.9.0-beta02

▫️Material 3 1.4.0-alpha17
▫️Material3 Adaptive 1.2.0-alpha08
▫️Navigation3 1.0.0-alpha05
▫️NavigationEvent 1.0.0-alpha04
▫️Lifecycle ViewModel Navigation3 1.0.0-alpha03
▫️Wear Compose 1.5.0-beta05

🎨 Список всех изменений

🎨 Mobile Compose 💬 Чат канала
♾
  • 👍 8
  • ❤‍🔥 2
  • ❤ 2
Post #372 3.11K

Forwarded from Grigoriev Blog

Если вы iOS-разработчик, но всегда хотели прикоснуться к богоподобному Android — эта новость для вас:

🤖 Команда разработки Swift объявила о создании рабочей группы по Android, основная цель которой — добавить официальную поддержку Android для разработки на языке Swift.

Пока это всё выглядит как "наш ответ Чемберлену" на KMP + Compose. Что из этого выйдет — поглядим.

#android #ios #news
  • 🤣 41
  • 😁 11
  • ❤ 5
  • 👍 2
  • 🔥 2
  • ❤‍🔥 1
Post #371 3.43K
#UI #Modifier #Compose

🎨 С приходом Compose 1.9 была добавлена ещё одна долгожданная фича, о которой давно просили: возможность надёжно отслеживать, виден ли элемент на экране и получать уведомления о смене видимости.

Встречаем два новых модификатора:
Modifier.onFirstVisible()

и
Modifier.onVisibilityChanged()


Пример использования (автоматическое воспроизведение/пауза видео):
@Composable
fun VideoFeed(feedData: List<Video>) {
LazyColumn {
items(feedData) { video ->
VideoRow(
video,
Modifier.onVisibilityChanged { visible ->
if (visible) video.play() else video.pause()
},
)
}
}
}


🤖 Больше примеров с новыми модификаторами

🎨 Mobile Compose 💬 Чат канала
♾
  • 🔥 47
  • 👍 11
  • ❤ 3
  • ❤‍🔥 1
Post #368 3.13K
#UI #News #Compose

🎨 В Compose 1.9 завезли два новых модификатора теней:
Modifier.dropShadow()

и
Modifier.innerShadow()

в дополнение к уже привычному Modifier.shadow() с привязкой к elevation.

Теперь можно делать куда более интересные и живые UI-эффекты — плюс, стилизация становится ближе к тому, что мы привыкли видеть в Figma.

🎨 Mobile Compose 💬 Чат канала
♾
  • 🔥 48
  • 👍 14
  • ❤ 7
  • ❤‍🔥 4
  • 🤯 2
Post #367 3.55K
#Release #Compose #Changelog

😇 Релиз Compose библиотек (от 18.06.2025)

🔵 Compose BOM 2025.06.01

🔵 Animation 1.8.3 / 1.9.0-beta01
🔵 Foundation 1.8.3 / 1.9.0-beta01
🔵 Material 1.8.3 / 1.9.0-beta01
🔵 Runtime 1.8.3 / 1.9.0-beta01
🔵 UI 1.8.3 / 1.9.0-beta01

▫️Material 3 1.4.0-alpha16
▫️Material3 Adaptive 1.2.0-alpha07
▫️Navigation3 1.0.0-alpha04
▫️NavigationEvent 1.0.0-alpha03
▫️Lifecycle ViewModel Navigation3 1.0.0-alpha02
▫️Ink 1.0.0-alpha05 (добавлена поддержка Compose)

🎨 Mobile Compose 💬 Чат канала
♾
  • 👍 5
  • ❤ 4
  • 🔥 2
  • ❤‍🔥 1
Post #366 3.71K
#Blog #Quiz #Compose

🎨 В чём разница между Immutable и Stable в Jetpack Compose?

▫️ Immutable следует использовать для по-настоящему неизменяемых классов, то есть таких, чьи данные не могут измениться.

▫️ Stable означает, что обновления в классе не произойдут без уведомления наблюдателей. Например, класс, агрегирующий State, считается стабильным, потому что все наблюдатели State будут перерассчитаны при его изменении.
Stable — это концепция, специфичная для Compose.
Если аргумент composable-функции стабильный, то не нужно проверять его содержимое для определения необходимости рекомпозиции — достаточно проверить ссылку.

Обычно Compose сам может определить стабильность класса, и аннотации не требуются. Однако, при необходимости, их можно использовать для явного указания флага стабильности типа.

❗️На данный момент Compose обрабатывает Immutable и Stable одинаковым образом!

🌐 Источник 👈

🎨 Mobile Compose 💬 Чат канала
♾
  • ❤ 11
  • 👍 9
  • ❤‍🔥 1
  • 🔥 1
Post #365 3.94K
#Article #Habr #UI #Compose

🎨 Создание кастомного тултипа Jetpack Compose

Статья с разбором процесса создания кастомного тултипа в Jetpack Compose своими руками — начиная со структуры данных и заканчивая реализацией методов управления позиционированием и отображением.

📖 Читать статью

🎨 Mobile Compose 💬 Чат канала
♾
  • ❤‍🔥 14
  • 👍 10
  • ❤ 2
  • 👎 1
Post #364 3.79K

Forwarded from Grigoriev Blog

Разбираюсь с новой Navigation 3 (1.0.0-alpha01)

Первые впечатления: интересно, многообещающе, но пока очень сыро.

Около часа убил на ошибку
No Navigation EventDispatcher was provided via Local Navigation EventDispatcher Owner

пока не выяснилось, что Google вчера успели уже дропнуть версию 1.0.0-alpha02 где это пофиксили 🫠

#android
  • 😁 38
  • 🤯 8
  • ❤ 4
  • ❤‍🔥 1
Post #363 3.68K
#GoogleIO #Compose #Navigation

❤️ Jetpack Navigation 3

Несмотря на обилие различных библиотек для навигации, Jetpack Navigation 2, даже с учётом своих недостатков, на протяжении многих лет оставалась предпочтительным вариантом для многих приложений.

Теперь Google представили Jetpack Navigation 3 (Nav3) — новую библиотеку навигации, написанную с нуля специально для Compose приложений.

Основные принципы Nav3:
▫️Декларативный стиль и работа вокруг state
▫️Самостоятельное управление back stack
▫️Поддержка Predictive Back
▫️Поддержка кастомных анимаций
▫️Поддержка гибких макетов экранов

😇 Читать подробнее о Nav3

🎨 Mobile Compose 💬 Чат канала
♾
  • ❤‍🔥 17
  • 👍 7
  • 🔥 5
  • 😁 4
  • ❤ 1
Post #362 3.09K
#GoogleIO #Compose

🖥 Колонизация полным ходом

Около 60% приложений из Топ-1000 Google Play уже используют Jetpack Compose в своём коде. Неплохая статистика за меньше чем 4 года в релизе.

🎨 Mobile Compose 💬 Чат канала
♾
  • 👍 18
  • ❤‍🔥 6
  • 🔥 6
  • 💯 2
Post #361 2.6K
🎙 Приём, как слышно?
Возвращаем активность на канале!


🎨 За этот месяц произошло немало интересного: релиз Compose 1.8.0 для всех платформ, выход Compose for iOS в Stable и ещё куча всего вкусного.

🖥 Но главное событие — это прошедший Google I/O 2025. Показали немало занятных фич, и разбор самых интересных из них — уже на подходе. Поехали! 🚀
  • 🔥 17
  • ❤ 7
  • 🎉 4
  • ❤‍🔥 1
  • 👍 1
Post #359 4.02K
Mobile Compose 📣 Розыгрыш 2 билетов на Mobius 🎨 😀 До старта Mobius Spring 2025 осталось несколько недель, а значит пришло время разыграть 2 билета на конференцию. Условия просты — необходимо быть подписанным на @mobile_compose и @grigorievdy_blog Результаты подведем 3…
🎉 Результаты розыгрыша:

🏆 Победители:
1. Максим (@Maks125x)
2. Mikhail (@vyuzzzh)

✔️Проверить результаты
  • 🎉 19
  • ❤ 2
  • 👍 1
Post #358 3.99K
Mobile Compose 📣 Розыгрыш 2 билетов на Mobius 🎨 😀 До старта Mobius Spring 2025 осталось несколько недель, а значит пришло время разыграть 2 билета на конференцию. Условия просты — необходимо быть подписанным на @mobile_compose и @grigorievdy_blog Результаты подведем 3…
😀 🔠🔠🔠🔠➖🔠🔠🔠🔠 ☝
  • 👎 6
  • 👍 3
  • ❤ 2
Post #357 4.12K
#Article #Habr #UI #Compose

🎨 Как работать с Custom Layout в Jetpack Compose

Статья о том, как работают лейауты в Compose, как кастомизировать Layout и LazyLayout и откладывать композицию — с примерами из дизайн-системы Авито.

📖 Читать статью

🎨 Mobile Compose 💬 Чат канала
♾
  • 👍 20
  • 🔥 7
  • ❤ 3
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →