写在前言
自从Google I/O 2017 宣布支持Kotlin并发布了Android studio 3.0 之后;就按耐不住心中的冲动立马去学习了kotlin这门语言。不过对于Google支持kotlin这门语言我觉得很多人有个误解以为Google要抛弃Java了,我觉得现阶段并不是,Google只不过增加了一门可以编写Android的语言而已,毕竟Android的sdk什么的都还是Java怎么可能抛弃呢。对于刚入门Android的同学,我不建议上来直接就学kotlin,而是先去学Java;因为在Android中Kotlin调用的还是java,若再开发遇到什么问题不懂Java会很难进行下去的。
正文
接触kotlin之后最明显的感受就是写程序变得超级简单了,没有那么多复杂的流程了,写程序实在太爽啦��;下面介绍我是如何学习kotlin和在使用Kotlin遇到的问题
如何学习Kotlin
我是通过这篇网站来学习kotlin的,这里面很详细的介绍了kotlin的语法知识点,看完这些就可以掌握Kotlin的基础了
应用到Android项目上遇到的困难
首先遇到的问题就是最常用的单例模式了,kotlin和Java还是有点不同的所以写法也有所不同然后在网上搜了很多最后得出了自己的写法,若有错误欢迎指正,具体请看这里
使用rx系列 - 在编写Android程序中我最喜欢使用rxjava了,可以说每个项目都会使用,所以第一步肯定是要把rxjava应用到kotlin中;这个过程中并没有遇到什么问题,只是写法有点不一样大部分结构都是使用lambda这种写法,这个多写几遍就会了;但是当我想在kotlin使用retrofit+rxjava却遇到了一点问题具体请看这篇文章
使用dagger2(v2.11) - 由于dagger2增加了对Android的特别支持,然后网上也找不到几篇关于此版本的说明所以在使用这个版本的时候是很痛苦的,摸索了很久,最后打通之后发现使用方法与Java并无差异��;关于使用请看这篇文章
使用room(Room Persistence Library) - room 是Google在io大会上发布的官方的数据库ORM框架,使用起来真的超级非常方便,但是在kotlin中遇到的困难也是最大的。跟在Java上使用很不一样;关于差异和如何使用,请看这篇文章
以上就是在编写项目中遇到的比较突出的问题了
- 还有个未解决的问题就是用kotlin写的自定义控件Android不能完全识别出来,所以项目中有两个Java文件;这个我在后面慢慢研究
项目展示
- 首先上效果图,很大程度的去模仿了知乎日报的样子��
项目源码: https://github.com/MichaelJokAr/ZhihuDaily
项目心得: 通过这次编写彻底爱上了kotlin这门语言,真的实在是太赞了。不过现在编写起来却没有java那么方便,没有有那么多插件可用。但是后面肯定会慢慢多起来的;以后有机会Android项目肯定用kotlin来编写;
然后这个项目个人觉得是一个很好的学习kotlin,dagger2,room,mvp的一个列子��