Kotlin语言为Android移动应用开发带来了极其先进的编程技术和结构。
本书可帮助开发者快速理解Kotlin的原理和技术,并将其应用于生产环境中的移动应用程序开发,或者与现有的Java代码整合。
如果你愿意,也可以将现有代码迁移到Kotlin技术栈。
如果你曾用任何一种语言编写过代码,那么作者精心撰写的概述和示例就能够帮助你快速掌握Kotlin语言,包括其语言构造、先进的函数式和面向对象能力。
在掌握这些语言基础之后,作者将指引读者完成两个完整的应用程序开发,并引入最佳实践和新兴模式,从而帮助开发者写出更健壮、更简洁且更可读的高性能代码。
【本书内容:】
● 理解Kotlin的目标、原则、优势、设计和构造
● 充分利用Kotlin环境中的函数式编程
● 利用Kotlin的面向对象特性编写更简洁、更可复用的代码
● 与现有Java代码互操作,并制定Kotlin迁移计划
● 使用协程来有效地处理并发
● 通过第三方API捕获数据,将其映射到内部数据表现层,再呈现给用户
● 掌握Kotlin Android应用程序架构的最佳实践
● 通过在Kotlin中创建简单的领域特定语言来提高工作效率与可读性
近年来,Kotlin已逐渐成为Android应用程序开发人员的优选语言。
本书通过大量的代码对Kotlin进行了深入浅出的讲解,并通过两个Android应用程序开发来指导读者进行实践,以帮助读者使用Kotlin编写出更健壮、更易维护的Android应用程序。
全书分两部分,共10章。
第一部分(第1~6章)从细节入手讲解Kotlin的语言特性。第1章概述Kotlin,第2章介绍Kotlin的基本语言结构(如控制流、函数和异常),第3章展示Kotlin中如何使用函数式编程以及函数式编程的优点,第4章讲解Kotlin中如何处理面向对象,第5章讨论与Java的互操作性,第6章涵盖以协程为主要内容的并发性。
第二部分(第7~10章)通过完成两个Android应用来将第一部分学到的知识加以实践。第7章和第8章分别介绍使用Kotlin开发一个待办事项应用Kudoo App和一个为使用者提供营养数据的应用Nutrilicious,第9章涵盖综合使用Kotlin的语言特性来创建简单的领域特定语言,第10章为Java迁移到Kotlin提供指导。
本书适合想要学习Kotlin并利用它来开发Android应用程序的所有读者阅读。
★第一部分 学习Kotlin
●第1章 Kotlin简介2
1.1 Kotlin是什么2
1.2 Kotlin的目标和语言特性3
1.3 为什么在Android系统开发中使用Kotlin4
1.3.1 Android中的Java4
1.3.2 Android中的Kotlin5
1.4 Kotlin与Java 85
1.5 支持的工具与社区6
1.6 商业角度6
1.7 谁在使用Kotlin7
1.8 本章小结8
●第2章 走进Kotlin9
2.1 Kotlin REPL交互式编程命令行9
2.2 变量和数据类型10
2.2.1 变量声明10
2.2.2 基本数据类型11
2.2.3 类型推导12
2.3 条件语句13
2.3.1 将if和when作为语句13
2.3.2 条件表达式15
2.4 循环和范围17
2.4.1 while循环17
2.4.2 for循环17
2.5 函数19
2.5.1 函数签名19
2.5.2 单行表达式函数的简写方式20
2.5.3 main函数20
2.5.4 参数默认值和指定参数名称21
2.5.5 扩展函数22
2.5.6 中缀函数24
2.5.7 运算符函数25
2.6 空安全26
2.6.1 可空类型26
2.6.2 可空类型的使用27
2.7 相等性检查29
2.8 异常处理30
2.8.1 异常处理的原则30
2.8.2 Kotlin的异常处理31
2.8.3 Checked异常和Unchecked异常32
2.9 本章小结33
●第3章 Kotlin中的函数式编程34
3.1 函数式编程的目的34
3.2 函数36
3.3 Lambda表达式37
3.4 高阶函数38
3.5 集合的使用41
3.5.1 集合API在Kotlin与Java中的区别42
3.5.2 在Kotlin中实例化集合42
3.5.3 集合的访问和编辑43
3.5.4 过滤集合44
3.5.5 映射集合44
3.5.6 集合分组45
3.5.7 集合关联46
3.5.8 计算最小值、最大值,以及和46
3.5.9 集合排序46
3.5.10 折叠集合47
3.5.11 链式函数调用49
3.6 作用域函数49
3.6.1 let函数的使用49
3.6.2 apply函数的使用50
3.6.3 with函数的使用51
3.6.4 run函数的使用52
3.6.5 also函数的使用54
3.6.6 use函数的使用54
3.6.7 组合高阶函数55
3.6.8 带接收者的Lambda56
3.7 惰性序列57
3.7.1 惰性计算57
3.7.2 使用惰性序列58
3.7.3 惰性序列的性能60
3.8 本章小结62
●第4章 Kotlin中的面向对象63
4.1 类和对象的实例化63
4.2 属性64
4.3 方法73
4.4 主构造函数和次构造函数76
4.5 继承和重写规则78
4.6 类型检查和转换82
4.7 可见性84
4.8 数据类86
4.9 枚举89
4.10 密封类91
4.11 对象和伴生93
4.12 泛型97
4.13 本章小结112
●第5章 与Java的互操作性113
5.1 在Kotlin中使用Java代码113
5.2 在Java中使用Kotlin代码122
5.3 互操作的最佳实践137
5.4 本章小结138
●第6章 Kotlin中的并发140
6.1 并发140
6.1.1 普遍难题142
6.1.2 最先进的解决方案143
6.2 Kotlin中的协程146
6.2.1 引入协程146
6.2.2 基本概念147
6.2.3 挂起函数147
6.2.4 协程构建器150
6.2.5 生成器169
6.2.6 actors和channels171
6.2.7 并发样式178
6.2.8 协程实践178
6.2.9 内部实现183
6.3 本章小结185
★第二部分 使用Kotlin进行Android开发
●第7章 使用Kotlin进行Android应用程序开发:Kudoo App188
7.1 在Android上配置Kotlin188
7.2 编写待办事项列表应用Kudoo192
7.3 本章小结219
●第8章 使用Kotlin进行Android应用程序开发:Nutrilicious221
8.1 新建并配置项目222
8.2 为主页面添加RecyclerView223
8.3 调用Nutrition的API从USDA中拉取数据230
8.4 映射JSON数据和领域类236
8.5 在搜索逻辑中使用ViewModel241
8.6 增加搜索食品功能243
8.7 介绍Fragment I:实现搜索Fragment246
8.8 介绍Fragment II:实现收藏Fragment254
8.9 在Room数据库中存储用户收藏食品数据258
8.10 从USDA食品报告API中拉取营养详情数据265
8.11 集成详情页270
8.12 在数据库中存储食品详情277
8.13 为可操作的数据添加RDI282
8.14 优化用户体验286
8.15 本章小结288
●第9章 Kotlin DSL289
9.1 DSL简介289
9.2 在Kotlin中创建DSL292
9.3 DSL在Android布局中的应用—使用Anko301
9.4 DSL在Gradle构建脚本中的应用308
9.5 本章小结315
●第10章 迁移到Kotlin316
10.1 软件中的移植316
10.2 引领改变317
10.3 部分或整体迁移320
10.4 从何处开始322
10.5 工具支持325
10.6 本章小结327
附录 更多资源329
术语表332
温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录
Sommerhoff采用了一种实用的方式,即通过大量代码清单来讲解Kotlin,展示其语言特性,并一步一步地指导读者开发两个Android应用来熟悉这些特性……本书是一个学习Kotlin编程的有效且易懂的良好途径。
—— Bernhard Rumpe,德国亚琛工业大学软件工程学院教授