Media is too big
VIEW IN TELEGRAM
#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
Короткая статья с описанием того как под капотом устроена работа Compose чтобы модифицировать код с Composable аннотациями и привести его к исполняемому виду
#подкапотом #compose
#подкапотом #compose
Вышел загрузчик изображений Coil 3.0 c поддержкой 🏝 Kotlin Multiplatform. Теперь помимо 🤖 Android поддерживается iOS, JVM, JS и WASM. Подробнее тут
Что еще нового:
❗️ Изменился пакет с
👉 Можно выбрать библиотеку для работы с сетью: OkHttp или Ktor
👉 Улучшили работы с Compose Preview
❌ Убрали загрузку Android ресурсов через
❗️ По умолчанию размер декодированной картинки не будет превосходить размер 4096 на 4096
❗️ Работу с Coil 2 Parameters API заменил на
🛠 Важные улучшения и исправления
Новая версия требует внесения изменения в код. Подробное руководство читайте в руководстве по миграции
#kmp #сеть #картинки #compose
Что еще нового:
io.coil-kt
на io.coil-kt.coil3
👉 Можно выбрать библиотеку для работы с сетью: OkHttp или Ktor
👉 Улучшили работы с Compose Preview
android.resource://example.package.name/drawable/image
Extras
🛠 Важные улучшения и исправления
Новая версия требует внесения изменения в код. Подробное руководство читайте в руководстве по миграции
#kmp #сеть #картинки #compose
Please open Telegram to view this post
VIEW IN TELEGRAM
Если хотите сделать такое форматирование с Compose, то обратите внимание на библиотеку Compose Rich Editor
#compose
#compose
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
Сегодня расскажу, как можно нарисовать сложный рисунок в 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
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
#compose #android #ios #desktop
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Preview Driven Development - новый подход к разработке Android-приложений
Концепция предлагает активно использовать превью-компоненты для тестирования и разработки интерфейсов и функций. Вот в чем суть:
👉 Jetpack Compose Previews позволяют не просто просматривать, но и тестировать функции на этапе разработки. Это упрощает процесс, снижает количество ошибок и дает визуальное представление всех состояний приложения.
👉 Мини-приложения для тестирования — каждый превью-компонент можно использовать как изолированное мини-приложение. Это значит, что тестировать отдельные элементы приложения можно без полной сборки и запуска.
👉 Автоматизация тестов — с помощью таких инструментов, как Emerge Snaphots, можно автоматизировать процесс проверки UI. Это делает разработку более стабильной и ускоряет релиз новых версий.
Для тех, кто хочет упрощать разработку и избегать неожиданных багов, Preview Driven Development — отличный инструмент! 💻✨
Исходники приложения доступны на🐱 GitHub
#android #androidstudio #compose #автотесты
Концепция предлагает активно использовать превью-компоненты для тестирования и разработки интерфейсов и функций. Вот в чем суть:
👉 Jetpack Compose Previews позволяют не просто просматривать, но и тестировать функции на этапе разработки. Это упрощает процесс, снижает количество ошибок и дает визуальное представление всех состояний приложения.
👉 Мини-приложения для тестирования — каждый превью-компонент можно использовать как изолированное мини-приложение. Это значит, что тестировать отдельные элементы приложения можно без полной сборки и запуска.
👉 Автоматизация тестов — с помощью таких инструментов, как Emerge Snaphots, можно автоматизировать процесс проверки UI. Это делает разработку более стабильной и ускоряет релиз новых версий.
Для тех, кто хочет упрощать разработку и избегать неожиданных багов, Preview Driven Development — отличный инструмент! 💻✨
Исходники приложения доступны на
#android #androidstudio #compose #автотесты
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышел Compose Multiplatform 1.7.1
🚀 Улучшения производительности
🛠 Исправлена бинарная совместимость на JVM
🛠 ИСправлены баги
⬆️ Обновились до Jetpack Compose 1.7.5 и других свежих библиотек
#compose #kmp #jvm
🚀 Улучшения производительности
🛠 Исправлена бинарная совместимость на JVM
🛠 ИСправлены баги
⬆️ Обновились до Jetpack Compose 1.7.5 и других свежих библиотек
#compose #kmp #jvm
#пример #android #compose #material3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья с реализацией анимирования лого Airbnb. Используется SVG логотип и происходит анимация по его точкам
#compose #android #анимация
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#compose #навигация #material3
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Composable Screens - приложение с демонстрацией сложных интерфейсов, реализованных на Compose UI.
#пример #compose
#пример #compose
Media is too big
VIEW IN TELEGRAM
Добились этого благодаря использованию специальной JVM с поддержкой переопределения классов, доступной в JetBrains Runtime.
В
Пока всё в экспериментальном режиме, но результаты радуют ❤️. Когда же уже Compose MP превью в IDE будет работать из коробки
#compose #desktop #jvm #idea #androidstudio
Please open Telegram to view this post
VIEW IN TELEGRAM
Порой вместо передачи значения в Composable функцию лучше делать это через лямбду, так как это не приведет к рекомпозицям. Лучший пример - Modifier.offset. В статье как раз демонстрируется какой эффект оказывает описанный подход
#compose #производительность
Please open Telegram to view this post
VIEW IN TELEGRAM