描述
本書特色、內容簡介
本書從Kotlin的發展史講起,結合理論知識和專案實例,全面介紹Kotlin的基礎與應用。
透過閱讀本書,讀者可以迅速掌握Kotlin的基本操作,輕鬆應對使用Java開發所帶來的技術難題。用自動化專案串聯知識點
全書內容共分為18章,由Kotlin入門與基礎、Kotlin語法和Kotlin專案實例三個部分組成。
■第一部分 Kotlin 入門與基礎部分(第 1 ∼ 3 章)
主要包含Kotlin 語言簡介、Kotlin 開發環境架設、JVM 語系和Kotlin 各版本重要特性。透過這部分知識的學習,讀者可以對Kotlin有一個基本的認識。
■第二部分 Kotlin 語法(第 4 ∼ 16 章)
本書的核心內容,主要介紹Kotlin 語言的基礎語法,包含的內容有類別與介面、擴充函數與屬性、集合與泛型、物件與委派、反射與註釋、Lambda 運算式、程式碼協同、Kotlin DSL 和Kotlin Native 開發等。本部分配備大量的實例,透過對這部分知識的學習,相信讀者能夠對Kotlin 的語法有一個全面的認識。
■第三部分 Kotlin 專案實例(第 17、18 章)
這是Kotlin 實戰的部分,是對前面章節所講基礎知識的實戰運用。透過和Spring Boot 架構的整合來介紹Kotlin 在Web 伺服器開發方面的應用,透過Android 視訊播放機專案來介紹Kotlin 在Android 開發方面的應用。
適合讀者群:前端開發人員、Android/iOS開發人員、Java開發人員
作者簡介
向治洪
有多年的客戶端開發經驗,也是資深互聯網基礎應用建設專家、開源技術貢獻者、敏捷開發實踐者,對前端領域有獨到的見解。
序
前言
《JetBrains 作為時下流行的IDE 開發廠商,為軟體領域提供了諸多的整合式開發環境,比較著名的如IntelliJ IDEA、WebStorm 和PyCharm 等,這些IDE 幾乎覆蓋了目前主流的程式語言。Kotlin 正是由JetBrains 團隊開發的。作為一種現代的、多平台的靜態程式語言,Kotlin 語言從一誕生就附帶光環。
Kotlin 語言充分參考了Java、Scala、Groovy、JavaScript 和Swift 等諸多語言的優秀特性,可以說是集多家語言之大成的程式語言。同時,作為一款多平台的程式語言,開發人員可以使用Kotlin 語言撰寫JVM、Android、iOS 和瀏覽器應用程式。Kotlin 可以將程式編譯成Java 位元組碼執行在JVM 環境中,或編譯成JavaScript 執行在瀏覽器中,也可以編譯成機器碼直接執行在沒有JVM 的嵌入式裝置上。
Kotlin 語言的歷史最早可追溯到2010 年,當時JetBrains 團隊使用Java開發應用程式的時候遇到諸多問題,於是Kotlin 語言應運而生。Kotlin專案在2011 年開放原始碼並在2016 年發佈了第一個穩定執行的版本Kotlin 1.0,而Kotlin 語言真正為人所熟知是在2017 年的Google I/O 大會上。在那次大會上,Google 宣佈將Kotlin 作為Android 開發的首選語言,逐步取代Java 語言在Android 開發中的地位。另外,作為目前最為流行的服務端開發架構之一,Spring 架構也在5.0 版本引用了對Kotlin 的支援,再加上Kotlin 對JavaScript 環境的支援,可以說Kotlin 為時下非常流行的多平台開發語言。
伴隨著2018 年Google I/O 大會的召開,Kotlin 已獲得開發者社區的廣泛認可,並在Android 開發中扮演著越來越重要的角色。據Google 官方統計,自2017 年宣佈支援Kotlin 以來,超過35% 的開發人員開始使用Kotlin 開發Android 應用程式,而且這個數字正在逐月遞增,而Play Store 中用Kotlin 開發的應用也增長了6 倍之多。同時,Google 官方表示將會繼續改善Kotlin 在支援函數庫、工具、執行時期、文件以及教育訓練中的開發體驗,而且在新版本的Android P 系統中對執行時期(Android Runtime)進行了微調,加快Kotlin 撰寫的應用的執行時間。
眾所皆知,在物件導向程式設計的年代,Java 作為一種非常優秀的物件導向程式語言而為開發人員所熟知;但是在目前函數式程式設計的熱潮中,和其他函數式程式語言相比,Java 就顯得有些笨重了。雖然Java 在1.8 版本之後逐步在向函數式程式設計接近,但是Java 的歷史包袱實在太重了,而Kotlin 不僅支援物件導向程式設計,而且支援函數式程式設計,另外Kotlin 還可以100% 地相容Java 程式,這對傳統的Java 開發人員來說是非常有吸引力的。
正如大家所熟知的,Google 與Oracle 的版權之爭或許是Google 選擇Kotlin 的原因之一,但Google 選擇Kotlin 更多的還是因為Kotlin 相比Java 的技術優勢,例如容易上手、語法簡潔、空指標安全和跨平台開發等,可以說Kotlin 就是為「顛覆」Java 而創造的。說了這麼多,相信大家對Kotlin 的強大有了一定的認識。
透過本書的寫作,我深刻地意識到學無止境的含義。寫書的過程也是一個自我歸納和學習的過程。如果本書對大家有所幫助和啟發,我將不勝欣慰。
✠ 如何閱讀本書
本書共分為18 章,力圖透過詳細的說明,幫助讀者更加了解Kotlin 語言,並將它運用到實際的專案中。本書主要內容如下。
■ Kotlin 入門與基礎部分(第 1 ∼ 3 章)
這部分內容主要包含Kotlin 語言簡介、Kotlin 開發環境架設、JVM 語系和Kotlin 各版本重要特性。透過這部分知識的學習,讀者可以對Kotlin有一個基本的認識。
■ Kotlin 語法(第 4 ∼ 16 章)
這部分是本書的核心內容,主要介紹Kotlin 語言的基礎語法,包含的內容有類別與介面、擴充函數與屬性、集合與泛型、物件與委派、反射與註釋、Lambda 運算式、程式碼協同、Kotlin DSL 和Kotlin Native 開發等。本部分配備大量的實例,透過對這部分知識的學習,相信讀者能夠對Kotlin 的語法有一個全面的認識。
■ Kotlin 專案實例(第 17、18 章)
這是Kotlin 實戰的部分,是對前面章節所講基礎知識的實戰運用。透過和Spring Boot 架構的整合來介紹Kotlin 在Web 伺服器開發方面的應用,透過Android 視訊播放機專案來介紹Kotlin 在Android 開發方面的應用。
✠ 適合讀者群
這是一本Kotlin 入門與實戰的圖書,不管是前端開發者、Android/iOS 開發者還是Java 開發者,本書都適合讀者閱讀參考。同時,本書配備了大量的實例,在說明理論的同時與實例相結合。相信透過本書的閱讀,讀者一定有所收穫。
目錄
前言
01 Kotlin 簡介
1.1 Kotlin 發展史
1.2 物件導向程式設計概述
1.3 Java 虛擬機器
1.4 為什麼使用Kotlin
1.5 Kotlin 與Java 的比較
1.6 小結
02 Kotlin 初體驗
2.1 Kotlin 線上執行
2.2 Kotlin 1.1 特性
2.3 Kotlin 1.2 新特性
2.4 小結
03 Kotlin 快速入門
3.1 在Mac 上架設Kotlin 開發環境
3.2 Kotlin 開發IDE 介紹
3.3 Kotlin 的編譯與執行
3.4 Kotlin 建置方式
3.5 編譯器外掛程式
3.6 小結
04 Kotlin 語法基礎
4.1 Kotlin 程式設計風格
4.2 變數與屬性
4.3 基底資料型態
4.4 套件宣告與使用
4.5 流程控制敘述
4.6 Kotlin 運算子
4.7 運算子多載
4.8 Kotlin 運算符號
4.9 Kotlin 動態類型
4.10 Kotlin 空安全
4.11 例外處理
4.12 小結
05類別與介面
5.1 類別
5.2 繼承
5.3 抽象類別
5.4 介面
5.5 小結
06擴充函數與屬性
6.1 列舉
6.2 擴充
6.3 this 運算式
6.4 小結
07資料類別與密封類別
7.1 資料類別
7.2 密封類別
7.3 小結
08集合與泛型
8.1 集合
8.2 泛型
8.3 小結
09物件與委派
9.1 物件
9.2 委派
9.3 標準委派
9.4 小結
10反射與註釋
10.1 反射
10.2 註釋
10.3 小結
11函數與Lambda 運算式
11.1 函數
11.2 高階函數
11.3 內聯函數
11.4 Lambda 運算式與匿名函數
11.5 小結
12程式碼協同
12.1 程式碼協同簡介
12.2 程式碼協同開發環境
12.3 程式碼協同基礎
12.4 暫停函數
12.5 程式碼協同上下文與排程器
12.6 通道
12.7 管線
12.8 小結
13 I/O 操作與多執行緒
13.1 Kotlin 串流層次
13.2 檔案I/O 操作
13.3 網路I/O 操作
13.4 多執行緒
14 Kotlin DSL
14.1 DSL 簡介
14.2 DSL 語義模型
14.3 Kotlin 的DSL 特性
14.4 使用kotlinx.html 建立DSL
14.5 Android Gradle 指南
14.6 使用Kotlin 與Anko 進行Android 開發
14.7 小結
15 Kotlin 互動操作
15.1 Kotlin 與Java 互動操作
15.2 Kotlin 與JavaScript 互動操作
15.3 小結
16 Kotlin Native 開發
16.1 Kotlin Native
16.2 Kotlin Native 實例
16.3 使用Kotlin Native 開發iOS應用
16.4 小結
17使用Kotlin 與Spring Boot開發服務端
17.1 Spring Boot 環境架設
17.2 Spring Boot 之Thymeleaf範本
17.3 使用Swagger 建置RESTful API
17.4 Spring Boot 透過MyBatis 整合MySQL 資料庫
17.5 Spring Boot 整合Redis資料庫
17.6 Spring Boot 整合Elasticsearch
17.7 Spring Boot 整合RabbitMQ
17.8 Spring Boot 熱部署與記錄檔管理
17.9 Spring Framework 5.0 對Kotlin 的支援
17.10 小結.
18使用Kotlin 開發Android視訊應用
18.1 專案概述
18.2 淺談Android 開發架構模式
18.3 專案準備
18.4 專案開發
18.5 小結