Getting started with Kotlin on Android

Getting started with Kotlin on Android

2017年3月26日,ThoughtWorks高级咨询师张帅、王智勇在“Mobile Open Day—小步构建移动开发知识网络”进行《Getting started with Kotlin on Android》演讲分享。IT大咖说作为独家视频合作方,经主办方和讲者审阅授权发布。

Getting started with Kotlin on Android
Getting started with Kotlin on Android
嘉宾分享视频地址:http://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。
Getting started with Kotlin on Android
Getting started with Kotlin on Android

Singleton
Getting started with Kotlin on Android

而Kotlin要实现一个单例,只需一个关键字“object”。

Optional
Null pointer是代码中一个常见的bug。
Getting started with Kotlin on Android

Late-Initialized&Lazy
在代码中经常会遇到一些方法,它们不需要在构造函数中进行初始化操作,这时就可以通过lateinit var关键字把它声明成懒加载模式。

Full name是通过last name和first name组装起来的,只有用到full name的时候,才会调出lazy的这个表达式,生成一个值,非常方便,解决了懒加载的问题。

Extensions
在Java中,要想扩展一个类,我们会写一堆Utils。

而在Kotlin中,我们可以直接对double对象进行扩展,再也不需要Utils的类了。

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

在Kotlin中把Collections分为mutable和immutable两类,这样有助于消除错误,设计更好的API。

Generics
我们要创造一个协变的应用才能引用它子类的集合,与之对应的还有逆变。

在Kotlin里数组默认不是协变的。
Getting started with Kotlin on Android

对于不可变集合是默认协变,可变集合默认是逆变的。

总结一下
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
Getting started with Kotlin on Android
Coroutines把回调式的写法改成了流式的写法。

总结一下
Inline function减少了运行的开销。
SeadledClass限制了类的层级。
Delegate使得代码更加简洁。
Coroutines提高了异步代码的可读性。

Kotlin in Android

在Android上有一个常见的类叫做viewholder。
Getting started with Kotlin on Android

Kotlin在Android上可以自动把view找出来,不需要手写代码。

Kotlin's Reference

引入Kotlin
Getting started with Kotlin on Android

已知问题
Kotlin与mockito的兼容性。
在Kotlin里的静态代码检查工具还不完善。
Kotlin对于Java里的一些关键词和操作符的语义做了改变。

以上是我今天分享的内容,感谢聆听!

福利赠票!

IT大咖说作为7月24日OpenStack Days China大会(在北京国家会议中心举行)的官方现场直播合作伙伴,特为小伙伴们争取了少量免费VIP票福利(原价¥600)!

获取方式:

扫码加这位小姐姐微信(或加微信号:ITDKS666),她会告诉你咋整!(备注:openstack)
Getting started with Kotlin on Android
Getting started with Kotlin on Android

上一篇:mysql 存储过程演示造数据


下一篇:log4j配置文件基本含义说明