Kotlin 1.2:平臺(tái)之間共享代碼(譯文)

本文作者: youngxhui

本文鏈接: http://youngxhui.github.io/2017/12/02/Kotlin-1-2-平臺(tái)之間共享代碼/

版權(quán)聲明: 本博客所有文章除特別聲明外侣监,均采用 CC BY-NC-SA 3.0 許可協(xié)議鸭轮。轉(zhuǎn)載請(qǐng)注明出處!

前言

這是一個(gè)嘗試橄霉,之前沒(méi)有翻譯過(guò)任何技術(shù)文章窃爷,做一個(gè)嘗試,也算是學(xué)習(xí)姓蜂,盡管現(xiàn)在這個(gè)譯文在網(wǎng)上已經(jīng)是滿(mǎn)天飛了按厘。

原文地址Kotlin 1.2 Released: Sharing Code between Platforms

正文

今天,我們將要發(fā)布 Kotlin 1.2覆糟。這是一個(gè)重要的新版本和一個(gè)大的步伐在我們朝著使用 Kotlin 在現(xiàn)代應(yīng)用程序中的道路上刻剥。

在 Kotlin 1.1 中,我們正式的發(fā)布了 JavaScript 目標(biāo)滩字,允許你去編譯 Kotlin 代碼成為 JS 并且運(yùn)行在瀏覽器上造虏。在 Kotlin 1.2 中,我們將要添加 JVM 和 JavaScript 的代碼重用成為可能÷蠊浚現(xiàn)在你可以寫(xiě)一次應(yīng)用程序的邏輯代碼漓藕,而在你的應(yīng)用程序中所有層重用它——后端,瀏覽器前端和Android移動(dòng)應(yīng)用挟裂。我們也會(huì)在庫(kù)上進(jìn)行工作享钞,幫助你重用更多的代碼。比如跨平臺(tái)庫(kù)诀蓉。

image

Kotlin 1.2 是已經(jīng)綁定在 IntelliJ IDEA 2017.3中栗竖,將會(huì)在本周發(fā)布暑脆。如果你正在使用的是 Android Studio 或者 一個(gè)舊版本的 Intellij IDEA,你可以從 Tools | Kotlin | Configure Kotlin Plugin 更新框中安裝新的版本狐肢。

這個(gè)版本包括了大量外部貢獻(xiàn)者的工作添吗,并且我們想感謝向我們反饋,提交問(wèn)題和尤其是提交了PR的每個(gè)人份名。

多平臺(tái)項(xiàng)目

一個(gè)多平臺(tái)項(xiàng)目允許你編譯在你的應(yīng)用程序的多層 —— 后端碟联,前端和Android應(yīng)用 —— 在相同的代碼基礎(chǔ)上。這樣的一個(gè)項(xiàng)目包含了 相同模塊,與平臺(tái)無(wú)關(guān)以及特定平臺(tái)的模塊僵腺,包含了特定平臺(tái)的代碼( JVM 或者 JS )和使用了特定平臺(tái)的庫(kù)鲤孵。從通用模塊調(diào)用特定平臺(tái)的代碼,你可以指定預(yù)期的聲明——所有平臺(tái)特定模塊需要提供實(shí)際實(shí)現(xiàn)聲明辰如。

image

有關(guān)該功能的更多信息普监,請(qǐng)查看這個(gè)文檔

如前所述,我們也在編寫(xiě)一組公共庫(kù)允許你將更多的邏輯代碼轉(zhuǎn)移到公共代碼:

  • kotlin.test,包括開(kāi)箱即用的Kotlin1.2丧没,讓你寫(xiě)一次測(cè)試并且運(yùn)行在JVM 和 JS 下鹰椒;

  • kotlin.html支持 同構(gòu)渲染 — 用相同的代碼渲染 HTML 在后端和在前端;

  • kotlinx.serialization允許你輕松的對(duì) Kotlin對(duì)象編組在你的應(yīng)用程序的不同的層之間呕童,使用 JSON 或者 ProtoBuf 進(jìn)行序列化格式化漆际。

請(qǐng)注意,多平臺(tái)項(xiàng)目目前是一個(gè)實(shí)驗(yàn)性功能夺饲;這意味著這個(gè)功能是準(zhǔn)備使用奸汇,但是我們也許需要去改變?cè)O(shè)計(jì)在之后的版本(并且如果我們這樣做,我們將會(huì)提供代碼遷移工具)往声。

編譯性能

在1.2的發(fā)展過(guò)程中擂找,我們花費(fèi)了很多精力來(lái)使編譯過(guò)程更快。我們已經(jīng)比Kotlin1.1提高了大約 25% 并且我們看見(jiàn)進(jìn)一步改進(jìn)的巨大潛力浩销,它將會(huì)在發(fā)布在 1.2.x的更新中贯涎。

下方的圖片展示了兩個(gè)用Kotlin的大型JetBrains項(xiàng)目不同的編譯時(shí)間:


image

其他語(yǔ)言和庫(kù)的改進(jìn)

我們也做了許多小的改進(jìn)在語(yǔ)言和標(biāo)準(zhǔn)庫(kù):

  • 更簡(jiǎn)潔的語(yǔ)法 用于將多個(gè)參數(shù)傳遞給注解(數(shù)組 文字(literals)) 不知如何翻譯literals 譯者注

  • 支持 lateinit 修飾在全局屬性和局部屬性,以及檢查一個(gè) lateinit 是否被初始化慢洋;

  • 更加聰明的智能推導(dǎo)改進(jìn)的類(lèi)型推斷在一些情況下塘雳。

  • 標(biāo)準(zhǔn)庫(kù)和 Java9 中引入的分包限制的兼容;

  • 新的 kotlin.math包在標(biāo)準(zhǔn)庫(kù)中普筹;

  • 新的標(biāo)準(zhǔn)庫(kù)函數(shù)在處理序列和集合败明,包含了一組函數(shù) 為了拆分集合和序列為可能重疊的固定大小的組。

更多的信息和代碼示例太防,請(qǐng)看 Kotlin1.2中新功能

世界各地的Kotlin

自從今年3月發(fā)布的Kotlin1.1以來(lái)妻顶,Kotlin已經(jīng)取得了巨大的收獲在世界各地。這是 KotlinConf 的高潮,我們第一次全球會(huì)議讳嘱,有著1200參會(huì)者在11月2幔嗦,3日的舊金山。我們已經(jīng)記錄了所有的會(huì)談沥潭,并且視頻已經(jīng)可以看崭添。

Kotlin現(xiàn)在是一個(gè)Android開(kāi)發(fā)官方支持的語(yǔ)言,開(kāi)箱即用的Android Studio 3.0叛氨,已經(jīng)谷歌發(fā)布了官方示例風(fēng)格指南。結(jié)果是棘伴,在Android Studio中超過(guò)了 17% 的項(xiàng)目使用 Kotlin寞埠,包含來(lái)自很多熱門(mén)的創(chuàng)業(yè)公司以及財(cái)富500強(qiáng)公司的許多應(yīng)用程序。

image

在服務(wù)器端焊夸,Spring 5.0 已經(jīng)發(fā)布仁连,有著許多Kotlin支持的功能,而且 vert.x 已經(jīng)支持Kotlin在3.4.0后。當(dāng)然阱穗,Gradle支持開(kāi)箱即用Kotlin DSL饭冬,而且 Gradle Kotlin DSL 項(xiàng)目正在迅速的接近1.0版本。

在Github上揪阶,開(kāi)源的Kotlin代碼行數(shù)已經(jīng)超過(guò)了2.5億昌抠。而在 Stack Overflow,Kotlin是增長(zhǎng)最快的語(yǔ)言之一和最不反感的語(yǔ)言之一

image

圍繞Kotlin的社區(qū)建立同樣也是令人吃驚的鲁僚,已經(jīng)有超過(guò)100用戶(hù)組在全世界炊苫,我們很難追蹤到所有的人 —— 但是針對(duì)我們所知道的,這個(gè)會(huì)談地圖給了你一個(gè)很好的想法冰沙,kotlin是多么廣泛的使用侨艾。

image

對(duì)于剛剛學(xué)習(xí)Kotlin的人來(lái)說(shuō),書(shū)籍的數(shù)量是不斷的增長(zhǎng)(包含我們自己的 "Kotlin in Action",現(xiàn)在有英文拓挥,俄語(yǔ)唠梨,日語(yǔ)中文葡萄牙語(yǔ)),線(xiàn)上課程侥啤,教程和其他資源

團(tuán)隊(duì)見(jiàn)面:網(wǎng)絡(luò)研討會(huì)和Reddit AMA

分享你更多的信息關(guān)于新版本当叭,我們計(jì)劃組織一個(gè)網(wǎng)絡(luò)研討會(huì)關(guān)于Kotlin1.2多平臺(tái)項(xiàng)目在12月7日,18:00 CET愿棋。請(qǐng)注冊(cè)科展;空間有限。

Kotlin團(tuán)隊(duì)也將會(huì)舉辦 AMA(Ask Me Anything) 在 Kotlin Reddit 上在12月5號(hào)糠雨。我們將開(kāi)始中午開(kāi)始(CET),并且我們接下來(lái)的24小時(shí)和你在一起才睹。

如何升級(jí)

一如既往,你可以在線(xiàn)嘗試Kotlintry.kotlinlang.org

  • 在 Maven,Gradle和npm中:使用1.2.0作為編譯器和標(biāo)準(zhǔn)庫(kù)的版本號(hào)琅攘】迓看這里

  • IntelliJ IDEA:2017.3已經(jīng)和Kotlin1.2綁定,在早期版本中安裝或者升級(jí) Kotlin 插件到1.2.0版本坞琴。

  • Android Studio:安裝或者升級(jí)插件通過(guò) Plugin Manager哨查。

  • Eclips:安裝插件在 MarketPlace

  • 命令行編譯可以從Github發(fā)布頁(yè)面上下載剧辐。

兼容性 在Kotlin1.2的語(yǔ)言和標(biāo)準(zhǔn)庫(kù)是向后兼容的(模塊錯(cuò)誤):如果一些編譯和運(yùn)行在1.0或者1.1寒亥,將會(huì)繼續(xù)在1.2上運(yùn)行。幫助逐漸共享的打團(tuán)隊(duì)荧关,我們將提供不使用新特性的編譯開(kāi)關(guān)溉奕。這里是一個(gè)包含可能的缺陷文檔

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市忍啤,隨后出現(xiàn)的幾起案子加勤,更是在濱河造成了極大的恐慌,老刑警劉巖同波,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鳄梅,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡未檩,警方通過(guò)查閱死者的電腦和手機(jī)戴尸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)讹挎,“玉大人校赤,你說(shuō)我怎么就攤上這事⊥怖#” “怎么了马篮?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)怜奖。 經(jīng)常有香客問(wèn)我浑测,道長(zhǎng),這世上最難降的妖魔是什么歪玲? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任迁央,我火速辦了婚禮,結(jié)果婚禮上滥崩,老公的妹妹穿的比我還像新娘岖圈。我一直安慰自己,他們只是感情好钙皮,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布蜂科。 她就那樣靜靜地躺著顽决,像睡著了一般。 火紅的嫁衣襯著肌膚如雪导匣。 梳的紋絲不亂的頭發(fā)上才菠,一...
    開(kāi)封第一講書(shū)人閱讀 51,190評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音贡定,去河邊找鬼赋访。 笑死,一個(gè)胖子當(dāng)著我的面吹牛缓待,可吹牛的內(nèi)容都是我干的蚓耽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼旋炒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼田晚!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起国葬,我...
    開(kāi)封第一講書(shū)人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎芹壕,沒(méi)想到半個(gè)月后汇四,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡踢涌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年通孽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片睁壁。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡背苦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出潘明,到底是詐尸還是另有隱情行剂,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布钳降,位于F島的核電站厚宰,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏遂填。R本人自食惡果不足惜铲觉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望吓坚。 院中可真熱鬧,春花似錦、人聲如沸海铆。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至况褪,卻和暖如春撕贞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背测垛。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工捏膨, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人食侮。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓号涯,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親锯七。 傳聞我的和親對(duì)象是個(gè)殘疾皇子链快,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354