3本向治洪作品全3册 WEEX跨平台开发实战+React Native移动开发实战pdf下载

3本向治洪作品全3册 WEEX跨平台开发实战+React Native移动开发实战百度网盘pdf下载

作者:
简介:3本向治洪作品全3册 WEEX跨平台开发实战+React Native移动开发实战
出版社:
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍



9787000049737


9787121368950+9787115498762+9787115470966


√ 基于Vue.js的高性能、轻量级跨平台开发框架;

√ 由开源,并捐赠给Apache基金会进行孵化的项目;

√ 全面讲解WEEX框架的各个知识点,并辅以大量案例进行说明,使读者轻松掌握WEEX知识,并应用于实际工作;

√ 本书为读者建立了共读群,方便与作者直接进行交流;

√ 本书适合所有对移动跨平台开发感兴趣及正在致力于移动跨平台开发工作的读者阅读。


近年来,伴随着大前端和移动跨平台技术的兴起,移动应用的开发手段越来越多,常见的移动跨平台技术有React Native、WEEX和Flutter等。WEEX是由研发的一套移动跨平台技术框架,目的是解决移动应用开发过程中频繁发版和多端研发的问题。

《WEEX跨平台开发实战》是一本介绍WEEX跨平台应用开发的书籍,涵盖了WEEX开发的方方面面,主要由基础知识、应用开发和项目实战三部分组成。一部分重点介绍WEEX开发的基础知识,后两部分则重点介绍WEEX开发的进阶知识和项目实战。

《WEEX跨平台开发实战》是一本WEEX入门与实战类书籍,适合有一定前端开发基础或者移动端开发基础的读者阅读。因此,无论你是前端开发者,还是移动端开发者,都可以通过对本书的学习来掌握移动跨平台应用开发的技能。




向治洪,《React Native移动开发实战》和《Kotlin入门与实战》作者,具有多年的移动客户端和前端软件开发经验,热爱大前端技术。同时,作为国内的互联网基础应用建设专家、开源技术贡献者和敏捷开发实践者,在软件开发领域,特别是大前端领域有自己独到的见解。



目录

1章  WEEX简介 1

1.1 WEEX简介 1

1.1.1 原生平台与Web平台的差异 1

1.1.2 设计理念 2

1.1.3 WEEX工作原理 3

1.2 移动跨平台技术剖析 4

1.2.1 React Native 5

1.2.2 Flutter 6

1.2.3 PWA 8

1.2.4 对比与分析 8

1.3 本章小结 9

2章  WEEX快速入门 10

2.1 安装与配置WEEX 10

2.1.1 安装依赖 10

2.1.2 创建项目 12

2.1.3 开发与运行项目 13

2.1.4 集成到iOS 16

2.1.5 集成到Android 20

2.1.6 WEEX语法插件 22

2.2  在WEEX中使用Vue.js 25

2.2.1  与Web平台的异同 25

2.2.2  单文件组件 26

2.2.3  WEEX支持的Vue.js功能 27

2.3 WEEX调试 29

2.3.1 weex-toolkit简介 29

2.3.2 weex-devtool远程调试 32

2.3.3 集成weex-devtool到iOS 35

2.3.4 集成weex-devtool到Android 37

2.4 本章小结 42

3章  WEEX基础知识 43

3.1 基本概念 43

3.1.1 组件 43

3.1.2 模块 44

3.1.3 适配器 45

3.2 样式 46

3.2.1 盒模型 46

3.2.2 弹性布局 49

3.2.3 定位属性 57

3.2.4 2D转换 59

3.2.5 过渡 60

3.2.6 伪类 62

3.2.7 线性渐变 63

3.2.8 文本样式 66

3.3 事件 66

3.3.1 通用事件 66

3.3.2 事件冒泡 69

3.3.3 手势 70

3.4 扩展 71

3.4.1 HTML5扩展 71

3.4.2 Android扩展 73

3.4.3 iOS扩展 76

3.4.4 iOS扩展兼容Swift 79

3.5 本章小结 81

4章  组件与模块 82

4.1 内置组件 82

4.1.1 

组件 82

4.1.2 组件 84

4.1.3 组件 85

4.1.4 组件 86

4.1.5 组件 87

4.1.6 组件 91

4.1.7 

4.1.8 组件 97

4.2 内置模块 100

4.2.1 DOM模块 100

4.2.2 steam模块 102

4.2.3 modal模块 103

4.2.4 animation模块 105

4.2.5 navigator模块 107

4.2.6 storage模块 108

4.3 Weex Ui详解 110

4.3.1 Weex Ui简介 110

4.3.2 组件 111

4.3.3 组件 113

4.3.4 组件 117

4.3.5 组件 119

4.3.6 组件 121

4.4 本章小结 123

5章  Rax框架详解 124

5.1  Rax简介 124

5.2  Rax快速入门 125

5.2.1  搭建环境 125

5.2.2  基本概念 127

5.2.3  FlexBox与样式 128

5.2.4  事件处理 129

5.2.5  网络请求 131

5.3  Rax组件 133

5.3.1  组件 133

5.3.2  组件 134

5.3.3  组件 136

5.3.4  组件 139

5.3.5  组件 143

5.3.6  组件 146

5.3.7  组件 148

5.4  本章小结 150

6章  Vue.js框架详解 151

6.1  Vue.js简介 151

6.2  Vue.js快速入门 152

6.2.1  搭建环境 152

6.2.2  Vue.js项目的目录结构 154

6.2.3  Vue.js实例 155

6.2.4  模板 156

6.2.5  数据 157

6.2.6  方法 158

6.2.7  生命周期 159

6.3  基础特性 162

6.3.1  数据绑定 162

6.3.2  模板渲染 163

6.3.3  事件处理 166

6.4  指令 169

6.4.1  v-bind指令 169

6.4.2  v-model指令 170

6.4.3  v-on指令 172

6.4.4  v-cloak指令 174

6.4.5  v-once指令 174

6.4.6  自定义指令 174

6.5  过滤器 178

6.5.1  过滤器注册 178

6.5.2  自定义过滤器 178

6.5.3  过滤器串联 179

6.6  Vue.js组件 180

6.6.1  组件基础 180

6.6.2  组件扩展 181

6.6.3  组件注册 181

6.6.4  组件选项 183

6.6.5  组件通信 185

6.6.6  动态组件 187

6.6.7  缓存组件 188

6.6.8  异步组件 189

6.7  vue -router 191

6.7.1  安装与配置 191

6.7.2  基本用法 192

6.7.3  路由匹配 193

6.7.4  嵌套路由 194

6.7.5  命名路由 196

6.7.6  路由对象 197

6.7.7  路由属性与方法 197

6.7.8  路由传参 199

6.8  本章小结 200

7章  BindingX框架 201

7.1  BindingX简介 201

7.1.1  基本概念 201

7.1.2  背景 202

7.2  BindingX框架快速上手 203

7.2.1  快速入门 203

7.2.2  手势 204

7.2.3  动画 208

7.2.4  滚动 211

7.2.5  陀螺仪 213

7.3  API 215

7.3.1  事件类型 215

7.3.2  表达式 217

7.3.3  目标属性 217

7.3.4  插值器 218

7.3.5  颜色函数 218

7.4  本章小结 219

8章  WEEX Eros App开发实战 220

8.1  WEEX Eros简介 220

8.2  快速入门 220

8.2.1  搭建环境 221

8.2.2  创建工程 221

8.2.3  运行项目 222

8.2.4  Eros示例 225

8.2.5  工程配置 227

8.2.6  开发调试 231

8.2.7  增量发布 232

8.3  组件 232

8.3.1  globalEvent 232

8.3.2  Axios 233

8.3.3  Router 236

8.3.4  storage 239

8.3.5  event 242

8.3.6  image 244

8.3.7  notice 245

8.3.8  自定义组件 247

8.4  模块 248

8.4.1  模块概念 248

8.4.2  bmEvents 249

8.4.3  bmWebSocket 250

8.4.4  bmBundleUpdate 253

8.5  开发配置 253

8.5.1  Android原生配置 254

8.5.2  Android打包配置 255

8.5.3  iOS原生配置 257

8.5.4  iOS打包配置 258

8.6  插件 260

8.6.1  Android插件化 260

8.6.2  iOS插件化 261

8.6.3  基础插件 265

8.6.4  微信插件 266

8.6.5  高德插件 269

8.7  热更新 272

8.7.1  热更新原理 272

8.7.2  热更新配置 273

8.7.3  热更新实战 275

8.8  本章小结 278

9章  移动电商应用开发实战 279

9.1  项目概述 279

9.2  搭建项目 279

9.2.1  新建项目 279

9.2.2  编写主框架 280


蓝墨水图书专营店


React Native移动开发实战


本书全面详尽地介绍了React Native框架的方方面面,内容涵盖React Native基础知识、环境搭建与调试、开发基础、常用组件、常用API、组件封装、网络与通信、混合开发、热更新与打包部署,以及两个实际案例的完整开发教程。这些丰富的内容不仅能让读者了解这款框架中涉及的各类概念,还能指导读者开发实践。

 

本书语言简洁,内容丰富,适合有一定Android、iOS原生开发基础和CSS基础的移动开发工程师学习。

目录

第 1章 React Native入门 

1.1 React Native基本知识 1 

1.1.1 React简介 1 

1.1.2 React Native简介 4 

1.1.3 React Native工作原理 5 

1.2 React Native与其他跨平台技术的 

对比优势 6 

1.2.1 Web流 7 

1.2.2 代码转换流 7 

1.2.3 编译流 8 

1.2.4 虚拟机流 10 

1.3 小结 11 

第 2章 React Native环境搭建与调试 

2.1 React Native环境搭建 12 

2.1.1 Mac环境下搭建React Native 12 

2.1.2 React Native开发IDE 15 

2.1.3 创建React Native项目 16 

2.1.4 运行React Native项目 17 

2.1.5 iOS环境 18 

2.1.6 Android环境 19 

2.1.7 Windows环境下搭建React Native 22 

2.2 React Native 项目结构剖析 22 

2.2.1 React Native文件结构 22 

2.2.2 iOS文件结构及代码分析 23 

2.2.3 Android文件结构及代码分析 24 

2.3 React Native开发IDE介绍 26 

2.3.1 Atom+Nuclide 26 

2.3.2 WebStrom 29 

2.4 React Native调试技巧 30 

2.4.1 调试技巧 30 

2.4.2 React Native调试 33 

2.5 React Native代码测试 36 

2.5.1 使用Flow进行类型检查 36 

2.5.2 使用Jest测试 37 

2.5.3 集成测试 37 

2.6 小结 38 

第3章 React Native开发基础 

3.1 FlexBox布局 39 

3.1.1 FlexBox简介 39 

3.1.2 FlexBox布局模型 40 

3.1.3 FlexBox布局属性 41 

3.1.4 FlexBox伸缩项目属性 45 

3.1.5 FlexBox在React Native中的应用 47 

3.1.6 FlexBox综合实例 48 

3.2 ES6语法基础 50 

3.2.1 组件的导入与导出 51 

3.2.2 类 52 

3.2.3 状态变量 53 

3.2.4 回调函数 54 

3.2.5 参数 55 

3.2.6 箭头操作符 57 

3.2.7 Symbol 57 

3.2.8 解构 58 

3.3 React JSX 60 

3.3.1 JSX入门 60 

3.3.2 JSX语法 61 

3.4 样式 64 

3.4.1 申明与操作样式 64 

3.4.2 样式分类 64 

3.4.3 样式使用 66 

3.4.4 样式传递 67 

3.5 手势与触摸事件 68 

3.5.1 触摸事件 68 

3.5.2 手势响应 70 

3.5.3 辅助功能 74 

3.6 小结 77 

第4章 常用组件介绍 

4.1 HTML元素与原生组件 78 

4.1.1 文本组件 79 

4.1.2 图片组件 80 

4.1.3 TextInput组件 82 

4.1.4 ScrollView组件 87 

4.2 结构化组件 92 

4.2.1 View组件 92 

4.2.2 ListView组件 94 

4.2.3 Navigator组件 101 

4.2.4 WebView组件 106 

4.3 平台特定组件 109 

4.3.1 TabBarIOS和TabBarIOS.Item 

组件 109 

4.3.2 ToolbarAndroid组件 113 

4.3.3 SegmentedControlIOS组件 115 

4.3.4 ViewPagerAndroid组件 117 

4.4 Touchable系列组件 119 

4.4.1 TouchableWithoutFeedback 120 

4.4.2 TouchableHighlight 120 

4.4.3 TouchableOpacity 122 

4.4.4 TouchableNativeFeedback 122 

4.5 小结 123 

第5章 常用API介绍 

5.1 AppRegistry 124 

5.2 StyleSheet 126 

5.3 AppState 128 

5.4 AsyncStorage 129 

5.5 PixelRatio 132 

5.6 Animated 133 

5.7 Geolocation 142 

5.8 NetInfo 144 

5.8.1 获取网络状态 144 

5.8.2 网络状态 145 

5.8.3 判断网络是否连接 146 

5.9 小结 146 

第6章 组件封装 

6.1 组件的生命周期 147 

6.2 第三方库 150 

6.2.1 react-navigation 150 

6.2.2 react-native-tab-navigator 153 

6.2.3 react-native-scrollable-tab-view 157 

6.2.4 react-native-image-picker 161 

6.2.5 Mobx 166 

6.2.6 react-native-art 172 

6.3 自定义组件 177 

6.3.1 组件的导出导入 177 

6.3.2 TabbarView封装 178 

6.3.3 九宫格布局封装 181 

6.3.4 下拉刷新组件封装 185 

6.4 小结 192 

第7章 网络与通信 

7.1 通信机制 193 

7.1.1 React Native与Android通信 194 

7.1.2 React Native与iOS通信 208 

7.2 Promise 机制 210 

7.2.1 Promise 简介 210 

7.2.2 Promises基本用法 213 

7.2.3 在React Native中使用AJAX技术 214 

7.3 网络请求 216 

7.3.1 XMLHttpRequest请求 216 

7.3.2 fetch请求 218 

7.4 小结 223 

第8章 混合开发高 级篇 

8.1 React Native调用iOS原生组件 224 

8.1.1 React Native链接原生库 225 

8.1.2 React Native调用Objective-C创建的 

原生组件 227 

8.2 React Native调用Android原生组件 233 

8.2.1 编写原生UI组件 233 

8.2.2 编写端实现 236 

8.3 小结 238 

第9章 热更新与打包部署 

9.1 iOS应用打包 239 

9.1.1 iOS应用配置 240 

9.1.2 打包离线Bundle 242 

9.1.3 设置发布Scheme 243 

9.1.4 发布应用 243 

9.2 Android应用打包 244 

9.2.1 打包离线Bundle 244 

9.2.2 生成签名密钥 245 

9.2.3 生成签名apk 246 

9.3 热更新 248 

9.3.1 热更新原理 249 

9.3.2 热更新配置 249 

9.3.3 登录与创建应用 252 

9.3.4 添加热更新功能 253 

9.3.5 发布热更新版本 256 

9.4 小结 257 

第 10章 基于LBS的天气预报应用开发 

10.1 需求分析与确定 258 

10.1.1 需求分析 258 

10.1.2 需求确定 260 

10.1.3 整体功能分析 260 

10.1.4 技术与架构分析 261 

10.2 项目设计 261 

10.3 程序入口与工具模块 263 

10.3.1 程序入口 263 

10.3.2 数据模型定义与数据解析 266 

10.3.3 数据存储 271 

10.3.4 工具类 273 

10.4 模块开发 275 

10.4.1 组件封装 276 

10.4.2 天气预报页面开发 276 

10.4.3 Navigation导航 285 

10.5 运行结果 286 

第 11章 O2O移动团购应用 

11.1 需求分析 288 

11.1.1 需求分析 288 

11.1.2 功能分析 289 

11.2 应用设计 291 

11.2.1 模块划分 291 

11.2.3 添加第三方库 292 

11.3 项目搭建与工具模块开发 293 

11.3.1 程序入口 293 

11.3.2 搭建主框架 294 

11.3.3 导航栏封装 298 

11.3.4 WebView封装 303 

11.3.5 字体样式工具类 306 

11.4 功能开发 307 

11.4.1 分类导航入口开发 307 

11.4.2 专题活动开发 309 

11.4.3 商品列表开发 311 

11.4.4 详情页面开发 313 

11.4.5 Modal分享弹窗开发 318 

11.5 完成开发 322 

11.5.1 添加闪屏页 322 

11.5.2  修改应用图标和名称 324 

11.6 小结 325

Kotlin入门与实战


《Kotlin入门与实战》从Kotlin的发展史讲起,将理论知识和项目实例相结合,全面介绍Kotlin的基础与应用。通过阅读本书,读者可以迅速掌握Kotlin的基本操作,轻松应对使用Java开发所带来的技术难题。

 

《Kotlin入门与实战》内容共分为18章,由Kotlin入门与基础、Kotlin语法和Kotlin项目实例3个部分组成。部分(第1~3章)主要介绍了Kotlin的发展、Kotlin开发环境搭建、JVM语系和Kotlin各版本的重要特性。第二部分(第4~16章)详细解析Kotlin的基础语法。第三部分(第17、18章)集中演示了基础知识的实战运用。

 

《Kotlin入门与实战》适合前端开发人员、Android/iOS开发人员以及Java从业人员阅读。

目录

第 一部分 Kotlin入门与基础 

第 1章 Kotlin简介 1 

1.1 Kotlin发展史 1 

1.2 面向对象编程概述 3 

1.2.1 面向过程编程 3 

1.2.2 面向对象编程 4 

1.3 Java虚拟机 5 

1.3.1 JVM语系生态 5 

1.3.2 Java虚拟机概述 7 

1.3.3 Kotlin应用程序运行过程 7 

1.4 为什么使用Kotlin 8 

1.5 Kotlin与Java的比较 11 

1.6 小结 12 

第 2章 Kotlin初体验 13 

2.1 Kotlin在线运行 13 

2.2 Kotlin 1.1特性 15 

2.2.1 全面支持 15 

2.2.2 JVM新特性 16 

2.2.3 协程 17 

2.2.4 标准库 19 

2.3 Kotlin 1.2新特性 20 

2.3.1 多平台支持 21 

2.3.2 多平台环境搭建 21 

2.3.3 特定平台声明 24 

2.3.4 标准库支持 25 

2.3.5 JVM特性 27 

2.3.6 特性支持 28 

2.4 小结 29 

第3章 Kotlin快速入门 30 

3.1 在Mac上搭建Kotlin开发环境 30 

3.1.1 安装与配置JDK环境 30 

3.1.2 安装与配置IDE 33 

3.2 Kotlin开发IDE介绍 36 

3.2.1 IntelliJ IDEA开发环境 36 

3.2.2 Android Studio集成开发环境 38 

3.3 Kotlin的编译与运行 42 

3.3.1 命令行方式编译运行Kotlin 42 

3.3.2 运行Kotlin REPL 44 

3.3.3 在浏览器中运行Kotlin 45 

3.3.4 在Node.js中运行Kotlin 47 

3.4 Kotlin构建方式 48 

3.4.1 使用Gradle方式构建Kotlin 48 

3.4.2 使用Maven方式构建Kotlin 50 

3.4.3 使用Ant方式构建Kotlin 51 

3.4.4 Kotlin与OSGi 52 

3.4.5 Kotlin与Kapt 53 

3.5 编译器插件 55 

3.5.1 全开放编译插件 55 

3.5.2 无参编译器插件 56 

3.6 小结 58 

第二部分 Kotlin语法 

第4章 Kotlin语法基础 59 

4.1 Kotlin编程风格 59 

4.2 变量与属性 61 

4.2.1 变量声明 61 

4.2.2 getter和setter 63 

4.2.3 访问权限 65 

4.3 基本数据类型 66 

4.3.1 数值类型 66 

4.3.2 字符类型 68 

4.3.3 布尔类型 69 

4.3.4 数组类型 69 

4.3.5 字符串 70 

4.4 包声明与使用 72 

4.5 流程控制语句 75 

4.5.1 if条件语句 75 

4.5.2 when语句 76 

4.5.3 for循环 78 

4.5.4 while循环 79 

4.5.5 返回与跳转 79 

4.6 Kotlin运算符 80 

4.6.1 赋值运算符 80 

4.6.2 算数运算符 81 

4.6.3 关系运算符 81 

4.6.4 逻辑运算符 82 

4.6.5 区间运算符 82 

4.6.6 运算符优先级 83 

4.7 运算符重载 84 

4.7.1 一元运算符 85 

4.7.2 二元运算符 86 

4.7.3 位运算符 88 

4.8 Kotlin操作符 88 

4.8.1 冒号操作符 88 

4.8.2 @操作符 89 

4.8.3 $操作符 90 

4.8.4 安全转换操作符 90 

4.8.5 类型判断操作符 90 

4.9 Kotlin动态类型 91 

4.10 Kotlin空安全 92 

4.10.1 可空类型与不可空类型 92 

4.10.2 判空操作符 93 

4.10.3 Elvis操作符 94 

4.10.4 强校验操作符 94 

4.10.5 安全的类型转换 95 

4.10.6 可空类型集合 95 

4.11 异常处理 95 

4.11.1 异常类 95 

4.11.2 自定义异常 96 

4.11.3 try表达式 97 

4.11.4 throw表达式 97 

4.11.5 受检异常 97 

4.12 小结 98 

第5章 类与接口 99 

5.1 类 99 

5.1.1 类的声明 99 

5.1.2 构造函数 101 

5.1.3 类的实例 102 

5.2 继承 103 

5.3 抽象类 106 

5.4 接口 108 

5.5 小结 110 

第6章 扩展函数与属性 111 

6.1 枚举 111 

6.1.1 基本用法 111 

6.1.2 枚举类扩展 112 

6.2 扩展 114 

6.2.1 扩展的动机 114 

6.2.2 扩展原生函数 114 

6.2.3 静态解析 115 

6.2.4 扩展属性 116 

6.2.5 扩展伴生对象 117 

6.2.6 扩展的作用域 117 

6.2.7 类中声明扩展 118 

6.3 this表达式 120 

6.4 小结 121 

第7章 数据类与密封类 122 

7.1 数据类 122 

7.1.1 对象复制 123 

7.1.2 序列化 124 

7.1.3 成员解构 125 

7.2 密封类 127 

7.3 小结 128 

第8章 集合与泛型 129 

8.1 集合 129 

8.1.1 集 129 

8.1.2 列表 130 

8.1.3 映射 132 

8.2 泛型 133 

8.2.1 泛型基础 133 

8.2.2 型变 134 

8.2.3 声明处型变 135 

8.2.4 类型投影 136 

8.2.5 星号投影 138 

8.2.6 泛型函数 138 

8.2.7 泛型约束 139 

8.3 小结 139 

第9章 对象与委托 140 

9.1 对象 140 

9.1.1 对象表达式 140 

9.1.2 对象声明 142 

9.1.3 伴生对象 143 

9.2 委托 144 

9.2.1 类委托 144 

9.2.2 委托属性 145 

9.3 标准委托 146 

9.3.1 属性 146 

9.3.2 可观察属性 147 

9.3.3 Map委托 148 

9.3.4 Not Null 149 

9.3.5 局部委托属性 150 

9.3.6 提供委托 151 

9.4 小结 152 

第 10章 反射与注解 153 

10.1 反射 153 

10.1.1 类引用 154 

10.1.2 类成员引用 154 

10.1.3 函数引用 155 

10.1.4 属性引用 156 

10.1.5 构造函数引用 157 

10.1.6 KClass反射 158 

10.1.7 对象序列化 161 

10.2 注解 162 

10.2.1 注解声明 162 

10.2.2 注解使用 163 

10.2.3 注解类的构造函数 165 

10.2.4 注解使用场景目标 166 

10.2.5 与Java注解互调 167 

10.2.6 注解分类 168 

10.2.7 注解的生命周期 169 

10.3 小结 169 

第 11章 函数与Lambda表达式 170 

11.1 函数 170 

11.1.1 函数基本用法 170 

11.1.2 中缀表示法 171 

11.1.3 函数参数 171 

11.1.4 函数作用域 173 

11.1.5 函数返回值 174 

11.1.6 尾递归函数 175 

11.2 高阶函数 175 

11.2.1 高阶函数基本用法 175 

11.2.2 标准高阶函数 177 

11.3 内联函数 179 

11.3.1 内联Lambda表达式 179 

11.3.2 内联函数声明 180 

11.3.3 非局部返回 181 

11.3.4 实例化类型参数 182 

11.3.5 内联属性 183 

11.4 Lambda表达式与匿名函数 183 

11.4.1 Lambda表达式语法 184 

11.4.2 函数类型 185 

11.4.3 匿名函数 185 

11.4.4 闭包 186 

11.4.5 函数显式声明 186 

11.5 小结 187 

第 12章 协程 188 

12.1 协程简介 188 

12.1.1 协程与线程 188 

12.1.2 使用协程的好处 189 

12.2 协程开发环境 190 

12.2.1 Gradle构建方式 190 

12.2.2 Maven构建方式 191 

12.3 协程基础 192 

12.3.1 launch函数 192 

12.3.2 共享线程池 193 

12.3.3 阻塞与挂起 193 

12.3.4 runBlocking函数 194 

12.3.5 协程取消 195 

12.3.6 协程超时 195 

12.3.7 标准API 196 

12.4 挂起函数 197 

12.4.1 默认顺序执行 198 

12.4.2 异步并发执行 198 

12.4.3 异步样式函数 200 

12.5 协程上下文与调度器 201 

12.5.1 协程调度与线程 201 

12.5.2 非限制与限制协程 202 

12.5.3 协程与线程调试 203 

12.5.4 协程中的子协程 203 

12.6 通道 204 

12.6.1 通道基础 204 

12.6.2 通道的关闭与迭代 205 

12.6.3 通道生产者 206 

12.7 管道 206 

12.7.1 管道生产与消费 206 

12.7.2 管道与质数 207 

12.7.3 多接收者协程 208 

12.7.4 通道缓存 209 

12.8 小结 210 

第 13章 I/O操作与多线程 211 

13.1 Kotlin流层次 211 

13.1.1 字节输入流 212 

13.1.2 字节输出流 213 

13.1.3 字符输入流 214 

13.1.4 字符输出流 215 

13.1.5 字符流与字节流转换 216 

13.2 文件I/O操作 216 

13.2.1 文件读取 217 

13.2.2 文件写入 217 

13.2.3 文件遍历 218 

13.3 网络I/O操作 219 

13.4 多线程 219 

13.4.1 线程创建 220 

13.4.2 线程同步 220 

13.5 小结 221 

第 14章 Kotlin DSL 222 

14.1 DSL简介 222 

14.1.1 DSL的设计与实现 222 

14.1.2 DSL分类 223 

14.2 DSL语义模型 223 

14.2.1 依赖网络 224 

14.2.2 产生式规则 224 

14.2.3 状态机 224 

14.3 Kotlin的DSL特性 225 

14.4 使用kotlinx.html创建DSL 226 

14.4.1 Maven构建方式 227 

14.4.2 Gradle构建方式 228 

14.4.3 kotlinx.html实例 229 

14.5 Android Gradle指南 233 

14.5.1 链式命令 233 

14.5.2 委托 234 

14.6 使用Kotlin与Anko进行Android开发 235 

14.6.1 Anko简介 235 

14.6.2 Anko核心组件与工具 236 

14.6.3 Anko使用实例 238 

14.7 小结 242 

第 15章 Kotlin互操作 243 

15.1 Kotlin与Java互操作 243 

15.1.1 在Kotlin中调用Java 243 

15.1.2 在Java中调用Kotlin 251 

15.1.3 JSR-305支持 257 

15.2 Kotlin与互操作 261 

15.2.1 在Kotlin中调用 261 

15.2.2 在中调用Kotlin 264 

15.2.3 模块 266 

15.2.4 反射 269 

15.2.5  DCE 270 

15.3 小结 271 

第 16章 Kotlin Native开发 272 

16.1 Kotlin Native 272 

16.1.1 Kotlin Native简介 272 

16.1.2 Kotlin Native编译器 273 

16.1.3 编译器konan 274 

16.2 Kotlin Native实例 275 

16.2.1 构建Kotlin Native项目 275 

16.2.2 添加konan插件配置 276 

16.2.3 编写源代码 277 

16.2.4 添加konanInterop与konanArtifacts配置 278 

16.2.5 编译与执行 279 

16.2.6 用命令行方式编译Kotlin Native 280 

16.3 使用Kotlin Native开发iOS应用 281 

16.3.1 创建Kotlin Native项目 281 

16.3.2 Kotlin Native测试 284 

16.4 小结 286 

第三部分 Kotlin项目实例 

第 17章 使用Kotlin与Spring Boot开发服务端 287 

17.1 Spring Boot环境搭建 287 

17.1.1 Spring Boot简介 287 

17.1.2 创建Spring Boot应用程序 288 

17.1.3 启动Spring Boot应用程序 292 

17.1.4 应用测试 293 

17.1.5 properties配置文件 296 

17.2 Spring Boot之Thymeleaf模板 298 

17.3 使用Swagger构建RESTful API 301 

17.4 Spring Boot通过MyBatis整合MySQL数据库 304 

17.5 Spring Boot整合Redis数据库 308 

17.5.1 Redis简介 308 

17.5.2 Spring Boot整合Redis 310 

17.6 Spring Boot整合Elasticsearch 313 

17.6.1 Elasticsearch简介 313 

17.6.2 Spring Boot整合Elasticsearch 315 

17.7 Spring Boot集成RabbitMQ 319 

17.7.1 RabbitMQ简介 319 

17.7.2 Spring Boot集成RabbitMQ 321 

17.8 Spring Boot热部署与日志管理 323 

17.9 Spring Framework 5.0对Kotlin的支持 326 

17.9.1 函数式Bean注册方式 326 

17.9.2 使用Kotlin调用Spring Web的功能性API 326 

17.9.3 RestTemplate与函数式API扩展 327 

17.9.4 Reactor的Kotlin扩展 327 

17.9.5 基于模板的Kotlin脚本 327 

17.10 小结 328 

第 18章 使用Kotlin开发Android视频应用 329 

18.1 项目概述 329 

18.2 浅谈Android开发架构模式 329 

18.2.1 MVC 331 

18.2.2 MVP 331 

18.2.3 MVVM 332 

18.3 项目准备 333 

18.3.1 新建Android项目 333 

18.3.2 添加项目库依赖 334 

18.3.3 编写主页面 335 

18.3.4 Android 6.0权限适配 338 

18.3.5 GSYVideoPlayer播放器简介 340 

18.4 项目开发 341 

18.4.1 基础类封装 341 

18.4.2 Retrofit封装 344 

18.4.3 自定义状态控制控件 345 

18.4.4 首页模块开发 348 

18.4.5 视频详情页面开发 352 

18.4.6 搜索功能的实现 355 

18.5 小结 357


^_^:ce19115b8920e45b491e20b5cee794dd