Compose Broadcast – Telegram
Compose Broadcast
5.82K subscribers
342 photos
88 videos
558 links
Все о Jetpack Compose и Compose Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Android - @android_broadcast
iOS - @ios_broadcast
Kotlin - @kotlin_broadcast
Download Telegram
Фреймворк тестирования Ultron обзавелся поддержкой Compose Multiplatform. Пока находится в стадии альфа, но уже можно пробовать писать свои тесты на нём.

Автор библиотеки сделал её большой разбор в 📺 видео для @android_broadcast

#тестирование #multiplatform #compose
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍1
Разбор(EN,6м) того как работает Jetpack Compose Preview в IDE и на устройстве/эмуляторе

#compose #androidstudio
👌3
Полезная статья (EN,12м) с демонстрацией что умеют TextField в Compose и как это реализовать. Примеры с градиентами, маской ввода номера карты, обработка действий пользователя, использование username и многое другое

#compose
28👍14🔥1
Статья с коротким разбором альтернатив для Lottie, но которые можно применять в Compose Multiplatform а не только в Android как оригинал от Airbnb. Рассматриваются Kottie и Compottie и это самое главное что я вынес из статьи.

#анимаци #compose
🔥20👍63
Пример(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