androidstudio使用kotlin开发APP

来源:互联网 发布:搜狗输入法下载 mac 编辑:程序博客网 时间:2024/05/16 19:52

前言

嗯,然后的然后,今天有Qcon大会哈,很不错哈,公司有5张门票,嗯,明天过去看看。Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。嗯,上面的话我是复制百度百科的,其实就想说,这东西可以用来开发Android。好,我们来看看这玩意儿。

那么,现在大家开发Android的话一般来说都是直接用Java,这个没错吧(高手除外)。嗯,那么用力那么久的Java,不知道大家是否有想过Java的不足,已经很多可以优化的地方呢。当然,新修订的版本中也逐渐覆盖以往的不足,但是Android开发者们还没来得及用上它。所以这也使得Kotlin这样的语言可以有用武之地,可以让开发者们在旧的开发环境中使用新的特性。

嗯,然后我想说的是其实我也接触这门语言不是很久,今天就写一个入门级的博文吧,至少能让大家可以在Android Studio中尝试用Kotlin去开发是吧。

如何在Android studio使用Kotlin开发

(之前我第一次接触的时候看了很多博文,其实现在的配置完全不用像以前那么麻烦,其实就很简单的3个步骤)

1.在IDE plugins中下载Kotlin插件

打开你的Android studio 在设置中打开plugins,然后在里面搜索Kotlin,点击安装,之后安装后重启。 
这里写图片描述

2.创建、转换Kotlin文件

然后就是新建一个工程,然后你可以右键试试,看看是不是多出了2个选项。如图。 
这里写图片描述 
然后定位到MainActivity,在菜单栏选择“Code”,选择“Convert Java File to Kotlin File”,你会看到你的MainAvtivity变成了Kotlin文件,这个时候其实你去编译的话是有问题的。看第三步。 
这里写图片描述

3.配置Kotlin(其实是全自动)

然后由于你是第一次使用Kotlin,Studio会提示要你配置Kotlin的,点击配置即可,其实啥都不用选,直接点“ok”。到这里你就配置完成了,然后可以试试编译运行了。 
这里写图片描述

尝试使用Kotlin编写代码

数据类型定义

数据模型在开发中绝对是不可避免的,以往都会定义很多变量,然后添加get(),set()方法。如果现在使用Kotlin开发,你可以这么定义。

/** * Created by Blin on 2016/10/20. */data class People(        var id: Long,        var name: String,        var weight: Double,        var height: Double)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

空类型是安全的

以往我们在使用数据的时候最多的就是

if(a != null){    ...}
  • 1
  • 2
  • 3

那么在Kotlin中其实完全么有必要这么写了,可以看一下下面代码的顺序思路和注释。

//        这是不允许的,People不能为null//        var people: People = null//        以下是正确的声明        var people: People? = null//        不可以直接调用people,因为有可能people是null//        people.id//        如果people有可能为null,则必须先用如下的形式判断        people?.id//        当然,如果按照java的习惯,先判断不为null了,那也是可以直接使用的        if(people !=null) people.id//        如果能该变量一定不为null,可以使用2个感叹号表示,但是如果为null,那会抛出异常//        people!!.id
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

可以看出,在上面声明变量的时候不能直接生命为null,必须在等号前面加一个? 表示其实people是可以为null的。然后就是不能直接调用方法或者引用变量,必须在引用之前加?询问,当然如果能保证当前变量一定不为null,那可以直接用!!表示然后调用。如果在if()中判断了不为null,那么是可以直接调用的。

可扩展函数

刚才上面我们创建了一个People类,如果我想要给该类添加一个方法,可以这么做

fun People.toast(context: Context,message: CharSequence){        Toast.makeText(context,message,Toast.LENGTH_SHORT).show()    }
  • 1
  • 2
  • 3

然后想调用可以这么调用

mPeople.toast(mContext,"其实我是来测试的")
  • 1

Lambdas

这个函数其实java8也支持了,当然之前大家是通过第三方依赖来支持的。 
我这边找到那个默认TextView,然后添加点击事件

tv = findViewById(R.id.text) as TextView?tv?.setOnClickListener { mPeople.toast(mContext,"其实我是来测试的") }
  • 1
  • 2

然后你点击那个“holleWord” 就可以显示Toast了。

总结

嗯,总的来说Kotlin真的是非常简洁,的确极大的简化了代码,对于开发者来说的确是可以大大提高开发效率。虽说Kotlin现在可以和java无缝连接,意味着为我们可以直接使用Java现在已有的大量类库,所以说这门语语言虽然很年轻,但是已经有这大量的库可以使用。 
在使用过程中我们很少需要指定类型,编译器可以在绝大多数情况下推断出变量或者返回值的类型,这直接带来的好处就是安全与便捷。 
还有让我觉得很棒的就是null是安全的,在java中,遇到最多的,最容易出问题的就是nullPointerExcetion,在Kotlin中的null是显式的,就是是强制要求开发者去注意这一点,从而减少nullPointerExcetion的出错率。 

原创粉丝点击