Что такое Desugaring

«Что такое Desugaring» — вопрос из категории Gradle и сборка, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Desugaring — это процесс преобразования современных Java/Kotlin API в совместимые версии для старых Android-устройств. Позволяет использовать новые языковые фичи (например, java.time, Streams) на API <24 без ручной имплементации.

Пример:

// До десугаринга (требует API 26+)
val date = Instant.now()

// После десугаринга (работает на API 21+)
// Преобразуется в вызовы библиотеки desugar_jdk

Включается в Gradle:

android {
    compileOptions {
        coreLibraryDesugaringEnabled true
    }
}

Требует добавления зависимости coreLibraryDesugaring и multidex для больших проектов.