Native v0.8 released

kotliner發表於2018-07-11

我們很高興地宣佈Kotlin/Native 0.8版本正式釋出,這個版本的重點如下:

  • 更安全的協程編寫方式
  • 擴充套件了標準庫功能
  • 更好地支援IOS開發

此外該版本還修復了大量的bug及最佳化了效能。

AppCode和CLion Kotlin/Native外掛已經更新至支援0.8版本,同時效能及可用性都有所改善。
二進位制包可以在下面這些連結下載:macOS, Linux, Windows
A Linux Snap package is also available.
GitHub正式版釋出頁面

更好的協程支援

在0.8版本之前,Kotlin/Native應用會將單例的狀態儲存到執行執行緒中,因此在不同的執行緒上的單例的狀態很可能並不同步。現在將凍結的概念延伸到單例中,我們將允許共享不可變的狀態。
例如以下程式碼

將讀取配置檔案並在之後返回配置的width屬性。Config檔案將會在每次執行時都讀取一次,對於所有執行緒及執行者可見。但是一旦完成,該物件將被凍結,並且不能再被修改(任何修改的動作都將丟擲錯誤InvalidMutabilityException)。
旨在讓Kotlin/Native提供更好的併發支援的另一個特性是原子值及引用。
例如,透過擴充套件上述示例,新增一個可編輯的程式圖示屬性,我們可以這樣編寫

請注意,這是原子性的操作,其圖示資料被儲存在一個凍結了的原子引用中。這保證了它的更新是原子性的,且其在所有客戶端中的狀態都是一致的。

庫的改進

隨著0.8標準庫(kotlin.*)的正式釋出,最終Kotlin./Native會採取expect/actual的方案來與其他平臺統一標準化,並且大部分(反射類及一些同步相關的操作)會與其他Kotlin規範匹配。此外,標準隨機數生成器及集合重排函式已經可以使用了,不再需要使用特定於平臺實現的API來獲取隨機數。
JetBrains還提供了其他重要的庫,如kotlinx.coroutines、kotlinx.serialization,以及針對Kotlin/Native正在進行實驗性支援的Ktor HTTP客戶端,意味著可以編寫一套讓ios app及android app共享的邏輯近似的REST API。

對iOS開發的改善

我們正努力讓Kotlin/Native成為ios開發的一個可用技術,所以在這個版本中,我們修復了一些導致無法釋出到AppStore的令人煩惱的問題,一個在32位ARM iOS上的框架初始化問題,因此Kotlin/Native能相容舊裝置。

讓我們盡情享受Kotlin!

相關文章