Getting started with Kotlin on Android

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



嘉宾分享视频地址: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。

Singleton

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

Optional
Null pointer是代码中一个常见的bug。

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里数组默认不是协变的。

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

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

获取方式:

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

时间: 2024-08-30 11:09:26

Getting started with Kotlin on Android的相关文章

创建一个基于 Kotlin 的 Android 项目(下集)

本文讲的是创建一个基于 Kotlin 的 Android 项目(下集), 在先前的文章中,我们从零开始新建了一个项目,并且为小猫咪应用调整了 build.gradle. 接下来就是针对应用的基础部分编写代码了. 数据模型 此应用的一个主要特征是通过网络从 http://thecatapi.com/ 中解析数据. 完整的 API 如此调用:http://thecatapi.com/api/images/get?format=xml&results_per_page=10 API 返回一个 XML 

用Kotlin写Android程序

1.1 Kotlin的身世 写了许久 Java,有没有发现其实你写了太多冗余的代码? 后来你体验了一下 Python,有没有觉得不写分号的感觉真是超级爽? 你虽然勤勤恳恳,可到头来却被 NullPointerException 折磨的死去活来,难道就没有受够这种日子么? 直到有一天你发现自己已经写了好几十万行代码,发现居然全是 getter 和 setter! 哈哈,实际上你完全可以不用这么痛苦,用 Kotlin 替代 Java 开发你的程序,无论是 Android 还是 Server,你都能像

如何看待 Kotlin 成为 Android 官方支持开发语言?

在刚刚结束的谷歌 I/O 2017 开发者大会上,官方宣布将支持 Kotlin 作为 Android 开发的 First-Class 语言.一石激起千层浪,消息一出,立即引发了国内外相关从业者对此事件的广泛关注和热烈讨论.本文作者段建华,作为 Flipboard 中国区 Android 资深研发工程师,我们来不妨看看他对此事的看法. Google IO 2017宣布了 Kotlin 会成为 Android 官方开发语言.一时间朋友圈和Android圈被各种刷屏.当然我也顺势而为发布了一篇的文章<

Kotlin for Android

在Google IO 2017 大会上,Google将 Kotlin列为 Android官方开发语言,Android Studio 3.0 也默认集成了Kotlin插件. Android Studio 3.0目前是预览版,下载地址: https://developer.android.google.cn/studio/preview/index.html 如果您是更早的版本,点击Android Studio File->Settings->Plugins,搜索Kotlin,然后重启Androi

如何看待 Kotlin 成为 Android 官方支持的开发语言?一线开发者这样说

Google IO 2017 宣布了 Kotlin 会成为 Android 官方开发语言.一时间朋友圈和 Android 圈被各种刷屏.当然我也顺势而为发布了一篇的文章<为什么我要改用Kotlin>,着实狠狠地蹭了一波热度(尽管这样会被鄙视).眼下 Android 圈已经躁动了,甚至严重到如果对 Kotlin 视而不见就显得自己不像一个合格的 Android 程序员. 本文尝试从一个客观全面一点儿的角度来看待这件事情,尽力为大家提供一个比较理性的观点供参考.   为什么会选用Kotlin 关于

Kotlin:Android世界的Swift

转自:http://www.infoq.com/cn/news/2015/06/Android-JVM-JetBrains-Kotlin Kotlin是一门与Swift类似的静态类型JVM语言,由JetBrains设计开发并开源.与Java相比,Kotlin的语法更简洁.更具表达性,而且提供了更多的特性,比如,高阶函数.操作符重载.字符串模板.它与Java高度可互操作,可以同时用在一个项目中. 按照JetBrains的说法,根据他们多年的Java平台开发经验,他们认为Java编程语言有一定的局限

牛腩学Kotlin做Android应用

牛腩学Kotlin做Android应用,蹭热度视频,边学边做,   01-kotlin插件安装及hello world 02-kotlin基础语法速览   哔哩哔哩观看地址:http://www.bilibili.com/video/av10721234/   优酷观看地址:http://list.youku.com/albumlist/show/id_49883667

使用Kotlin开发Android应用的初体验

昨晚,最近一届的谷歌IO大会正式将Kotlin确定为了官方开发语言,作为一名Android开发鸟,怎么能不及时尝尝鲜呢? Kotlin的简要介绍 在开发之前,很多同学一定有很多疑问,Kotlin到底有啥好处,怎么和现有的项目共存呢?Java那么些特性Kotlin都有吗?嗯,让我们一一来看. Kotlin 非常适合开发 Android 应用程序,将现代语言的所有优势带入 Android 平台而不会引入任何新的限制: 兼容性:Kotlin 与 JDK 6 完全兼容,保障了 Kotlin 应用程序可以

Kotlin在Android工程中的应用详解

Kotlin在Android工程中的应用 原文链接 简介 Kotlin是由JetBrains设计的开放源码的编程语言,它正在Java开发者中变得越来越流行.Kotlin通常被吹捧为Java的继承者,相比较Java而言,Kotlin提供更为丰富的开发经验,因为它更现代,更具表现力和更简介. 如果你在寻求Android开发的可替代编程语言,那么应该试一下Kotlin.使用Kotlin,你可以很容易的在Android工程中替代Java或者与Java混合使用. 本文接下来将介绍在Android Stud