2017-02-19 2 views
4

Я большой поклонник Kotlin и хотел бы использовать его с Codename One вместо Java. Поскольку Kotlin беспрепятственно взаимодействует с Java, могу ли я использовать его для создания приложения с Codename One?Могу ли я использовать Kotlin с Codename One?

+0

Да, ты может, почему бы и нет? –

+0

Я не уверен в этом. Codename One не поддерживает локальные сборки, если у вас нет поддержки предприятия. Чтобы работать, Котлин должен быть связан с процессом сборки. Есть ли способ настроить процесс сборки на своих серверах, которые они требуют использовать? – Graham

+0

Если они используют Gradle - вы можете использовать Kotlin. Это просто плагин с градиентом + стандартная библиотека, а не отдельный компилятор –

ответ

3

Обновлено июля 2017: Открытый бета поддержки Котлин теперь доступен: https://www.codenameone.com/blog/kotlin-support-public-beta.html

Обновлено июня 2017: Мы только что объявили, мы сделаем это до конца года: https://www.codenameone.com/blog/kotlin-wora-ios-iphone-windows-android.html

Оригинальный ответ ниже для справки:

Официальной поддержки для этого нет. Мы связались с командой Kotlin некоторое время назад после того, как RoboVM был прекращен и предложил помочь в интеграции, но это никуда не привело. Если есть интерес к совместной работе со своей командой, мы поможем.

Это может быть что-то, что вы можете сделать сами, например. Стив Ханна написал поддержку Mirah (подмножество Ruby), прежде чем мы привели его в нашу команду: https://www.codenameone.com/search?q=mirah

Вы можете отредактировать наш скрипт Ant, чтобы вызвать скрипт градиента, который будет обрабатывать код перед отправкой его в компилятор. Я не уверен, как сильно это будет и может «просто работать» без каких-либо дополнительных усилий.

Тем не менее, может быть две проблемы:

  • Творческое использование байт-кода, что может произойти сбой в некоторых случаях (например, на прошивкой, Windows UWP перевод). Это маловероятно, но возможно, поскольку мы тестируем только с помощью javac

  • Использование API у нас отсутствует - это возможно. Например. компилятор Котлин может неявно полагаться на части Java SE API we don't support в этом случае исправление может быть сложнее, но выполнимо либо в Котлин или в Codename Один или где-то посередине с предварительно постпроцессора в байткод

+2

Кроме того, у Kotlin есть библиотека времени выполнения, которая должна быть включена. Включение этого потребует явной поддержки. И сама библиотека может зависеть от частей JRE, которые еще не поддерживаются Codename One. Когда я добавил поддержку Mirah, я выбрал Mirah, потому что это был язык * только * JVM (кроме Java), который не требовал собственной библиотеки времени исполнения. –