Compose Broadcast
5.4K subscribers
305 photos
83 videos
504 links
Все о Jetpack Compose и Compose Multiplatform

YouTubе канал: https://youtube.com/androidBroadcast
Android - @android_broadcast
iOS - @ios_broadcast
Kotlin - @kotlin_broadcast
Download Telegram
Forwarded from Мобильное Чтиво (Maxim Kachinkin)
This media is not supported in your browser
VIEW IN TELEGRAM
🇺🇸 Рисуем SVG в Compose Great Again

Сегодня расскажу, как можно нарисовать сложный рисунок в Compose, если у вас есть SVG файл. А именно как распарсить SVG файл в удобные для нас Path и отрисовать их “руками”.

🔍 Парсинг SVG: Мы загружаем SVG файл с помощью XmlPullParser, который читает каждый элемент. В каждом path элементе хранится информация о том, как рисовать фигуру — всё закодировано в атрибуте d. Этот атрибут содержит команды типа "M" (move to), "L" (line to), "C" (curve to) и координаты. Вместе они формируют контур, который и станет нашим рисунком.

🛠️ Конвертация Path: Здесь проблема. В Compose пока нет метода для декодирования пути напрямую из d атрибута SVG.

Но мы сделаем конвертацию Great Again! Мы сначала создаём старый добрый Path из androidx.core.graphics (через метод createPathFromPathData), а потом конвертируем его в Compose Path с помощью asComposePath. Немного костыльно, но работает.

Теперь, когда мы всё распарсили и конвертировали, можем просто отобразить это в Compose.

Я выложил пример на GitHub, где вы можете посмотреть, как это работает. В этом проекте пярмо то, что изображено на видосе, какая-то карта и какие-то непонятные области.

P.S. Да, нажатия сделаны не совсем идеально — попадание внутрь Path осуществляется по bounding box, а не точно по форме. Но это уже отдельная задача, а здесь у нас фокус на отрисовке! 😎

💬 А что интересного вы рисовали в Compose?

#compose #svg
👍37🔥161🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
Вышел Haze 1.0 - Compose Multiplatform библиотека для блюра в UI. Нужна версия Compose 1.7.0

‼️ Если использовали предыдущие версии, то в 1.0 произошли изменения API

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

#compose #android #ios #desktop
Please open Telegram to view this post
VIEW IN TELEGRAM
31👍7
Compose Swift Bridge от TouchLab - инструмент для Compose MP разработчиков. Генерирует 🦢 Swift код для делегации вызовов Compose функций в нативных iOS View.

Исходный код на 🐱 GitHub

#kmp #ios #compose #touchlab
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👌2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Статья(EN,5м) с примером реализации центрированного слайдера

#compose #виджет
27👍7
💡 Preview Driven Development - новый подход к разработке Android-приложений

Концепция предлагает активно использовать превью-компоненты для тестирования и разработки интерфейсов и функций. Вот в чем суть:

👉 Jetpack Compose Previews позволяют не просто просматривать, но и тестировать функции на этапе разработки. Это упрощает процесс, снижает количество ошибок и дает визуальное представление всех состояний приложения.

👉 Мини-приложения для тестирования — каждый превью-компонент можно использовать как изолированное мини-приложение. Это значит, что тестировать отдельные элементы приложения можно без полной сборки и запуска.

👉 Автоматизация тестов — с помощью таких инструментов, как Emerge Snaphots, можно автоматизировать процесс проверки UI. Это делает разработку более стабильной и ускоряет релиз новых версий.

Для тех, кто хочет упрощать разработку и избегать неожиданных багов, Preview Driven Development — отличный инструмент! 💻

Исходники приложения доступны на 🐱 GitHub

#android #androidstudio #compose #автотесты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥5
Вышел Compose Multiplatform 1.7.1
🚀 Улучшения производительности
🛠 Исправлена бинарная совместимость на JVM
🛠 ИСправлены баги
⬆️ Обновились до Jetpack Compose 1.7.5 и других свежих библиотек

#compose #kmp #jvm
🔥20
🐱 Libre-Sudoku - open-source Android приложение на Jetpack Compose ⚙️ и Material 3

#пример #android #compose #material3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42👍8👏1
Set из Kotlin std lib является Immutable типом в Compose ?
Anonymous Poll
26%
Верно
55%
Неверно
15%
Не знаю
4%
Не участвую в опросе
⚙️ Анимированное лого Airbnb в Jetpack Compose

Статья с реализацией анимирования лого Airbnb. Используется SVG логотип и происходит анимация по его точкам

#compose #android #анимация
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍40🔥16
🚀 Библиотека для интеграции Bottom Sheets из Material 3 в Jetpack Navigation Compose

#compose #навигация #material3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20👏4
Composable Screens - приложение с демонстрацией сложных интерфейсов, реализованных на Compose UI.

#пример #compose
🔥47👍1
Media is too big
VIEW IN TELEGRAM
⚙️ JetBrains сделала Hot Reload для Compose Desktop не хуже чем в Flutter

Добились этого благодаря использованию специальной JVM с поддержкой переопределения классов, доступной в JetBrains Runtime.

В 📹 видео (EN,6м) происходит демонстрация

Пока всё в экспериментальном режиме, но результаты радуют ❤️. Когда же уже Compose MP превью в IDE будет работать из коробки

#compose #desktop #jvm #idea #androidstudio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥15
⚙️ Важный совет по ускорению Compose

Порой вместо передачи значения в Composable функцию лучше делать это через лямбду, так как это не приведет к рекомпозицям. Лучший пример - Modifier.offset. В статье как раз демонстрируется какой эффект оказывает описанный подход

#compose #производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍50