Getting started with Kotlin on Android


內容來源:2017年3月26日,ThoughtWorks高級諮詢師張帥、王智勇在「Mobile Open Day—小步構建移動開發知識網絡」進行《Getting started with Kotlin on Android》演講分享。IT大咖說做爲獨家視頻合做方,經主辦方和講者審閱受權發佈。
閱讀字數: 1128 用時: 7分鐘



摘要

Kotlin是一門與Swift相似的靜態類型JVM語言,由JetBrain設計開發並開源,與Java相比,Kotlin的語法更簡潔,更具表達性,並且提供了更多的特性。兩位ThoughtWorks高級諮詢師共同爲咱們分享Kotlin在Android上的運用。數組

嘉賓演講視頻地址:t.cn/RKwZwbZ微信

Java VS Kotlin

在Java的使用中會遇到不少問題。它的語法繁瑣,API低級;隨時可能出現null pointer問題;有各類各樣的util類和混亂的泛型。網絡

Data Class

在Java Bean裏有成員函數string topic、string type和list speakers。異步

Getter/Setter可使Java成員既有封裝性,又能對外暴露不少接口。函數

還有不少其它的方法,好比toString、hashCode和equals。工具



Singleton


而Kotlin要實現一個單例,只需一個關鍵字「object」。
性能

Optional

Null pointer是代碼中一個常見的bug。優化


Late-Initialized&Lazy

在代碼中常常會遇到一些方法,它們不須要在構造函數中進行初始化操做,這時就能夠經過lateinit var關鍵字把它聲明成懶加載模式。設計

Full name是經過last name和first name組裝起來的,只有用到full name的時候,纔會調出lazy的這個表達式,生成一個值,很是方便,解決了懶加載的問題。3d

Extensions

在Java中,要想擴展一個類,咱們會寫一堆Utils。

而在Kotlin中,咱們能夠直接對double對象進行擴展,不再須要Utils的類了。

Collections

常見的Collections有Stack、Map、Queue和List等等。

在Kotlin中把Collections分爲mutable和immutable兩類,這樣有助於消除錯誤,設計更好的API。

Generics

咱們要創造一個協變的應用才能引用它子類的集合,與之對應的還有逆變。

在Kotlin裏數組默認不是協變的。


對於不可變集合是默認協變,可變集合默認是逆變的。

總結一下

Kotlin提供了高級的語法,例如data、object等。

對於null pointer問題,它有optional對象。

有val、late-intialized、lazy和Collections支持。

能夠用擴展語法讓代碼更加可讀。

Generics簡單好用。

Kotlin cool feature

Inline function

若是在開發過程當中發現有性能問題,能夠把代碼進行優化,在代碼運行起來以後,body block會被封裝成一個函數對象。加入了Inline,body就會被Inline到函數調用的地方去。

Inline還有個功能叫reified。當咱們讀取網絡返回的時候,會用Gson來解析字符串,在寫的過程當中會發現語法有冗餘。引入reified之後,能夠把類型聲明成reified,這樣在函數題裏就會引用到這個類型具體的Class。Kotlin有必定的類型推導功能。

Sealed Class

SealedClass能夠限制住一個副類一共有多少個子類。

Delegated properties

對於一個property,能夠把它Delegated一個對象上,每當讀寫property的時候,它都會調用對應的函數。

Coroutines

Coroutines把回調式的寫法改爲了流式的寫法。


總結一下

Inline function減小了運行的開銷。

SeadledClass限制了類的層級。

Delegate使得代碼更加簡潔。

Coroutines提升了異步代碼的可讀性。

Kotlin in Android

在Android上有一個常見的類叫作viewholder。


Kotlin在Android上能夠自動把view找出來,不須要手寫代碼。

Kotlin's Reference

引入Kotlin


已知問題

Kotlin與mockito的兼容性。

在Kotlin裏的靜態代碼檢查工具還不完善。

Kotlin對於Java裏的一些關鍵詞和操做符的語義作了改變。

以上是我今天分享的內容,感謝聆聽!

福利贈票!

IT大咖說做爲第二屆APMCon中國應用性能管理大會的官方現場直播合做夥伴,特爲小夥伴們爭取了少許免費VIP票福利(原價¥1388)!

獲取方式:

掃碼加這位小姐姐微信(或加微信號:ITDKS666),她會告訴你咋獲取!(備註:聽雲社區)


相關文章
相關標籤/搜索