Как обновить kotlin в android studio
Перейти к содержимому

Как обновить kotlin в android studio

  • автор:

Обновление версий

Своевременное обновление версий Gradle и его плагинов гарантирует, что вы используете наиболее актуальную версию без багов и уязвимостей.

Также с выходом новых обновлений появляются новые функции, которые, возможно, понадобятся в проекте.

Gradle​

Мы используем Gradle Wrapper как обертку, которая автоматизирует процесс установки нужной версии Gradle.

Чтобы поменять версию Gradle в вашем проекте, необходимо перейти в директорию gradle/wrapper и открыть файл его настроек gradle-wrapper.properties :

  # .  # URL-адрес для загрузки дистрибутива Gradle distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip  # . 

Каталог с возможными версиями Gradle вы можете найти тут.

Gradle придерживается такого подхода к версионированию, при котором апдейты минорных версий не нарушают обратную совместимость. При обновлении же мажорных версий, например Gradle 6.9.1 ~> 7.0.2 , есть высокая вероятность, что что-то будет несовместимо, поэтому такие апдейты надо делать аккуратно и проверять, что будет с обеими платформами.

Plugins​

Что делать если Android Studio предложила обновить Android Gradle Plugin (AGP) или Kotlin Gradle Plugin? Какие плагины и зависимости можно обновлять без последствий?

Kotlin и Android​

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

С ноября 2020 года Android Gradle Plugin поддерживает семантическое версионирование, поэтому при обновлении AGP с версии 7.0 на версию 7.1 ничего сломаться не должно.

Kotlin поддерживает немного другой вид версионирования, о котором вы можете прочитать тут.

Например, если в вашем проекте используется Kotlin Multiplatform Plugin:

plugins  kotlin("multiplatform") version "1.4.21" > 

то при смене feature версии 1.4.21 ~> 1.5.21 нужно проверить компиляцию обеих платформ и работу кода во время выполнения. Также скорее всего придется обновлять и версии библиотек на те, которые поддерживают новую версию.

А при смене incremental ( 1.5.21 -> 1.5.30 ) и bugfix ( 1.5.20 -> 1.5.21 ) версий обратная совместимость сохраняется и проблем быть не должно.

Материалы​

Настройка среды

Прежде чем приступить к созданию своего первого приложения для работы как на iOS, так и на Android, начните с настройки среды для Kotlin Multiplatform Mobile разработки:

Плагин Kotlin Multiplatform Mobile

  1. Если вы собираетесь работать с общим кодом или кодом, специфичным для Android, вы можете работать на любом компьютере с операционной системой, поддерживаемой Android Studio. Если вы также хотите написать код, специфичный для iOS, и запускать приложение на моделируемом или реальном устройстве, используйте Mac с macOS. Работать с iOS в других операционных системах, таких как Microsoft Windows, нельзя. Это связано с требованием Apple.
  2. Установите Android Studio 4.2 или 2020.3.1 Canary 8 или выше. Вы будете использовать Android Studio для создания своих мультиплатформенных приложений и запуска их на имитируемых или аппаратных устройствах.
  3. Если вам нужно написать код для iOS и запускать приложения, установите Xcode версии 11.3 или выше. Большую часть времени Xcode будет работать в фоновом режиме. Вы будете использовать его для добавления кода на Swift или Objective-C в свое приложение.
  4. Убедитесь, что у вас установлен совместимый плагин Kotlin. В Android Studio выберите Tools | Kotlin | Configure Kotlin Plugin Updates и проверьте текущую версию плагина Kotlin. При необходимости обновите до последней Stable версии.
  5. Установите плагин Kotlin Multiplatform Mobile. В Android Studio выберите Preferences | Plugins, найдите плагин Kotlin Multiplatform Mobile в Marketplace и установите его. Посмотрите Kotlin Multiplatform Mobile plugin release notes.

© 2015—2023 Open Source Community

Как обновить пользовательский интерфейс во время работы?

В процессе изучения kotlin и android studio решил сделать, казалось бы, банальную вещь: таймер. Всего-то вот тебе button, вот тебе textView, нажал на кнопку, цикл for запустился и знай себе подставляет новое значение в textView, засыпает на секунду и по новой. Но узнал маленький нюанс: все элементы пользовательского интерфейса отказываются обновляться до завершения onResume (по крайней мере, это то, как это выглядит). И поэтому такой код:

override fun onResume() < super.onResume() for(i in 1..10) < bindingClass.textView.text = i.toString() Thread.sleep(1000) >>

Приводит лишь к тому, что приложение будто зависает на 10 секунд, а потом сразу показывает «10» на экране. Пробовал запустить в отдельной сопрограмме через runBlocking < launch <>> , но результат тот же.

Какой самый оптимальный способ добиться нужного результата? И неужели обновлять пользовательский интерфейс во время работы приложения настолько редкая задача, что в котлине не добавили какой-нибудь заготовленный способ это сделать? По крайней мере, мне не удалось его найти

  • Вопрос задан более двух лет назад
  • 679 просмотров

Как обновить kotlin в android studio

На этом шаге мы рассмотрим назначение некоторых секций в Gradle .

Сначала посмотрим на структуру каталогов в окне с инструментами слева. В раскрывающемся списке, в заголовке окна, показан пункт Android (рисунок 1).

Рис.1. Вид раскрытого пункта Android

Теперь найдите раздел Gradle Scripts внизу в окне с инструментами и раскройте его (рисунок 2).

Рис.2. Gradle Scripts

Некоторые шаги по настройке Gradle уже выполнены Android Studio за вас, так как вы выбрали разработку на языке Kotlin . Давайте посмотрим.

Файл конфигурации Gradle (Project: Samodelkin) определяет глобальные настройки проекта. С ним работают реже. Так находятся настройки для репозиториев и самого Gradle . Дважды щелкните на build.gradle (Module: Samodelkin.app) , отнсящийся к модулю, чтобы открыть его в редакторе, то есть в основном окне Android Studio . Вы увидите, что этот файл является текстовым. Вот его содержимое:

plugins < id 'com.android.application' id 'org.jetbrains.kotlin.android' > android < namespace 'com.example.samodelkin' compileSdk 32 defaultConfig < applicationId "com.example.samodelkin" minSdk 21 targetSdk 32 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" > buildTypes < release < minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' > > compileOptions < sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 >kotlinOptions < jvmTarget = '1.8' > > dependencies < implementation 'androidx.core:core-ktx:1.7.0' implementation 'androidx.appcompat:appcompat:1.5.1' implementation 'com.google.android.material:material:1.7.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.4' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0' >

Номер версии приложения и требования к версии Android прописаны в секции defaultConfig . Подключение библиотеки происходит одной строкой: вместо compile используется implementation . Есть похожая команда, которая подключает библиотеку, которая будет использоваться только для отладки приложения и в релизной версии она не нужна. Это testImplementation . Зависимости Android -проекта объявлены в блоке dependencies .

Однако вернёмся в корневую папку. Кроме файлов build.gradle мы можем заметить файлы gradle.properties , settings.gradle и другие. Трогать их не нужно.

В заключение покажем приём, который вам пригодится в дальнейшем при обновлении библиотек. Откройте файл build.gradle , который относится к модулю. Там будут подсвечены строки у библиотек, у которых доступны обновления (рисунок 3). При подведении мыши появится подсказка, что библиотека устарела. Выбираем пункт для обновления Change to. Повторяйте эти шаги для других библиотек при необходимости.

Рис.3. Обновление библиотек

Затем нажмите ссылку синхронизации Sync Now в верхнем правом углу студии.

Рис.4. Ссылка синхронизации

Данным способом вы потом будете неоднократно пользоваться в своих проектах, когда библиотеки будут устаревать. Студия сама определит, что пора обновиться (это относится не ко всем библиотекам, некоторые нужно проверять вручную).

На следующем шаге мы рассмотрим организацию проекта .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *