Руководство по переходу на Android Driver SDK 6.0

Переход на интерфейс DriverStatusListener

В версии 5 драйвера мы объявили о прекращении поддержки интерфейса StatusListener в пользу DriverStatusListener. В этом году мы официально удаляем интерфейс StatusListener. Руководство по переходу на новый интерфейс можно найти в разделе StatusListener прекращения поддержки.

Переход на Kotlin 2.0

Если вы используете Driver SDK для Android 6.0 или более поздней версии, вам необходимо перейти на Kotlin 2.0. На этой странице приведены рекомендации, которые помогут вам перейти на новую версию Kotlin.

Совместимость Gradle и AGP

У Kotlin 2.0 есть требования к минимальной и максимальной версиям Gradle и плагина Android Gradle (AGP). Убедитесь, что ваш проект соответствует следующим требованиям для Kotlin 2.0.

Минимальная версия AGP для Driver SDK 6.0+

Мы рекомендуем использовать AGP 7.3+ с Driver SDK 6.0.

Полный режим R8

Driver SDK версии 6 и ниже не поддерживает режим Full R8. Если ваше приложение предназначено для AGP 8.0 или более поздней версии, вам нужно явно отключить полный режим R8.

# settings.gradle
android.enableR8.fullMode=false

Совместимость версий Kotlin

Kotlin поддерживает обратную совместимость с тремя предыдущими версиями языка. Это значит, что если вы уже используете Kotlin 1.7 или более поздней версии с Driver SDK, то сможете перейти на Kotlin 2.0 без необходимости устранять все критические изменения. Однако совместимость с Kotlin распространяется только на стабильные функции языка. Если вы используете альфа-, бета- или экспериментальные функции на языке Kotlin, то при обновлении вам может потребоваться внести дополнительные изменения.

Флаги совместимости с Kotlin

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

language-version X.Y

Этот флаг позволяет отменить критические изменения в поведении предыдущей версии Kotlin. Например, если вы используете Kotlin 1.7, можно указать [ - language-version 1.7], и новые критические изменения больше не будут применяться:

android {
   kotlinOptions {
       languageVersion = '1.7'
   }
}
api-version X.Y

Этот флаг запрещает использовать новые API, пока зависимый код не будет готов к работе с Kotlin 2.0.

android {
   kotlinOptions {
       apiVersion = '1.7'
   }
}

Более точный подход

Помимо флагов совместимости Kotlin, мы рекомендуем ознакомиться с примечаниями к выпуску Kotlin и выбрать поведение, которое вы хотите сохранить из версии, с которой переходите. В руководствах по совместимости для каждой версии Kotlin есть список критических изменений и флагов, которые можно задать, чтобы сохранить исходное поведение: