## **使用Kotlin進行Android開發**
Kotlin非常適合開發Android應用,給Android平臺帶來了現在語言的所有優勢,而不引入任何新的限制:
* **兼容性:** Kotlin完全兼容JDK6,以確保Kotlin應用在老的Android設備上運行沒有問題。Kotlin工具已經在Android Studio中完全支持,并且和Android構建系統兼容。
* **性能:** 由于非常相似的字節碼結構,Kotlin應用運行的速度和等效Java應用一樣快。隨著Kotlin對內聯函數的支持,使用lambdas編寫的代碼通常比使用Java編寫的相同代碼運行的更快。
* **互用性:** Kotlin100%和Java互操作的,允許在Kotlin應用中使用所有已有的Android庫。這包含注解處理,所以數據綁定和Dagger也可以工作。
* **占用大小:** Kotlin有一個非常緊湊的運行時庫,它可以通過使用ProGuard進一步的減小。在真實應用中,Kotlin運行時僅僅使得.apk文件增加幾百個方法和小于100K。
* **編譯時間:** Kotlin支持高效的增量編譯,因此對于clean構建會有一些額外的開銷。
* **學習曲線:** 對于一個Java開發者,開始使用Kotlin是非常簡單的。在Kotlin插件中包含了Java到Kotlin自動轉換器可以幫助你邁出第一步。Kotlin Koans提供了一個包含語言關鍵功能的一系列互動練習指南。
>**補充:** 什么是增量編譯?
普通編譯器必須編譯整個模塊或者程序,但是增量編譯器只需重新編譯程序代碼中更改的那部分代碼,僅輸出相對應的結果(通常該編譯器的目標語言是字節碼bytecode)。在有效利用先前編譯結果的基礎上,增量編譯器避免了重復編譯整個源文件(大多數代碼都沒有改變)。
### **Kotlin用于Andorid案例研究**
***
Kotlin已經成功的被大公司采用,他們中的一些人分享了他們的經驗:
1. Pinterest已經成功的將Kotlin引入到他們每個月有1.5億用戶使用的應用中。
2. Basecamp的Android應用100%的使用Kotlin代碼,并且他們發現序員幸福感有很大的不同,并且工作質量和速度方有很大的提升。
3. Keepsafe的應用Lock app也已經100%的遷移到Kotlin,使得源碼行數減少了30%和方法數量減少10%。
### **Android開發工具**
***
Kotlin團隊為Android開發提供了一套超越標準語言功能的工具:
1. Kotlin Android Extensions是一個編譯器擴展,它允許你從你的代碼中去除findViewById()調用,使用合成編譯器生成的屬性替代他們;
2. Anko是一個在Android API周圍提供一組Kotlin友好的包裝器的庫,還有一種DSL讓你使用Kotlin代碼替換你布局.xml文件。
### **下一步**
***
1. 下載安裝Android Studio 3.0 Preview,其中包含了立即可用的Kotlin支持。
2. 跟著Getting Started with Android and Kotlin教程創建你的第一個Kotlin應用。
3. 為了更深入的介紹,查看這個網站的reference documentation和Kotlin Koans。
4. 其它很好的資源是Kotlin for Android Developers,一本引導你一步一步使用Kotlin完成創建一個真實的Andorid應用過程的書。
5. 看一看Goolge的sample projects written in Kotlin。
- 開發
- Kotlin和Android
- 開始使用Kotlin
- Kotlin在Android中FAQ
- 學習Kotlin的資源
- 參考
- 綜述
- Kotlin適合于Android
- 基本介紹
- 基本語法
- Idioms
- 基礎
- 基本類型
- 包
- 控制流
- 返回和跳轉
- 類和對象
- 類和繼承
- 屬性和字段
- 接口
- 可見性修飾符
- 擴展
- 數據類
- 密封類
- 泛型
- Nested Classes
- 枚舉類
- Objects
- Delegation
- Delegated Properties
- 函數和Lambda
- 函數
- Lambda
- 內聯函數
- Coroutines
- 其它
- 解構聲明
- 集合
- 范圍
- 類型檢查和轉換
- This表達式
- 相等
- 操作符重載
- 空安全
- 異常
- 注解
- 反射
- 類型安全構建器
- 類型別名
- 核心庫
- 標準庫
- Java互操作
- 在Kotlin中調用Java
- 在Java中調用Kotlin
- 工具
- Documenting Kotlin Code
- Using Kapt
- Using Gradle
- Compiler plugins
- 學習指南
- Getting started
- Getting Started With IDEA
- Working with the Command Line Compiler
- Konas
- Android
- Getting Started With Android Development
- Kotlin Android Extensions
- Android Frameworks
- 書籍
- 更多資源