Kotlin要支持iOS開發和Web開發了,這是要全棧?

2022-01-09 InfoQ
KotlinConf 作為第一屆 Kotlin 專題會議日前已正式開幕,而來自世界各的約 1200 名與會者齊聚舊金山,這一幕相信給大家留下了深刻印象。在會議的主題演講當中,Kotlin 首席設計師 Andrey Breslav 公布了一系列與 Kotlin 緊密相關的重大發展成果,而我們將在這裡與各位分享這些激動人心的第一手資訊。

主題演講當中提出的第一項重要公告,正是 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

相關焦點

  • Kotlin 一統天下?Kotlin/Native 開始支持 iOS 和 Web 開發
    iOS 應用和 Web 應用開發。Kotlin/Native 對 iOS 開發的支持另外一個重大消息就是 Kotlin/Native 已支持用於開發 iOS 應用,這也將是 Kotlin/Native 0.4 的特性之一。雖然對 iOS 開發的支持仍處於早期階段,但確實已經實現了,這是在所有平臺上使用 Kotlin 進行開發的重要一步。
  • Kotlin 統一移動開發?已經開始支持 iOS 和 Web 開發
    iOS 應用和 Web 應用開發。Kotlin/Native 對 iOS 開發的支持另外一個重大消息就是 Kotlin/Native 已支持用於開發 iOS 應用,這也將是 Kotlin/Native 0.4 的特性之一。雖然對 iOS 開發的支持仍處於早期階段,但確實已經實現了,這是在所有平臺上使用 Kotlin 進行開發的重要一步。
  • 你學習的 Kotlin,現在可以開發 iOS 了!來~先睹為快!
    Java 代碼想在不同平臺運行,還需要依賴各種 JVM 虛擬機,而 Kotlin/Native 不需要,它直接編譯生成的就是對應平臺上可執行的二進位文件。從文檔上看 Kotlin/Native 目前支持的系統平臺有:Windows (x86_64 only at the moment)Linux (x86_64, arm32, MIPS, MIPS little endian)MacOS (x86_64)iOS (arm64 only)Android (arm32 and
  • 開發 iOS 應用,Kotlin Native 是否夠格?
    iOS和Android平臺都非常複雜,開發者要在某一個平臺上成為專家需要數年的時間。掌握每個平臺需要懂得兩種官方支持的程式語言、硬體知識、平臺SDK和各種各樣的支持庫。希望同時支持iOS和Android應用程式的組織和公司必須至少要維持兩個開發團隊,因為同時擁有兩個平臺的豐富經驗的開發人員是非常罕見的。
  • 2019 Web開發技術指南和趨勢(附 Youtube 截圖)|【全棧篇】
    ░ 全棧篇
  • 為什麼2017年Web前端開發工程師薪資越來越高?
    、代碼質量、產品標準;6、調節Web應用程式的樣式,包括間距、字體、標題、圖標、布局等等;7、根據不同解析度、橫屏豎屏等,調節Web應用程式的樣式;8、標記 Web 應用程式,使之語義化,SEO 友好;9、通過API獲取內容要考慮友好性、電池消耗性、設備和客戶端的特性;10、開發客戶端要考慮動畫的流暢、延遲加載、交互、應用工作流程,大多數時間用來考慮漸進增強和向後兼容的標準
  • 如何 60 分鐘交付小程序 + Web|現場開發
    我會演示如何基於雲開發 CloudBase 平臺,開發一個包含小程序 + Web 網站 + Flutter 移動端 + 接口層 + 管理後臺的全棧項目,讓大家對雲開發 CloudBase 平臺的能力有一個直觀的了解和認識。
  • 西安app控制類軟體開發,安卓APP和蘋果iosAPP軟體開發公司
    現在隨著手機智能化的不斷普及,絕大多數人用的手機都是智慧型手機,現在市面上比較多的智慧型手機是安卓和ios的,這兩個作業系統在本質上有很大的區別,不論是開發還是維護都是要分開來說的,那麼iops平臺開發的APP和安卓平臺開發的APP究竟都有哪些區別呢?
  • 企業開發app要注意哪些關鍵問題,西安android app軟體開發
    app產品,那麼開發一個app要注意哪些問題呢?要開發一款app,首先要確定是就是開發方式,小編和大家說的開發方式不是技術上的開發方式,現在開發app要麼是自己招聘技術來開發,要麼就是找app外包公司來開發,大多數企業都是沒有自己的開發團隊的,所以更偏向於找外包公司來開發自己的app。
  • JAVA全棧就是你什麼都要懂!
    對於一個全棧java開發工程師,必須要學習前端好吧!我們要求是從前端到後天自己就能夠獨立開發完成!JavaScript與java是沒有半毛錢關係的,不要問為什麼要學,反正學就對了!這個是java的基礎知識點,必須學透,以後出去面試基本上都是考基礎的知識點。基礎打牢固不至於後面的框架部分很懵逼!不用了說了,最常見的那三個資料庫,增刪改查,多去練習SQL語句吧,複雜的連接表示有難度的。必須拿下!!你想要薪資高第六階段必須學。
  • 分享一個 Kotlin 學習方式
    2018 Google 開發者大會於今明兩天在上海舉辦,想必不少開發者從四面八方都趕赴上海參會,畢竟 Google 爸爸搞的,那還是相當有價值和含金量的。非常不錯的 From Java to Kotlin:https://fabiomsr.github.io/from-java-to-kotlin/另外,還有我自己在 GitHub 上開源的 AiYaGirl,目前也已經寫出了 Java 版本和 Kotlin 版本,可謂學習 Kotlin 的良藥。
  • 聊聊後端Web開發框架(Python)的簡單使用
    官網:https://flask.palletsprojects.com/en/2.0.x/  from flask import Flask# 指定 Flask 名字為文件名app = Flask(__name__)@app.route("/")def hello_world(): return
  • 華為昇騰計算業務部張迪煊:全棧全場景開發平臺可彌補AI人才稀缺問題
    透過其數十年學術發展,答案無疑是的;AI具備多用性,可以和各行各業結合,並產生溢出價值,符合理察等學者對GPT的定義。然而,AI的運作需要三個不可或缺的要素:數據、算法和算力。目前,我們的網絡帶寬能容納海量數據、有前沿數據科學的算法支持,但當算力不足時,一切應用都只是空中樓閣。
  • 漫極客 CTO 李焱:大前端之路 —— 如何用 Web 技術一統三端開發
    公司目前業務主要包括在線 IT 教育、IT 諮詢,以及企業定製開發包括 Web 、APP 、微信公眾號、小程序、數據分析和可視化等。此外,我們目前在準備開發一個深度增強學習和遊戲相結合的項目。目前的瀏覽器支持情況也是十分好的,包括最新的 iOS 11 ,下圖是 WebRTC 的瀏覽器支持情況。
  • Adobe 使用 AI 識別 PS 「照騙」;Java 要被 kotlin 打敗了?
    不過Adobe的方法也有局限性,因為他們目前只能靠現有的大量樣本訓練來獲得較高的成功率,對於那些陰影和反射幾何失真識別學習的效果不是很好。在AI都能幫忙P圖的時代,用來幫助人類分辨哪些才是真實影像的AI技術自然也應運而生,畢竟解鈴還須繫鈴人啊。1、2018 年技能提升報告:Java 要被 kotlin 打敗了?
  • 北京哪裡有嵌入式開發培訓班?嵌入式開發培訓哪家好?優質嵌入式開發培訓機構推薦
    收錄於話題 #嵌入式開發 現在越來越多的人會想要學習嵌入式,於是就會去找一些機構,但是北京嵌入式開發培訓行業機構眾多,
  • 淺談 Webhook 開發與實踐(直播回放 + PPT)
    講師簡介周楊,目前就職於青雲科技公司容器研發部,負責 KubeSphere 存儲模塊的功能開發以及相關 CSI
  • 【技術教程】】Zybo全棧開發入門教程(基於Linux嵌入式系統)連載一
    ,Zybo上集成了豐富的多媒體外設接口,強大的Z7010晶片支持完成的系統設計,同時五個Pmod接口提供了豐富的擴展空間,想必很多人都聽說過zedboard的大名,其實可以說Zybo是mini-Zedboard。
  • 2021年比較適合用於Web開發的7種程式語言
    Python 以其許多面向 web 開發的框架而聞名,這些框架可以幫助開發人員創建功能性應用程式。最受歡迎的是 Django、Pyramid、Bottle、Flask、CherryPy、WebApp2和TurboGears。Django 比其他 Python 框架使用得更為頻繁,因為它具有讓我們在構建 Web 應用程式更快、代碼更少的工具包。
  • 【如何快速的開發一個完整的iOS直播app】
    解釋性語言執行和編譯語言執行的區別:腳本語言:屬於解析語言,必須通過解釋器解析,將其一條條的翻譯成機器可識別的指令,並按程序順序執行。python:腳本語言,適合網絡應用程式的開發,有利於開發效率,現在顯得越來越強大PHP:伺服器端腳本語言,適合做動態網站JS:作為客戶端的腳本語言,在瀏覽中解釋執行,shell:作業系統腳本語言,一般指Unix/Linux中使用的命令行編譯語言,執行文件是二進位。