前言
Android相关的火热技术最近几年也是频出,没事就在刷屏,我来说说对这些火热技术的看法。
- Kotlin,从知识的半衰期来看,这门语言非常值得学习,不过想要普及还是非常难,因为Kotlin还没有表现出非用它不可的竞争力,另外很多企业使用的成本比较高,大多数领导都是不求有功但求无过,不会下力气推广。
- Flutter,从知识的半衰期来看,这个框架存在的时间相对不会长,目前也就一些有技术储备的公司去试验去尝试,如果自己公司技术储备不够,就贸然当小白鼠显然不是很明智。
kotlin是什么?
- Kotlin 不是一门学问,而是一套工具,它不像Scala,没有那么重的书卷气,一切特性都为实用、简洁而生;
- Kotlin 不是革命者,而是改良者,它不是 Go,没有取天下而代之的野心,只有“让 Java 更好用”的踏实目标,积跬步而至千里;
- Kotlin 不完美,但在不断改善,它不像 Java 被 Oracle 一家把持,不允许任何不受控制的特性出现,Kotlin 的诞生和发展都离不开社区推动,越来越多的新特性正在应开发者呼吁加入其中;
- Kotlin 不会面面俱到,而是以补 Java 的短板为先,Kotlin 不会变成 C++。
为什么要学习kotlin?
- Google发布申明,目前已经有35%的Android专业开发人员使用kotlin(爆发式增长)
- Google与Oracle源于Android的恩怨持续已久,也一直想要找一种语言代替Java
- Java以后要开始收费了,可能导致一部分公司放弃Java
当前已经有许多公司的招聘要求中,要求开发人员需要会kotlin - kotlin的学习成本并不是很高,从Java转kotlin,一般一周时间就足以完成,且kotlin与Java可以相互调用,觉得kotlin解决不了的地方,仍然可以使用Java编写(非常人性化)
- 如果你想要快速找到一份移动开发者的工作,建议学习Kotlin来进行原生的Android开发。
薪资
文章图片
如何学习Kotlin?
当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。这里给大家分享一份阿里大佬推荐的《Kotlin实践高质量笔记》
首先目录乘上:
![阿里亲码“Kotlin深度笔记”,不讲一句废话,全是精华](https://img.it610.com/image/info9/2e559f7d314c4b3fb64a25a468bb7767.jpg)
文章图片
1.准备开始
主要内容:基本语法、习惯用语、编码风格
2.基础
主要内容:基本类型、包、控制流、返回与跳转
![阿里亲码“Kotlin深度笔记”,不讲一句废话,全是精华](https://img.it610.com/image/info9/79686dd013184903ae459ef7194fd024.jpg)
文章图片
3.类和对象
主要内容:类和继承、属性和字段、接口、可见性修饰词、扩展、数据对象、泛型、嵌套类、枚举类、对象表达式和声明、代理模式、代理属性
4.函数和lambda表达式
主要内容:函数、高阶函数与 lambda 表达式
![阿里亲码“Kotlin深度笔记”,不讲一句废话,全是精华](https://img.it610.com/image/info9/6ec8d53f6dd94dce9ccc3ac23574e834.jpg)
文章图片
5.其它
主要内容:多重申明,Ranges,类型检查和自动转换,This表达式,等式,运算符重载,空安全,异常,注解,反射,动态类型
6.互用性
主要内容:动态类型
![阿里亲码“Kotlin深度笔记”,不讲一句废话,全是精华](https://img.it610.com/image/info9/c1252eb24adc494382fa6e3d6dfe1e94.jpg)
文章图片
7.工具
主要内容:使用Maven、使用 Ant、使用 Gradle、使用Griffon
8.FAQ
主要内容:与java对比、与Scala对比
![阿里亲码“Kotlin深度笔记”,不讲一句废话,全是精华](https://img.it610.com/image/info9/0b147b7455664cec9d6faa2665c8e99a.jpg)
文章图片
基础知识掌握之后就是靠实战提升了!
二、高级Kotlin强化实战
照样目录乘上:
![阿里亲码“Kotlin深度笔记”,不讲一句废话,全是精华](https://img.it610.com/image/info9/626debee85a74ba6bea4c8c7cb77b432.jpg)
文章图片
第一章 Kotlin 入门教程
- Kotlin 概述
- Kotlin 特点
- 学习 Kotlin 的意义
- Kotlin 与 Java 比较
- 打印日志
- 定义常量与变量
- null 声明
- 空判断
- 字符串拼接
- 三元表达式
- 多重条件
- 更灵活的 case 语句
- for 循环
- 更方便的集合操作
- 遍历
- 方法定义
- constructor 构造器
- Get Set 构造器
- 操作符
- 换行
- 巧用 Android Studio
- 为已有基于 Java 的 Android 项目添加Kotlin 支持
- 将 Java 文件转成 Kotlin 文件
- 认识 Kotlin 基本类型
- 基本类型代码演练
![阿里亲码“Kotlin深度笔记”,不讲一句废话,全是精华](https://img.it610.com/image/info9/c065fe74a2114bbf98883aa0ca67fe94.jpg)
文章图片
- 走进 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深度笔记”,不讲一句废话,全是精华](https://img.it610.com/image/info9/e88b8e2a498e43078a992cb4d24cb628.jpg)
文章图片
第二章 Kotlin 实战避坑指南
- 方法入参是常量,不可修改
- 不要 Companion 、INSTANCE ?
- Java 重载,在 Kotlin 中怎么巧妙过渡一下?
- Kotlin 中的判空姿势
- Kotlin 复写 Java 父类中的方法
- Kotlin “狠”起来,连TODO 都不放过!
- is、as\` 中的坑
- Kotlin 中的 Property 的理解
- also 关键字
- takeIf 关键字
- 单例模式的写法
![阿里亲码“Kotlin深度笔记”,不讲一句废话,全是精华](https://img.it610.com/image/info9/1926afa2ae9e46f2b3ced25fc30290ce.jpg)
文章图片
第三章 项目实战《Kotlin Jetpack 实战》
- 从一个膜拜大神的 Demo 开始
- 简介
- 工程结构
- Kotlin 写 Gradle 脚本是一种什么体验?
- Kotlin 编写 Gradle 脚本的优势
- 实战前的准备
- 开始重构
- Kotlin DSL 实战--依赖管理
- Kotlin 编程的三重境界
- 前期准备
- 为工程添加 Kotlin 支持
- Kotlin 高阶函数
- 函数类型,高阶函数,Lambda,它们分别是什么?
- 为什么要引入 Lambda 和 高阶函数?
- 带接收者(Receiver)的函数类型:A.(B,C) -> D
- HTML Kotlin DSL 实战
![阿里亲码“Kotlin深度笔记”,不讲一句废话,全是精华](https://img.it610.com/image/info9/4b189d0b3dfd41f99ae6d780a1cf2420.jpg)
文章图片
- 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深度笔记”,不讲一句废话,全是精华](https://img.it610.com/image/info9/23fa9b6262d64244a3250e7f4e5af692.jpg)
文章图片
由于篇幅较长,细节内容比较多,就暂时只展示这些。需要资料可以在评论区扣1免费领取
结尾 【阿里亲码“Kotlin深度笔记”,不讲一句废话,全是精华】对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。本文分享的内容希望对你有帮助。
推荐阅读
- 【Android进阶】kotlin 委托
- 【Android进阶】kotlin委托属性
- 【Android进阶】Kotlin 条件控制
- Kotlin 接口
- 为什么要学Kotlin?Kotlin的未来趋势怎么样(会取代java吗?)
- Android Kotlin Coroutines ktx扩展
- Android Kotlin 协程async
- 有意思,发现Kotlin一个神奇的bug!
- Android Kotlin Exception处理
- 为什么我用kotlin写了一个项目之后就开始后悔了