Kotlin 新版來(lái)了,支持跨平臺(tái)希坚!

谷歌在今年的 I/O 大會(huì)上宣布边苹,Kotlin 編程語(yǔ)言現(xiàn)在是 Android 應(yīng)用程序開(kāi)發(fā)人員的首選語(yǔ)言(谷歌宣布 Kotlin 成為安卓開(kāi)發(fā)首選)。 還有一個(gè)好消息, Kotlin 1.3.30 正式發(fā)布裁僧,做了對(duì)apple的支持个束。離上次發(fā)布1.3 時(shí)間過(guò)去半年。本次的該版本主要覆蓋 1.3 版本的問(wèn)題修復(fù)和工具完善聊疲。版本更新的主要范圍為 Kotlin/Native茬底、KAPT 的性能優(yōu)化以及對(duì) IntelliJ IDEA 的支持優(yōu)化。 我們來(lái)回顧下 1.3的 新特性 穩(wěn)定的協(xié)程 Kotlin/Native Beta 多平臺(tái)項(xiàng)目和工具 用于 Kotlin/Native 和多平臺(tái)的工具 Ktor 1.0 Beta

本次版本帶來(lái)的牛逼特性主要對(duì)1.3完善获洲,并且做了工具上的支持阱表。

KAPT 支持注解處理器增量編譯

KAPT 已經(jīng)支持注解處理器增量編譯,該特性仍處灰度實(shí)驗(yàn)階段贡珊,你可以通過(guò)在gradle.properties中添加以下配置來(lái)啟用它: kapt.incremental.apt=true 需要指出的是最爬,在現(xiàn)有版本中引入任何非增量編譯的注解處理器或者依賴的變化(截止目前,包括內(nèi)部聲明的修改)都會(huì)導(dǎo)致該模塊的注解處理過(guò)程退化為非增量模式门岔。 KAPT: 其他提升
引入了兩個(gè)配置來(lái)提升編譯性能爱致。其一是使用 Gradle workers:
這個(gè)版本也對(duì)它做了優(yōu)化。另一個(gè)是 1.3.20 引入的寒随,開(kāi)啟 Compile Avoidance糠悯,就是說(shuō)依賴如果只有方法體發(fā)生變化,那么就跳過(guò)注解處理妻往。只有在所有的注解處理器都顯式的在注解處理的 classpath 聲明的情況下逢防,Compile Avoidance 才會(huì)生效。

無(wú)符號(hào)數(shù)組的擴(kuò)展方法

從 1.3 開(kāi)始我們可以在開(kāi)發(fā)模式下使用無(wú)符號(hào)數(shù)值類型蒲讯。這個(gè)版本我們對(duì)無(wú)符號(hào)類型以及其數(shù)組做了更多的支持:
需要注意的是忘朝,我們之前就可以在無(wú)符號(hào)數(shù)組上使用函數(shù)式操作例如 filter 和 map ,這是因?yàn)闊o(wú)符號(hào)類型的數(shù)組實(shí)際上是實(shí)現(xiàn)了 Collection 接口的判帮,例如 UIntArray 實(shí)現(xiàn)了 Collection 接口局嘁。 不過(guò)這樣就涉及到了性能問(wèn)題,因?yàn)樵?UIntArray 被當(dāng)作 Collection的實(shí)例使用時(shí)會(huì)額外 創(chuàng)建 一個(gè)對(duì)象出來(lái)』耷剑現(xiàn)在好了悦昵,所有新增的擴(kuò)展函數(shù)都使用無(wú)符號(hào)數(shù)組類型作為 receiver 以消除額外的對(duì)象創(chuàng)建開(kāi)銷。因此不用擔(dān)心晌畅,現(xiàn)在無(wú)符號(hào)數(shù)組和常規(guī)數(shù)值類型的數(shù)組從使用的角度來(lái)講沒(méi)有什么兩樣但指,不會(huì)有任何額外的開(kāi)銷了。

Kotlin/Native

Kotlin/Native 支持的目標(biāo)平臺(tái)有: Windows 32 位(mingw_x86)。除此之外棋凳,Windows 和 macOS 用戶也可以混合編譯 Kotlin/Native 程序到 Linux x86-64拦坠、arm32 以及 Android 和 Raspberry PI 環(huán)境上。 Kotlin/Native 對(duì) Apple 平臺(tái)的支持
對(duì) Apple 平臺(tái)的支持也有提升剩岳。iOS 上未處理的異常信息會(huì)被輸出到 iOS 崩潰日志當(dāng)中贞滨,iOS 和 macOS 上的異常堆棧(調(diào)試模式)也會(huì)包含符號(hào)信息。 現(xiàn)在也可以使用命令行參數(shù) -Xstatic-framework 或者以下 Gradle 腳本來(lái)構(gòu)建靜態(tài)庫(kù): 需要注意的一點(diǎn)拍棕,現(xiàn)階段官方表示拉取和編譯這些依賴仍然需要一個(gè) Xcode 工程晓铆。

Kotlin/Native IDE 支持

接下來(lái)我們同步下我們的 IDE 對(duì) Kotlin/Native 的支持工作的進(jìn)展。 除 IntelliJ IDEA 之外绰播,我們也將發(fā)布 Kotlin/Native 插件支持 CLion 2019.1骄噪、AppCode 2019.1。C interop 描述文件 (.def) 后續(xù)也會(huì)得到所有 IDE 的支持蠢箩,盡管目前代碼補(bǔ)全功能還沒(méi)有上線链蕊。 對(duì)于 CLion and AppCode, 我們也支持了異常堆棧跳轉(zhuǎn)源碼的支持。 ## IntelliJ IDEA 支持
調(diào)試功能的提升
當(dāng)你在調(diào)試協(xié)程代碼時(shí)忙芒,你可以看到有一個(gè)單獨(dú)的異步堆棧 “Async stack trace” 顯示掛起時(shí)的變量示弓。 當(dāng)程序在 suspend 函數(shù)或者 Lambda(例子的第 13行)中的斷點(diǎn)停止時(shí), “Async stack trace” 顯示了變量在上一次掛起時(shí)的狀態(tài)(12行)呵萨。你可以瀏覽 suspend 函數(shù)在當(dāng)前協(xié)程中從上一個(gè)掛起點(diǎn)的全部的堆棧 (第12奏属、4行)并確認(rèn)變量的值: 這會(huì)幫助你更方便的理解當(dāng)前協(xié)程的運(yùn)行狀態(tài)。 在調(diào)試 Kotlin 代碼時(shí)潮峦,可以選擇 “Kotlin” 模式來(lái)查看變量囱皿。 Eclipse IDE 插件更新
Eclipse 插件 0.8.14 主要包含以下更新:Kotlin 1.3.30 編譯器支持, 大量的問(wèn)題修復(fù)和整體穩(wěn)定性的提升。該版本也增加了對(duì) Gradle 工程的實(shí)驗(yàn)性質(zhì)的支持忱嘹。你可以用 Eclipse Buildship 導(dǎo)入工程嘱腥,你會(huì)發(fā)現(xiàn) Kotlin 會(huì)被正常配置。

指定 JVM 版本

如果你的程序運(yùn)行在 JVM 9, 10, 11, 或者 12 等版本下拘悦,你可以設(shè)置 jvmTarget到對(duì)應(yīng)的版本了齿兔。這個(gè)設(shè)置會(huì)影響編譯的 class 文件的字節(jié)碼版本,但它們不是后向兼容的础米。相比之下分苇,新目標(biāo)版本不會(huì)有任何字節(jié)碼優(yōu)化也不會(huì)有任何新特性,期待后續(xù)Kotlin繼續(xù)更新屁桑。 寫在最后 無(wú)論 Google 對(duì)Kotlin 賦予什么期望医寿,總而言之,Google提出新的系統(tǒng)和跨平臺(tái)方案蘑斧,意味著Andorid 生態(tài)已經(jīng)向不同領(lǐng)域發(fā)力靖秩,最近微軟的反擊也預(yù)示者须眷,google的跨端計(jì)劃已經(jīng)對(duì)微軟形成了火力壓制,坐等大安卓起飛沟突,移動(dòng)開(kāi)發(fā)下一春不遠(yuǎn)了花颗。 于此同時(shí)微軟也在大力發(fā)展自己的.net語(yǔ)言的跨平臺(tái),并且也在支持 Pyhon開(kāi)發(fā)語(yǔ)言的各種工具事扭,其實(shí)是在對(duì) Flutter和Kotlin 提出了挑戰(zhàn)捎稚。 大家如何看待 Kotlin 的未來(lái)乐横? 歡迎交流~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末求橄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子葡公,更是在濱河造成了極大的恐慌罐农,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件催什,死亡現(xiàn)場(chǎng)離奇詭異涵亏,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蒲凶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門气筋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人旋圆,你說(shuō)我怎么就攤上這事宠默。” “怎么了灵巧?”我有些...
    開(kāi)封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵搀矫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我刻肄,道長(zhǎng)瓤球,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任敏弃,我火速辦了婚禮卦羡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘麦到。我一直安慰自己绿饵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布隅要。 她就那樣靜靜地躺著蝴罪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪步清。 梳的紋絲不亂的頭發(fā)上要门,一...
    開(kāi)封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天虏肾,我揣著相機(jī)與錄音,去河邊找鬼欢搜。 笑死封豪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的炒瘟。 我是一名探鬼主播吹埠,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼疮装!你這毒婦竟也來(lái)了缘琅?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤廓推,失蹤者是張志新(化名)和其女友劉穎刷袍,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體樊展,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡呻纹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了专缠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雷酪。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖涝婉,靈堂內(nèi)的尸體忽然破棺而出哥力,到底是詐尸還是另有隱情,我是刑警寧澤嘁圈,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布省骂,位于F島的核電站,受9級(jí)特大地震影響最住,放射性物質(zhì)發(fā)生泄漏钞澳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一涨缚、第九天 我趴在偏房一處隱蔽的房頂上張望轧粟。 院中可真熱鬧,春花似錦脓魏、人聲如沸兰吟。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)混蔼。三九已至,卻和暖如春珊燎,著一層夾襖步出監(jiān)牢的瞬間惭嚣,已是汗流浹背遵湖。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晚吞,地道東北人延旧。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像槽地,于是被迫代替她去往敵國(guó)和親迁沫。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容