Kotlin程式開發入門

非同步社群發表於2017-09-01



 谷歌在17年舉行的I/O開發者大會上宣佈,將Kotlin語言作為安卓開發的一級程式語言。於此同時,Kotlin語言一出就上了各大IT入口網站的頭條,百度搜尋達到300萬條,今天小編帶你瞭解一下Kotlin,並推薦一本Kotlin入門書《Kotlin程式開發入門精要》




本文摘自人民郵電出版社非同步社群《Kotlin程式開發入門精要》
試讀:www.epubit.com.cn/book/detail…
購書:item.jd.com/12174925.ht…


Kotlin是什麼?



      可能很多讀者看到Kotlin這個單詞會感到很陌生,這很正常。就和2007年以前一樣,在蘋果公司推出iPhone以及相應的開發工具之前,Objective-C就鮮為人知,至少在國內是這樣的。上面提到的Objective-C是一種程式語言,而本書的主題是Kotlin,那麼首先要回答的是,Kotlin到底是什麼呢?沒錯,Kotlin和Objective-C一樣,是一種程式語言。



      Kotlin是由JetBrains建立的基於JVM的程式語言,那麼JetBrains又是什麼呢?我相信很多Java程式設計師使用過IntelliJ IDEA,這個非常棒的Java IDE(整合開發環境)就是JetBrains的傑作。如果你沒聽過或沒用過IntelliJ
IDE,那麼也沒有太大關係。相信閱讀本書的讀者或多或少都瞭解一些Android的知識,Android官方推薦的IDE是Android Studio,簡稱AS。這個IDE就是基於IntelliJ IDEA社群版開發的。JetBrains旗下不只有IntelliJ IDEA一款產品,Kotlin也是JetBrains旗下的一款產品,一種程式語言。這種程式語言執行在JVM上,也就是Kotlin編譯器會將Kotlin原始碼編譯成Java Byte Code(Java位元組碼),可以直接執行在JVM上。從這一點看出,在技術層面,Java和Kotlin是同一個級別的,都以Java
Byte Code形式執行在JVM上。當然,Kotlin編譯器還可以將Kotlin原始碼編譯生成JavaScript程式碼,以便在沒有JVM的情況下執行。在未來,Kotlin編譯器還可以將Kotlin原始碼編譯生成原生程式碼,完全脫離任何虛擬機器執行,也就是說,Kotlin相對Java的優勢之一是多目標編譯語言,而Java只能編譯生成Java Byte Code(.class檔案)。



為什麼Kotlin突然成為熱門?



      儘管Kotlin已經推出有很長一段時間了,但並不怎麼出名,可能是因為JetBrains對它的推廣力度不夠,加之現在的程式語言實在太多了,所以Kotlin就像一塊石頭扔進了大海,不見了蹤影。



      那麼為什麼現在Kotlin突然成為熱門了呢?原因也很簡單,Kotlin可以開發Android App,而且被Google公司選為開發Android App的一級語言,即在Android Studio 3.0及以上版本中會支援利用Kotlin語言開發Android App。這也就意味著,到目前為止,開發Android
本地App可以使用Java和Kotlin兩種程式語言。這就很像開發iOS App的場景了,可以使用Objective-C和Swift兩種語言開發iOS App。因此,很多人把Kotlin比作Android世界的Swift。而且Kotlin和Swift的確都是很棒的程式語言,都加入了很多“語法糖”,可以大幅提高程式開發的效率。



Kotlin相對於Java有哪些優勢?



      可能很多讀者會問,既然有了Java,為什麼Google公司還要選擇Kotlin來開發Android App呢?Kotlin相比Java有哪些優勢呢?



      在這一節我們來簡單瞭解一下Kotlin的特點,通過這些介紹,我們可以體會到Kotlin的優勢所在。





  • 更容易學習:Kotlin是一門包含很多函數語言程式設計思想的物件導向程式語言,而且相比Scala語言更容易學習。




  • 輕量級:相比其他程式語言,Kotlin函式庫更小。由於Android存在65K方法數限制,使得這一點顯得更為重要。雖然使用ProGuard或者打包成多個dex能夠解決這個問題,但是所有這些解決方案都會提高複雜性,並增加除錯的時間。Kotlin函式庫方法數小於7000個,相當於support-v4(Android
    1.6)的大小。




  • 高度可互操作性:Kotlin可以和其他Java類庫友好且簡單地進行互操作。Kotlin團隊在開發這門新語言時正是秉承了這個中心思想。他們希望可以使用Kotlin繼續開發現有的使用Java語言編寫的工程,而不是重寫所有程式碼。因此,Kotlin需要能夠和Java很好地進行互操作。




  • 非常好地整合Android Studio及Gradle:Kotlin有一個專門用於Android Studio的外掛,以及另一個專門用於Gradle的外掛。而且即將推出的Android Studio 3.0已經整合了Kotlin,因此在Android工程中開始使用Kotlin並不困難。




      當然,Kotlin還有很多語法層面的特性,如資料模型類、空型別安全、擴充套件函式等,這些技術將會在後面的章節介紹中展開。



Kotlin能做什麼?



      從前面的內容可以知道,Kotlin可以用來開發Android App,那麼除了Android App,Kotlin還可以做什麼呢?在本節我們就來一窺究竟。



1.服務端開發



      既然Kotlin是基於JVM的程式語言,那麼自然而然就可以使用所有基於JVM的服務端框架。下面是幾個Kotlin官方文件推薦的框架。





  • Spring:一種開源框架,是為了解決企業應用程式開發複雜性問題而建立的。從Spring 5開始,Spring就已經支援Kotlin的新特性了,並可以使用Spring線上生成器(start.spring.io)生成基於Kotlin的工程。




  • Vert.x:用於建立基於JVM的響應式Web應用的框架。




  • Ktor:由JetBrains釋出的一款基於Kotlin的本地Web框架




  • kotlinx.html:是一種DSL(領域專用語言),用於在Web應用中生成HTML。Kotlin服務端框架和kotlinx.html的關係就像JSP和FreeMarker的關係一樣,FreeMarker是基於Java的模板引擎。使用FreeMarker,可以不依賴於HTML或其他技術,可以根據需要生成HTML或其他東西,也就是一種與具體渲染技術無關的技術。




2.以JavaScript方式執行



     Kotlin提供了生成JavaScript原始碼的能力,也就是將Kotlin程式碼直接轉換為JavaScript程式碼。目前,支援ECMAScript 5.1標準,未來會支援ECMAScript 6。



      注意,如果將Kotlin程式碼轉換為JavaScript程式碼,在Kotlin程式碼中只能包含Kotlin標準庫,不能包含任何JDK API以及任何第三方的Java Library API,任何不屬於Kotlin本身(Kotlin語句和標準庫)的部分在轉換的過程中將被忽略。



3.開發Android App



       這一部分在上文提到過,Kotlin和Java一樣,都可以開發Android App,而且Kotlin和Java原始碼檔案可以在同一個工程中,可以聯合進行除錯。



      儘管Kotlin能做很多事(Java能做的,Kotlin都能做),但本書的主要關注點是開發Android App,因此,在本書後續部分將著重介紹如何利用Kotlin開發Android App。





Kotlin入門,怎麼學?



一本全程視訊陪伴貼心跟蹤初學者學習效果的Kotlin開發書



《Kotlin程式開發入門精要》







點選圖片檢視詳情)



編輯推薦



1基於最新的Kotlin版本



2本書分為三部分:Kotlin基礎、Android開發和專案實戰,讀者通過對本書的學習,不僅可以掌握Kotlin的知識,還可以將Kotlin用於專案實戰。



3贈送近70小時視訊課程,包括Kotlin和Android,供初學者學習使用



4通過極客題庫提供大量的測試題以及過關斬將系統,讀者可以用通關的方式更有效地學習書中的知識



5隨書贈送價值300元優惠卡,可以用於購買李寧老師其他視訊課程以及現在及未來提供的其他服務



6有問題的學員可以通過歐瑞科技(創始人是李寧)的問答社群區(geekori.com提問,會有專人回答讀者提出的問題,以及通過部落格系統總結書中學到的知識,同時,提出問題、回答問題以及撰寫的部落格越多,就會增加讀者的積分,以後學習李寧老師其他的課程和獲取其他資源,會有更大的優惠。



僅僅一本書怎麼行?海量視訊、海量習題快速入門























更多Android類好書,掃碼檢視















相關文章