2017-02-19 66 views
4

我是Kotlin的忠實粉絲,希望將其與Codename One而不是Java一起使用。由於Kotlin能夠與Java無縫協作,因此我可以使用它來構建Codename One的應用程序?我可以在Codename One上使用Kotlin嗎?

+0

是的崗前處理器更難但是可行的,你可以,爲什麼不呢? –

+0

我不太確定。 Codename One不允許本地構建,除非您有企業支持。 Kotlin必須與構建過程綁定才能工作。有沒有辦法在他們需要使用的服務器上自定義構建過程? – Graham

+0

如果他們使用Gradle - 你可以使用Kotlin。它只是一個gradle插件+標準庫,而不是單獨的編譯器 –

回答

3

更新2017年7月:的科特林支持公共測試版現已推出:https://www.codenameone.com/blog/kotlin-support-public-beta.html

更新2017年6月:我們剛剛宣佈,我們將在今年年底做到這一點:https://www.codenameone.com/blog/kotlin-wora-ios-iphone-windows-android.html

原來的答覆以下僅供參考:

對此沒有官方支持。在RoboVM停產並提供幫助進行集成之後,我們聯繫了Kotlin團隊,但這並沒有帶來任何地方。如果有興趣團隊一起工作,我們會提供幫助。

這可能是你可以自己做的事情,例如史蒂夫漢娜寫了米拉支持(紅寶石的一個子集)之前,我們把他帶到我們的團隊:https://www.codenameone.com/search?q=mirah

您可以編輯我們的Ant腳本調用gradle這個腳本,將儀器向前發送它的編譯器之前的代碼。我不確定這將會是多麼困難,並且可能會「沒有進一步的努力」。

但是,可能有兩個潛在的問題:

  • 字節碼的創新使用,可能在某些情況下會失敗(例如iOS上的Windows UWP平移)。這是不太可能的,但我們只用javac進行測試

  • API的使用我們沒有 - 這是可能的。例如。在科特林編譯器可能隱含依靠Java SE API we don't support的部分在這種情況下,修復可能無論是在科特林或代號的一個或介於兩者之間用字節碼

+2

此外,Kotlin還有一個需要包含的運行時庫。包括這將需要明確的支持。而庫本身可能依賴於尚未被Codename One支持的JRE部分。當我添加Mirah支持時,我選擇了Mirah,因爲它是不需要自己的運行時庫的* only * JVM語言(不是Java)。 –