Доделал свой старый проект - инструмент для восстановления ориентации объектов в пространстве на основе опорных компонентов. Работает в Autdesk Maya.
Основные возможности.
▫️просто выделите опорные (обычно симметричные или осевые) компоненты и укажите куда их ориентировать
▫️ операции для доворотов и центрирования
▫️ восстановление исходного расположения после восстановления трансформаций
▫️работает как с одним объектом так и с группой
▫️ открытый API для интеграций с другими инструментами и автоматизаций
Все действия происходят с векторами и матрицами объектов, поэтому всё достаточно быстро.
Где может применяться?
🪑Нередкая проблема - собрали лейаут сцены и зафризили, или даже смержили всю геометрию в один большой меш. Требуется вернуть все объекты в "Т-позу", сохранить отдельно и расставить обратно в сцену, но с правильными трансформациями.
Инструмент как раз заточен под такую работу.
🌲Заскатерили инстансы и потом конвертнули в меш. Нужно обратно преобразовать в инстансы. Здесь поможет API который восстановит положение каждого инстанса в нуле и вернёт его обратно в исходное положение, но с правильными трансформациями. Останется забрать матрицу с объекта для инстанса.
Быстрое превью функционала:
▶️https://www.youtube.com/watch?v=JvlHa0NEXu8
Документация и код здесь:
🌍https://github.com/paulwinex/pw-maya-restore-orient
#release#source
🔨Вышел AGP 9.2.0 с одной экспериментальной фичей и набором фиксов.
Главное новшество — unified coverage and test reports. Плагин теперь умеет генерировать HTML-дашборд, который объединяет результаты unit и instrumentation тестов по всем модулям и вариантам сборки в одном месте. Пока это эксперимент: нужно включить флаг android.experimental.reportAggregationSupport=true в gradle.properties.
🛠 Из фиксов стоит выделить несколько практически значимых: починили переименование APK через новый AGP DSL, исправили падение JdkImageTransform при использовании JDK 26, починили поведение Android Lint с флагом --quiet и сломанную работу кастомных lint-правил, скомпилированных под Java 21 bytecode.
Совместимость: Gradle 9.4.1, SDK Build Tools 36.0.0, JDK 17, максимальный API level 36.1.
Единый тест-дашборд — нужная штука для проектов с большим количеством модулей, где сейчас результаты разбросаны по папкам. Подожду stable прежде чем трогать в рабочем проекте, но направление правильное.
#Android#AGP#Gradle
🤖Готовьтесь к Android Gradle Plugin 9.0 — грядут большие перемены!
Совсем скоро состоится релиз Android Gradle Plugin 9.0 (AGP), который полностью меняет подход к конфигурации Android‑проектов: удаляет устаревшие API, упрощает настройку и пересматривает организацию конфигурации.
Ключевые изменения:
👉 Переход на Gradle 9.X
👉 Поддержка Kotlin теперь встроена в AGP — подключение org.jetbrains.kotlin.android больше не требуется и даже будет рушить сборку. Из плюсов — минус один плагин.
👉 Плагин org.jetbrains.kotlin.multiplatform больше не будет работать с com.android.library и com.android.application. Используйте com.android.kotlin.multiplatform.library, а для приложения создавайте отдельный модуль.
👉 Массовые изменения в API — множество удалений без прямых альтернатив. В целом идёт отказ от старых публичных интерфейсов, ведь новые уже давно доступны, и авторы плагинов могут их использовать.
👉 Некоторые возможности конфигурации теперь будут доступны только в библиотечном плагине.
Чтобы корректно обновиться до новой версии, нужно, чтобы все плагины, подключённые в проект, поддержали необходимые изменения — или отказаться от них.
Подробнее обо всех изменениях — в документации
Надеюсь, Android Studio добавит ассистента по миграции. А вот авторам плагинов, похоже, прибавится работы 😅
Как вам перемены? Пойдут ли они на пользу скорости сборки и удобству использования AGP?
#Android#AndroidDev#Gradle#AGP#AndroidStudio
🤖AGP 9.0: Fused Library Plugin — новый способ публикации нескольких модулей как один AAR
В Android Gradle Plugin (AGP) 9.0 и новее появился инструмент, которого ждали многие разработчики SDK и библиотек. Встречайте плагин Fused Library (com.android.fused-library). Пока в экспериментальном режиме.
Раньше, если вы разбивали свой код на много модулей, перед вами вставала дилемма: заставлять пользователя подключать 5 разных зависимостей или использовать неофициальные "fat-aar" скрипты. Теперь Google предлагает нативное решение.
Fused Library плагин позволяет взять несколько Android Library модулей и упаковать их в один AAR [1].
1️⃣ Для включения фичи надо будет добавить флаг в gradle.properties:
android.experimental.fusedLibrarySupport=true
2️⃣ Затем создаем модуль для публикации (например, my-sdk-fused). В его build.gradle.kts добавляем:
plugins {
id("com.android.fused-library")
`maven-publish`
}
androidFusedLibrary {
namespace = "dev.androidbroadcast.mysdk"
minSdk = 23
}
dependencies {
// Указываем модули для "слияния"
include(project(":core"))
include(project(":ui-components"))
// Можно вливать даже внешние либы!
include("dev.androidbroadcast:cool-fonts:1.0")
}
Обратите внимание на include — это ключевая команда для упаковки.
3️⃣ Используем компонент fusedLibraryComponent при публикации артефакта:
publishing {
publications {
register<MavenPublication>("release") {
groupId = "dev.androidbroadcast"
artifactId = "fat-sdk"
version = "1.0.0"
from(components["fusedLibraryComponent"])
}
}
}
Инструмент мощный, но есть особенности:
❌Data Binding не поддерживается.
⚠️Ресурсы: При совпадении имен побеждает ресурс из зависимости, указанной первой.
⚠️Build Types: Нельзя слить debug и release в один проход, нужны разные fused-модули.
🐞Source JAR: Пока есть известные проблемы с генерацией исходников.
Подробнее читайте в [документации](https://developer.android.com/build/publish-library/fused-library)
#Android#AndroidDev#Gradle#AGP#Maven