作品简介

本书详细介绍了Kotlin语言方方面面的特性,包括各种类型的函数,贯彻本书始终的Lambda表达式,有别于Java的委托、泛型,灵活、简洁的DSL,常用的语法糖,相比线程更加轻量级的协程,参考RxJava实现的Flow,等等。本书还提供了大量涉及移动端、服务端甚至桌面端的案例,这些案例都是编者使用Kotlin之后的实践和心得,同时包含很多编者封装的library,供读者参考、借鉴和使用。本书适合有一定Kotlin语法基础的读者使用,尤其适合移动端和服务端的开发人员使用,也可以用作大专院校和培训机构的教学参考

沈哲,现就职于万物新生(爱回收),担任创新中心技术总监,负责AIoT产品相关的研发工作。具有多年的服务端、移动端研发经验,熟悉函数响应式编程,对计算机视觉有一定的研究。曾负责过一款移动端深度链接的产品,日活数千万,该产品已于2019年初以千万级别的交易额卖给极光,后更名为极光魔链。出版著作《RxJava2.x实战》。

易庞宙,Android开源爱好者,RxTask库、全面屏适配库以及一些Android常用开源工具的开发者,CSDN博主。负责过搜床科技集团Android开发,例如xbed、酒店自助入住App开发等,目前就职于广州极飞科技股份有限公司,担任高级Android开发工程师。

作品目录

  • 前言
  • 第1章 认识Kotlin
  • 1.1 Kotlin简介
  • 1.2 Kotlin的发展
  • 1.3 总结
  • 第2章 Kotlin的函数与类
  • 2.1 函数的基本概念
  • 2.2 Kotlin的类(一)
  • 2.3 Kotlin的类(二)
  • 2.4 总结
  • 第3章 Kotlin的函数式编程
  • 3.1 函数式编程与高阶函数
  • 3.2 Lambda表达式
  • 3.3 集合、序列和Java中的流
  • 3.4 总结
  • 第4章 内联函数与扩展函数
  • 4.1 内联函数
  • 4.2 内联属性
  • 4.3 扩展函数
  • 4.4 扩展属性
  • 4.5 总结
  • 第5章 委托
  • 5.1 委托介绍
  • 5.2 Kotlin的委托模式和委托属性
  • 5.3 lateinit和by lazy
  • 5.4 总结
  • 第6章 泛型
  • 6.1 类型擦除
  • 6.2 型变
  • 6.3 泛型约束、类型投影与星号投影
  • 6.4 总结
  • 第7章 元编程
  • 7.1 元编程
  • 7.2 Kotlin反射概述
  • 7.3 Java反射和Kotlin反射(上)
  • 7.4 Java反射和Kotlin反射(下)
  • 7.5 总结
  • 第8章 DSL的构建
  • 8.1 DSL介绍
  • 8.2 构建一个DSL的多种方式
  • 8.3 总结
  • 第9章 常用语法糖与设计模式
  • 9.1 运算符重载
  • 9.2 中缀表达式
  • 9.3 作用域函数
  • 9.4 Contract契约
  • 9.5 在data class中使用MapStruct
  • 9.6 更好地使用设计模式
  • 9.7 总结
  • 第10章 跨平台开发
  • 10.1 跨平台的简单介绍
  • 10.2 利用Ktor-Client实现跨平台网络请求
  • 10.3 总结
  • 第11章 协程及其应用
  • 11.1 协程的基本概念
  • 11.2 Coroutine builders
  • 11.3 挂起函数
  • 11.4 协程的上下文和调度
  • 11.5 协程的作用域CoroutineScope
  • 11.6 Channel机制
  • 11.7 总结
  • 第12章 Flow的基本使用
  • 12.1 Flow的使用
  • 12.2 Flow和RxJava
  • 12.3 Flow的异常处理
  • 12.4 Flow的线程操作
  • 12.5 Flow其他的操作符
  • 12.6 总结
  • 第13章 RxJava的新特性及常用操作符
  • 13.1 RxJava入门
  • 13.2 RxJava 3新特性描述
  • 13.3 常用操作符讲解
  • 13.4 总结
  • 第14章 RxJava的核心机制
  • 14.1 ObservableSource、Observable、Observer的同流合污
  • 14.2 恐怖的Function机制
  • 14.3 线程的决策者Scheduler
  • 14.4 Observeable五兄弟的差异性
  • 14.5 背压策略
  • 14.6 总结
  • 第15章 Jetpack
  • 15.1 Jetpack介绍
  • 15.2 Lifecycle
  • 15.3 ViewModel
  • 15.4 LiveData
  • 15.5 Room的用法
  • 15.6 Navigation用法详解
  • 15.7 总结
  • 第16章 Android实战
  • 16.1 构建一个日志框架
  • 16.2 网络诊断工具
  • 16.3 使用Netty构建一个在Android上运行的Web服务器
  • 16.4 实现协程版本的EventBus
  • 16.5 总结
  • 第17章 响应式开发实战
  • 17.1 封装一个基于RxJava的任务框架RxTask
  • 17.2 基于Kotlin、RxJava实现的有限状态机
  • 17.3 Kotlin、RxJava以及传统的机器学习在手机质检上的应用
  • 17.4 总结
  • 第18章 服务端实战
  • 18.1 使用Ktor快速开发Web项目
  • 18.2 使用WebFlux + R2DBC开发Web项目
  • 18.3 使用NetDiscovery开发网络爬虫
  • 18.4 实现智能硬件的远程控制系统(上)
  • 18.5 实现智能硬件的远程控制系统(下)
  • 18.6 总结
展开全部