Compose Broadcast
5.4K subscribers
306 photos
81 videos
501 links
Все о Jetpack Compose и Compose Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Android - @android_broadcast
iOS - @ios_broadcast
Kotlin - @kotlin_broadcast
Download Telegram
Пример(EN,4м) реализации Pull-to-Refresh из Material 3 Compose библиотеки

#material #android #compose
👍9
Что лучше брать для представления состояния в Compose: MutableState или MutableStateFlow из корутин? Размышления и сравнение читайте в статье (EN, 8м)

#compose #coroutines
👍6
Вышел Compose Compiler 1.5.15 с обновление до Kotlin 1.9.25

#compose
👍141
This media is not supported in your browser
VIEW IN TELEGRAM
Valkyrie - плагин для Idea/Android Studio от подписчика канала для конвертации SVG и Android XML Vector Drawable в Compose ImageVector. Поддерживает Compose Multiplatform

Давайте поддержим звездой на GitHub

#compose #idea #androidstudio
👍61🔥5
Forwarded from Kotlin Adept Notes (Alex Panov)
Нашли серьезную уязвимость в Jetpack Navigation Compose, которая позволяет открыть любой экран в приложении, даже если там нет явных диплинков ⚠️

Эксплуатируется она максимально просто, достаточно знать имя пакета и название маршрута в графе навигации:


Intent().apply {
setClassName("your.package", "your.package.MainActivity")
data = Uri.parse("android-app://androidx.navigation/YOUR_DESTINATION")
startActivity(this)
}


Как защититься

1. Разумеется лучший вариант не использовать данную навигацию, можете посмотреть мой пост со сравнением библиотек навигации для Compose и выбрать подходящую
2. Если в приложении не используются диплинки, можно частично решить проблему перетерев data в определенном intent:


val intentData = intent.dataString
if (intentData != null && intentData.startsWith("android-app://androidx.navigation")) {
intent.setData(null)
}


#Security #Compose
@kotlin_adept
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30💯4
Media is too big
VIEW IN TELEGRAM
📺 Advanced layout animations in Compose (Shared elements)

0:00 Introduction
0:39 Basic layout animations
1:11 How do layout animations work
3:18 Lookahead
4:58 Use cases for Lookahead
5:56 Shared elements
6:39 SharedTransitionLayout
8:08 Modifier.sharedElement
9:02 Custom animation specs
9:40 Modifier.sharedBounds
11:43 ResizeMode
12:52 Overlay
15:37 Modifier.skipToLookaheadSize
16:29 Clipping
18:53 Modifier ordering
19:54 Predictive Back
20:53 Shared elements under the hood
21:09 Composition Phase
22:14 Layout Phase
26:27 Drawing Phase
26:49 Overlay under the hood
28:02 Challenges with overlay
29:42 Summary

#compose #анимация
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍6👏2
Альтернативная библиотека для организации пагинации списков в Compose UI на мультиплатформе

#compose #пагинация #kmp #android #ios #desktop #js #wasm
🔥16
Так как Compose Compiler стал частью Kotlin, то встречайте версию 2.0.20
👩‍💻 Исправили баг с лишними рекомпозициями, который появился в версии 2.0.0
👩‍💻 Strong skipping режим теперь включен по умолчанию. Что это такое читайте тут
👩‍💻 Теперь включать выключать разные фичи Compose Compiler можно будет через Gradle DSL с помощью нормального API, а не текстовых флагов
👩‍💻 абстрактные Composable функции теперь поддерживают значения параметров по умолчанию
👩‍💻 Экспериментальная оптимизация "Non-skipping group" - отключает генерацию группы вокруг тела Composable

#kotlin #compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29
Forwarded from Android Broadcast
Media is too big
VIEW IN TELEGRAM
📺 Fragments in Compose (10 мин)

Видео про то как вставить Fragment в Compose с применением библиотеки fragment-compose (уже стабильная версия 1.8)

Почитать про использование Fragment в Compose можно в документации

#compose #fragment #android #jetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25
Статья (EN, 3м) со сравнением TextField и BasicTextField из Compose
👉 TextField соответствует гайдам Material Design
👉 BasicTextField базовая Composable функция для работы с вводом текста без привязки к UI системе


#compose #material
👍24👌1
Media is too big
VIEW IN TELEGRAM
📺 Работа с Shader в Jetpack Compose (EN, 6м)

Оригинал на 📺 YouTube

#compose #android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥3
Интеграция авторизации по биометрии (лицо, отпечаток пальца и т.д.) в Compose Multiplatform под мобилку

#android #ios #compose
29🔥7👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Field Spottr - статья как автор сделал приложение с использованием KMP и Compose для Android и iOS. Опубликовано в Google Play и App Store

👉 Исходники на GitHub

#пример #android #ios #compose #kmp
🔥15
‼️ Вышел стабильный Jetpack Compose 1.7.0

👉 Shared element transitions
👉 Анимации элементов в Lazy List
👉 Поддержка встроенных ссылок и базового форматирования HTML через AnnotatedString.fromHtml()
👉 ContextualFlowRow и ContextualFlowColumn новые layout которое делают композицию только того контента который могут вместить
🚀 Ускорение работы. В отдельных бенчмарках до 17%
👉 Strong skipping mode включен по умолчанию с Compose Compiler 2.0.20
👉 Различные API их экспериментальных переехали в стабильные
👉 Задепрекейтили ClickableText. На замену BasicText с LinkAnnotation
👉 Поддержка длинных скриншотов

Артефакты
👉 Compose Runtime 1.7.0
👉 Compose Material3 1.3
👉 Compose Material 1.7.0
👉 Compose Foundation 1.7.0
👉 Compose UI 1.7.0
👉 Compose Animation 1.7.0
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42👍5
Compose Broadcast pinned «‼️ Вышел стабильный Jetpack Compose 1.7.0 👉 Shared element transitions 👉 Анимации элементов в Lazy List 👉 Поддержка встроенных ссылок и базового форматирования HTML через AnnotatedString.fromHtml() 👉 ContextualFlowRow и ContextualFlowColumn новые layout которое…»
Forwarded from Android Broadcast
Вышла стабильная Jetpack Navigation 2.8.0. Главное нововведение типобезопасная навигация для Compose 🔥

Что еще:
👉 Поддержка Predictive Back жеста
👉 Новый артифакт navigation-fragment-compose. Добавляет ComposableNavHostFragment, который позволяет в XML граф навигации добавлять Composable функции

#compose #fragment
🔥40👍8