主題演講當中提出的第一項重要公告,正是 Kotlin 1.2 候選發行版(簡稱 RC)的公布。此版本中囊括一系列新功能,包括對多個多平臺項目的實驗性支持、允許開發者在針對 JVM 與 JavaScript 的模塊之間進行代碼共享,同時涉及多項語言改進——包括支持在注釋中使用數組字面量。
關於 1.2 版本當中的更多新鮮內容,請參閱 Kotlin 1.2 Beta 版本發布博文:
https://blog.jetbrains.com/kotlin/2017/09/kotlin-1-2-beta-is-out/
編譯器現在不再適用於 Kotlin 1.2 較早版本所編譯的二進位文件,大家需要使用此版本對其進行重新編譯。當然,使用 Kotlin 1.0.x 或 1.1.x 版本編譯的代碼能夠與此版本的編譯器完全兼容。
儘管協程機制仍然屬於一項實驗性功能,但我們希望在這裡澄清所謂「實驗性」狀態的確切含義。協程已經完成生產準備工作,我們也正在利用其處理開發任務 ,而且我們在使用當中沒有發現任何重大問題。之所以繼續將其保持在實驗性狀態,是因為這樣我們才能對其進行設計迭代。請注意,雖然我們對 API 進行一變更,但當前 API 即使在被標記為「已棄用」後仍將受到支持。我們也將提供必要的遷移工具。根據目前的計劃,在 Kotlin 1.3 中協程功能將正式告別實驗狀態。
現在我們需要大家的熱情幫助。儘管我們已經在 JetBrains 內部及其它團隊當中對這一版本進行了大量測試,但真實世界的使用方式要比我們所能涵蓋的廣泛得多。因此,請在您自己的項目當中嘗試 Kotlin 1.2 RC,並在遇到問題時將相關情況反饋給我們。您的幫助對於保證最終版本的順利誕生至關重要。另外,也請邀請您的親朋好友一同參與這次測試,感謝。
我們公布的下一條重大消息是利用 Kotlin/Native 支持 iOS 開發——而這也將成為 Kotlin Native 0.4 中的組成部分。雖然這項支持尚處於早期測試階段,但其已經真實存在,並標誌著我們在推動 Kotlin 走向全平臺開發方面邁出了重要的一步。
為了展示這種可能性,我們編寫了兩款應用,並將其發布在了蘋果 App Store 當中:
1.Spinner 應用 (GitHub) 是一款利用 OpenGL 開發而成的簡單遊戲。其可同時運行在 iOS 及 Android 平臺之上(Play Store 連結),且兩個版本中的大部分代碼彼此共享。其 iOS 版本擁有幾項額外功能,例如遊戲中心集成等。
Spinner app:
https://itunes.apple.com/us/app/kotlinconf-spinner/id1291282375?mt=8
https://play.google.com/store/apps/details?id=com.jetbrains.konan_activity2
GitHub:
https://github.com/jetbrains/kotlinconf-spinner
2.KotlinConf 應用 (GitHub) 負責向大家展示本次會議的時間安排,同時具備一套利用 UIKit 打造的全原生 iOS UI。
KotlinConf app:
https://itunes.apple.com/us/app/kotlinconf/id1299196584?mt=8
GitHub:
https://github.com/jetbrains/kotlinconf-app
這兩款示例應用皆為開源成果,您可以利用其作為模板,僅利用 Kotlin 構建自己的跨平臺移動應用。
當然,大家在實際生產當中也需要 IDE 的助力。從今天開始,Kotlin/Native 也將迎來 IDE 支持能力。
我們現在正在發布一款 Kotlin/Native plugin for CLion(我們的 C/C++ IDE)的原始預覽版本。該插件支持利用 CMake 作為構建系統。其中包含來自 Kotlin IntelliJ IDEA 插件中的全部代碼編輯功能集,同時初步支持項目創建、測試與調試等操作。
要體驗此插件,請安裝 CLion 2017.3 EAP 並在 JetBrains 插件列表中搜索「Kotlin/Native」。
在未來幾天內,我們還將發布一篇單獨的博文,其中將涵蓋更多與此插件及其功能相關的細節信息。當然,這款 CLion 插件還只是我們 Kotlin IDE 支持道路上的第一步 ; 請繼續關註明年陸續公開的更多後續公告!
伺服器端開發亦是我們多平臺路線圖中的一大關鍵性部分。現在,我們正式公布了自己的相關成果:Ktor 的 0.9 版本。這是一套非常出色的、基於異步協程的 Web 框架,完全由 Kotlin 打造而成。
Ktor 目前已經在眾多項目當中得到使用,而我們確定其將成為構建高性能 Web 應用程式的堅實基礎。感興趣的朋友可以點擊此處查看 ktor.io 上的快速上手指南,請親自體驗並與我們分享您的感受,從而幫助我們為 1.0 版本做好更加充分的準備。
Ktor:
http://ktor.io/
快速上手指南:
http://ktor.io/quickstart/index.html
5 用 React 與 Kotlin 創建現代 Web 應用在利用 Kotlin 進行前端開發方面,今天公布的重量級消息是面向 React.js 的官方 Kotlin 打包工具的正式發布。此外,create-react-kotlin-app 也值得一提,這是一套用於利用 React.js 在 Kotlin 當中創建現代 Web 應用程式的工具集。利用 create-react-kotlin-app,您可以在無需費心於項目設置與配置構建工作的前提下,專注於快速投身客戶端應用開發工作,同時享受到靜態類型語言優勢以及由 JavaScript 生態系統帶來的強大資源儲備。
要開始使用,請首先運行 npm install -g create-react-kotlin-app,而後參閱 入門指南。
React.js:
https://reactjs.org/
create-react-kotlin-app:
https://www.npmjs.com/package/create-react-kotlin-app
為了展示我們如何將多平臺發展路線圖中的各項成果整合在一起,我們利用自身技術堆棧的全部最新版本構建起一款應用:KotlinConf。其由以下組件共同構成:
其中後端、瀏覽器應用以及 Android 應用之間的共享代碼採用 Kotlin 多平臺項目技術。在異步編程方面,所有組件皆採用協程機制。為了實現伺服器與客戶端之間的數據交換,我們還使用到了全新的 kotlinx.serialization 庫。
大家會發現這款應用的原始碼中蘊藏著巨大的寶藏,您完全可以根據需求將其引入自己的工作項目當中。
隨著 Kotlin 影響力的持續擴大,越來越多的朋友有意學習這門語言。為了簡化學習過程,我們發布了 EduTools 插件的全新版本,旨在幫助大家通過您最熟悉的 IDE 經由交互式實踐方式學習 Kotlin。新版本增加了對 Android Studio 的支持(此前只支持 IntelliJ IDEA),同時包含可供用戶自行構建課程的新 UI。
至於 Kotlin 語言的未來發展方向,我們目前的主要目標是在 Kotlin 所支持的各平臺之間實現效果更好且更為廣泛的代碼復用效果。我們計劃擴展全部平臺上的可用庫資源集合,同時利用同一 API 涵蓋 I/O、網絡、序列化以及日期處理等因素。
在編譯器方面,我們對 1.3 版本的主要關注重點仍然放在內部變更層面——而非外部可見的語言特性。內部調整能夠提升性能、改進類型推斷、為所有目標平臺生成更為高效的代碼,同時進一步提升 IDE 插件的響應能力。我們希望未來能夠發布更多卓越的新型語言特性使後續發行版更上一層樓,但目前我們還無法就此作出任何實質性承諾。希望大家享受這段 Kotlin 探索之旅!
本文翻譯已獲授權,原文連結見:
https://blog.jetbrains.com/kotlin/2017/11/kotlinconf-keynote-recap/
本文首發於 InfoQ 垂直公眾號 移動開發前線,ID:bornmobile