Поддерживает ли Android Studio все функции и API Kotlin? - PullRequest
0 голосов
/ 30 января 2019

Я разработчик Android и у меня общий вопрос по Kotlin.Поддерживает ли Android Studio все функции и API Kotlin?Я уверен, что все основные типы и операторы полностью поддерживаются и Android Studio может компилироваться.Можно ли также предположить, что функции, лямбды, сопрограммы и т. Д. Полностью поддерживаются?Например, когда была объявлена ​​поддержка Java 8 для Android Studio, был веб-сайт с документацией, объясняющий, какие функции Java 8 были поддержаны, а какие нет:

https://developer.android.com/studio/write/java8-support#supported_features

Но этого не существуетдля котлина.Я предполагаю, что если это строка стандартного кода Kotlin, она будет компилироваться в Android Studio, это правильно?

Причина моего вопроса в том, что я работаю с группой Java-серверов (в основном с весенней загрузкой) и разработчиков JavaFX, и нам нравится делиться как можно большим количеством кода.Отсутствие совместимости с Java 8 в Android вызвало у нас некоторые проблемы.Сейчас мы хотим преобразовать большую часть нашего кода в Kotlin.Я хотел бы предположить, что все стандартные функции:

https://kotlinlang.org/api/latest/jvm/stdlib/index.html

И, надеюсь, все функции сопрограмм:

https://kotlinlang.org/docs/reference/coroutines/coroutines-guide.html

Будет полностью поддерживаться, скажем, для Android-приложения, созданного с помощью Android Studio, и настольного Java-приложения, созданного с помощью IntelliJ.

Ответы [ 2 ]

0 голосов
/ 30 января 2019

В разумных пределах вы контролируете версию Kotlin, которая используется и, следовательно, какие функции доступны.

Если у вас есть проект Android Studio с поддержкой Kotlin, и вы смотрите на верхнем уровне build.gradleфайл, вы можете увидеть код, подобный следующему:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
  ext.kotlin_version = '1.3.20'
  repositories {
    google()
    jcenter()

  }
  dependencies {
    classpath 'com.android.tools.build:gradle:3.3.0'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
  }
}

allprojects {
  repositories {
    google()
    jcenter()

  }
}

task clean(type: Delete) {
  delete rootProject.buildDir
}

ext.kotlin_version = '1.3.20' управляет версией Kotlin, которую вы будете использовать для плагина Kotlin (через интерполированную строку в директиве classpath), и аналогично дляЗависимость времени выполнения Kotlin в файле build.gradle модуля.

Таким образом, проект с вышеуказанным кодом может использовать функции Kotlin / JVM, которые были поддержаны в Kotlin 1.3.20.

Зависимость времени выполнения, котораямы используем сегодня org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version.jdk7 означает, что среда выполнения не зависит от каких-либо компонентов Java 8+, которых не хватает в Android.

Однако для внесения изменений в будущих версиях Kotlin вам потребуется обновить версию Kotlin в своем проекте.Например, проект, использующий 1.2.71, может не иметь доступа ко всему синтаксису Kotlin 1.3.

0 голосов
/ 30 января 2019

Kotlin полностью поддерживается Android и Android Studio и даже рекламируется на веб-сайте Android:

Kotlin готов к производству для разработки приложений Android.

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...