关于android:Kotlin入门到精通高级Kotlin强化实战附Demo

32次阅读

共计 4364 个字符,预计需要花费 11 分钟才能阅读完成。

何为 Kotlin?

Kotlin 是一种在 Java 虚拟机上运行的动态类型编程语言,被称之为 Android 世界的 Swift,由 JetBrains 设计开发并开源。

Kotlin 能够编译成 Java 字节码,也能够编译成 JavaScript,不便在没有 JVM 的设施上运行。

在 Google I/O 2017 中,Google 发表 Kotlin 成为 Android 官网开发语言。

为何说 Kotlin 非常适合于 Android?

基本上,这是因为 Kotlin 的所有个性都非常适合于 Android 生态圈。Kotlin 的库十分小,咱们在开发过程中不会引入额定的老本。其大小相当于 support-v4 库,咱们在很多我的项目中所应用的库都比 Kotlin 大。除此之外,Android Studio(官网的 Android IDE)是基于 IntelliJ 构建的。这意味着咱们的 IDE 对该语言提供了十分棒的反对。咱们能够很快就配置好我的项目,并且应用相熟的 IDE 进行开发。咱们能够持续应用 Gradle 以及 IDE 所提供的各种运行与调试个性。这与应用 Java 开发利用别无二致。归功于互操作性,咱们能够在 Kotlin 代码中应用 Android SDK 而不会遇到任何问题。实际上,局部 SDK 应用起来会变得更加简略,这是因为互操作性是十分智能的,比如说它能够将 getters 与 setters 映射到 Kotlin 属性上,咱们也能够以闭包的模式编写监听器。

如何在 Android 开发中应用 Kotlin?

过程非常简单,只需依照上面的步骤来即可:

  • 从 IDE plugins 中下载 Kotlin 插件
  • 在模块中创立 Kotlin 类
  • 应用“Configure Kotlin in Project…”
  • 开始编码

为什么抉择 Kotlin?

简洁:大大减少样板代码的数量。
平安:防止空指针异样等整个类的谬误。
互操作性:充分利用 JVM、Android 和浏览器的现有库。
工具敌对:可用任何 Java IDE 或者应用命令行构建。

Kotlin 在 Android 开发中那些让人舒服的中央

1. 字符模板

开发中不免须要依据多个字段去拼接一条字符串做展现,在过长或者过于简单的数据逻辑的时候,用 Java 实现起来都过于简短。Kotlin 应用 $ 放在变量名的后面去表白字符串中的变量和表达式,从而简化了这一过程。

2. 空平安

在应用 Java 开发 Android 的过程中,防止不了大量的空平安断定代码,介于 Kotlin 要很好的兼容 Java,在这个问题上 Kotlin 设计一整套新的类型零碎 (这里不作钻研) 来欠缺优化它。

所有的类型都分为可空和不可空类型, 并且针对不可空类型强制要求初始化,在一开始就让开发者高标准的、谨严的应用变量,是一种规范性的要求。然而可空类型可能会在程序中更宽泛的利用,针对这一点,Kotlin 也有 Elvis 操作符来进行平安拜访或者防止空值状况。

3. 提早加载

这一点能够说是对不可空类型的更进一步优化,开发中总有一些变量是在某些机会才会被初始化,而不是类加载的时候就加载。提早加载是很好的货色,能够省去初始化的老本,在变量真正被须要的时候才被初始化。

4. 不便易读的循环

Kotlin 有区间的概念,这个概念让创立循环更加易读不便。

5. 弱小易用的迭代器

遍历汇合是基操,对于一些略微简单一点的数据逻辑,Java 实现起来并不敌对。

当然前面有了 RxJava 来进行补救,不过 Kotlin 做的仿佛要更好一点。(这里就不探讨 Kotlin 的汇合框架架构了)

6. 默认参数

重载是很比拟常见的操作,然而有时候这种形式会呈现很多雷同的模板代码。Kotlin 的默认参数,能够 给参数指定默认值,并且在调用的时候像给变量赋值一样给参数赋值 \` 而不必像 Java 一样非要依照程序去传值。

并且因为具备默认值的起因,所以 调用的时候能够依据具体情况传递参数,更加灵便、更加易读和简洁。

7.Data Class

开发中 Bean 文件是必不可少的,然而 Java 的 Bean 文件大部分都是模版代码,尽管有插件主动生成,然而仍然会感觉比拟繁琐,Kotlin 能够将这些类申明为 Data 类,这些类会默认实现 equals(),hashCode(),toString() 和 copy() 办法,从几十行 Java 代码简洁到几行代码,Kotlin 只用申明 一个 data class

8. 简短而弱小的规范函数库

这是 Kotlin 提供的函数库,应用后会简化不少的样板代码。略微不一样的中央是它们的 this 和 it 各自指向不一样,以及返回值得不一样,应用得时候依据具体得状况来就能够了。

9. 通吃的 when

对于 Java 的 Stwich 再相熟不过,然而它应用起来有比拟多的限度,有时候面对简单的逻辑会显得乏力。

Kotlin 的 when 表达式能够匹配简直任何货色(字面值,枚举,数字,范畴,类型,表达式,甚至函数(kotlin 函数至上))。

10. 扩大

扩大可能是最受欢迎的一个个性,因为它能够让你少写很多工具类,并且让代码看起来更易读,更简洁。比方做一个避免反复点击的操作。

11. 简略的 Bundle 疾速的 Parcelable

一开始我并没有留神到这个个性,因为我的项目是组件化开发,在跳转传值上都采纳了 ARouter,然而当我发现 Kotlin 对这个做的革新的时候还是十分开心~

小总结:
如上所述,Kotlin 在很多方面都简化了 Android 的开发工作。它会晋升你的生产力,并且能够通过十分不同且更加简略的形式来解决一些常见的问题。

那么咱们该如何学习 Kotlin 呢?

如果你是因为短少学习材料,而我正好薅到这本谷歌外部大佬依据实战编写的 Kotlin 宝典,从入门到精通,教程通俗易懂,实例丰盛,既有基础知识,也有进阶技能,可能帮忙读者疾速入门,是你学习 Kotlin 的葵花宝典,快珍藏起来!!!

明天分享的一共分为两局部:字节跳动厂外部超高品质 Kotlin 笔记、谷歌大佬编写高级 Kotlin 强化实战(附 Demo)。

一、字节跳动厂外部超高品质 Kotlin 笔记

首先目录乘上:

1. 筹备开始

次要内容:根本语法、习惯用语、编码格调

2. 根底

次要内容:根本类型、包、控制流、返回与跳转

3. 类和对象

次要内容:类和继承、属性和字段、接口、可见性修饰词、扩大、数据对象、泛型、嵌套类、枚举类、对象表达式和申明、代理模式、代理属性

4. 函数和 lambda 表达式

次要内容:函数、高阶函数与 lambda 表达式

5. 其它

次要内容:多重申明,Ranges,类型检查和主动转换,This 表达式,等式,运算符重载,空平安,异样,注解,反射,动静类型

6. 互用性

次要内容:动静类型

7. 工具

次要内容:应用 Maven、应用 Ant、应用 Gradle、应用 Griffon

8.FAQ

次要内容:与 java 比照、与 Scala 比照

点击查看:字节跳动厂外部超高品质 Kotlin 笔记

基础知识把握之后就是靠实战晋升了!

二、谷歌大佬编写高级 Kotlin 强化实战(附 Demo)

照样目录乘上:

第一章 Kotlin 入门教程

  • Kotlin 概述

    • Kotlin 特点
    • 学习 Kotlin 的意义
  • Kotlin 与 Java 比拟

    • 打印日志
    • 定义常量与变量
    • null 申明
    • 空判断
    • 字符串拼接
    • 三元表达式
    • 多重条件
    • 更灵便的 case 语句
    • for 循环
    • 更不便的汇合操作
    • 遍历
    • 办法定义
    • constructor 结构器
    • Get Set 结构器
    • 操作符
    • 换行
  • 巧用 Android Studio

    • 为已有基于 Java 的 Android 我的项目增加 Kotlin 反对
    • 将 Java 文件转成 Kotlin 文件
  • 意识 Kotlin 根本类型

    • 根本类型代码演练

  • 走进 Kotlin 的数组

    • Kotlin 数组的创立技巧
    • Kotlin 数组的遍历技巧
    • 数组代码演练
  • 走进 Kotlin 的汇合

    • 汇合的可变性与不可变性
    • 汇合排序
    • 汇合中的 Set 与 Map
  • 汇合问题
  • 残缺代码
  • 根底语法

    • 所有 Kotlin 类都是对象 (Everything in Kotlin is an object)
    • 可见性修饰符 (Visibility Modifiers)
    • 变量定义 (Defining Variables)
    • 空平安 (Null Safety)
    • 类型查看与转换 (Type Checks and Casts)
    • if 判断
    • for 循环
    • when
    • 相等性 (Equality)
    • 函数 (Functions)
    • 类 (Classes)
    • 继承 (Inheritance)
    • This 表达式 (Expression)
    • 数据类 (Data Class)
    • 扩大 (Extensions)
    • 委托 (Delegation)

第二章 Kotlin 实战避坑指南

  • 办法入参是常量,不可批改
  • 不要 Companion、INSTANCE?
  • Java 重载,在 Kotlin 中怎么奇妙过渡一下?
  • Kotlin 中的判空姿态
  • Kotlin 复写 Java 父类中的办法
  • Kotlin“狠”起来,连 TODO 都不放过!
  • is、as\` 中的坑
  • Kotlin 中的 Property 的了解
  • also 关键字
  • takeIf 关键字
  • 单例模式的写法

第三章 我的项目实战《Kotlin Jetpack 实战》

  • 从一个膜拜大神的 Demo 开始

    • 简介
    • 工程构造
  • Kotlin 写 Gradle 脚本是一种什么体验?

    • Kotlin 编写 Gradle 脚本的劣势
    • 实战前的筹备
    • 开始重构
    • Kotlin DSL 实战 – 依赖治理
  • Kotlin 编程的三重境界

    • 后期筹备
    • 为工程增加 Kotlin 反对
  • Kotlin 高阶函数

    • 函数类型,高阶函数,Lambda,它们别离是什么?
    • 为什么要引入 Lambda 和 高阶函数?
    • 带接收者 (Receiver) 的函数类型:A.(B,C) -> D
    • HTML Kotlin DSL 实战

  • Kotlin 泛型

    • 遥控器的故事:泛型
    • 招聘的故事:泛型的不变性(Invariant)
    • 搞定招聘:泛型的协变(Covariant)
    • 填志愿的故事:泛型的逆变(Contravariant)
    • 应用处型变(Use-site Variance)
    • Kotlin 泛型实战
  • Kotlin 扩大

    • 扩大是什么?
    • 顶层扩大 (Top Level Extension)
    • 顶层扩大的原理是什么?
    • 类内扩大 (Declaring extensions as members)
    • 扩大函数 + SharedPreferences
    • 扩大函数 + Spannable
  • Kotlin 委托

    • 委托类(Class Delegation)
    • 委托属性(Property Delegation)
    • 自定义委托属性
    • 委托属性 + SharedPreferences
  • 协程“鲜为人知”的调试技巧

    • 协程 JVM 参数
    • Kotlin 1.4 协程调试
  • 图解协程:suspend

    • 线程 & 协程
    • 异步代码 & 回调天堂
    • suspend 的实质
    • CPS 转换
    • 字节码反编译
    • 协程状态机动画演示

点击查看:高级 Kotlin 强化实战(附 Demo)

因为篇幅较长,就临时只展现这些。最初还有耗时一年多整顿的一系列 Android 学习资源:Android 源码解析、Android 第三方库源码笔记、Android 进阶架构师七大专题学习、历年 BAT 面试题解析包、Android 大佬学习笔记 等等,这些内容均收费分享给大家,须要完整版的敌人,点这里能够看到全部内容。

正文完
 0