目 录
第1章 基础知识 1
1.1 开始Kotlin之旅 1
1.1.1 安装JDK 3
1.1.2 编译Kotlin程序 4
1.1.3 运行第一个Kotlin程序 6
1.1.4 在IDE中工作 8
1.2 Kotlin编程语言基础知识 10
1.2.1 Kotlin知识 10
1.2.2 面向对象程序设计 28
1.3 Kotlin的优点 30
1.4 利用Kotlin开发Android应用程序 31
1.4.1 设置Android Studio 31
1.4.2 构建第一个Android应用程序 34
1.5 Web基础知识 42
1.5.1 Web的含义 42
1.5.2 超文本传输协议 42
1.5.3 客户端和服务器 43
1.5.4 HTTP请求和响应 43
1.5.5 HTTP方法 43
1.6 本章小结 44
第2章 构建Android应用程序—俄罗斯方块游戏 45
2.1 Android概述 45
2.1.1 活动 46
2.1.2 意图 46
2.1.3 意图过滤器 47
2.1.4 片段 47
2.1.5 服务 47
2.1.6 加载器 47
2.1.7 内容提供商 47
2.2 理解俄罗斯方块游戏 48
2.3 创建用户界面 49
2.3.1 ConstraintLayout 51
2.3.2 定义尺寸资源 54
2.3.3 视图 56
2.3.4 视图组 57
2.3.5 定义字符串资源 62
2.3.6 处理输入事件 65
2.3.7 与SharedPreferences协同工作 70
2.3.8 实现游戏活动布局 75
2.4 App清单文件 78
2.4.1
81
2.4.2 81
2.4.3 81
2.4.4 82
2.4.5 83
2.4.6 83
2.5 本章小结 83
第3章 俄罗斯方块游戏的逻辑和功能 84
3.1 实现游戏体验过程 84
3.1.1 图块建模 85
3.1.2 构建应用程序模型 100
3.1.3 创建TetrisView 111
3.2 MVP模式简介 122
3.2.1 MVP的含义 122
3.2.2 MVP实现 123
3.3 本章小结 123
第4章 设计并实现Messenger后端应用程序 124
4.1 设计Messenger API 124
4.1.1 应用程序编程接口 124
4.1.2 REST 125
4.1.3 设计Messenger API系统 125
4.2 实现Messenger后端 128
4.2.1 PostgreSQL 128
4.2.2 创建新的Spring Boot应用程序 129
4.2.3 Spring Boot概述 132
4.2.4 限制API访问 154
4.3 将Messenger API部署至AWS上 173
4.3.1 配置AWS上的PostgreSQL 173
4.3.2 向Amazon Elastic Beanstalk部署Messenger API 176
4.4 本章小结 178
第5章 构建Messenger Android App(第1部分) 180
5.1 开发Messenger App 180
5.1.1 纳入项目依赖关系 180
5.1.2 开发登录UI 182
5.1.3 设计注册UI 209
5.2 本章小结 219
第6章 构建Messenger Android App(第2部分) 220
6.1 创建主UI 220
6.1.1 创建MainView 220
6.1.2 创建MainInteractor 222
6.1.3 创建MainPresenter 225
6.1.4 封装MainView 227
6.1.5 创建MainActivity菜单 238
6.2 创建聊天UI 239
6.2.1 创建聊天布局 239
6.2.2 准备聊天UI模型 241
6.2.3 创建ChatInteractor和ChatPresenter 242
6.3 应用程序设置 249
6.4 Android应用程序测试 259
6.5 执行后台操作 260
6.5.1 AsyncTask 260
6.5.2 IntentService 260
6.6 本章小结 261
第7章 在数据库中存储信息 262
7.1 与内部存储协同工作 262
7.1.1 向内部存储中写入文件 262
7.1.2 从内部存储中读取私有文件 263
7.1.3 基于内部存储的示例程序 263
7.1.4 保存缓存文件 277
7.2 与外部存储协同工作 277
7.2.1 获得外部存储许可 277
7.2.2 媒介的有效性 278
7.2.3 存储共享文件 279
7.2.4 利用外部存储缓存文件 279
7.3 网络存储 279
7.4 与内容提供商协同工作 295
7.5 本章小结 306
第8章 Android App的安全和部署 307
8.1 Android应用程序安全 307
8.1.1 内部存储 307
8.1.2 网络安全 308
8.1.3 输入验证 309
8.1.4 与用户凭证协同工作 309
8.1.5 代码混淆技术 309
8.1.6 广播接收器的安全性 309
8.1.7 动态加载代码 309
8.1.8 服务的安全性 310
8.2 启用和发布Android应用程序 310
8.2.1 理解Android开发者程序策略 311
8.2.2 设置Android开发者账号 311
8.2.3 本地化规划 311
8.2.4 规划同步版本 311
8.2.5 根据质量标准进行测试 311
8.2.6 构建可发布的APK 312
8.2.7 规划应用程序的Play Store列表 312
8.2.8 将应用程序包上传至alpha或beta测试 312
8.2.9 设备兼容性定义 312
8.2.10 启用前报告评估 312
8.2.11 定价和应用程序分发配置 312
8.2.12 分发选项的选取 313
8.2.13 应用程序内产品和订阅设置 313
8.2.14 制定应用程序内容评级 313
8.2.15 发布应用程序 313
8.2.16 发布Android应用程序 320
8.3 本章小结 324
第9章 创建Place Reviewer后台应用程序 325
9.1 MVC设计模式 325
9.1.1 模型 325
9.1.2 视图 325
9.1.3 控制器 326
9.2 设计并实现Place Reviewer后台程序 326
9.2.1 用例标识 326
9.2.2 标识数据 327
9.2.3 设置数据库 327
9.2.4 实现后台应用程序 328
9.2.5 将后台程序连接至Postgres 330
9.2.6 创建模型 330
9.2.7 创建数据存储库 333
9.2.8 Place Reviewer业务逻辑实现 334
9.2.9 Place Reviewer后台应用程序的安全问题 336
9.2.10 基于Spring MVC的Web内容服务 340
9.3 利用ELK管理Spring应用程序日志 343
9.3.1 利用Spring生成日志 343
9.3.2 安装Elasticsearch 343
9.3.3 安装Kibana 345
9.3.4 Logstash 346
9.3.5 配置Kibana 347
9.4 本章小结 349
第10章 实现Place Reviewer前端 350
10.1 利用Thymeleaf生成视图 350
10.1.1 实现用户注册视图 351
10.1.2 实现登录视图 365
10.1.3 Google Places API Web服务 369
10.1.4 实现主视图 371
10.1.5 生成评论 382
10.2 Spring应用程序测试 395
10.2.1 添加测试依赖关系 395
10.2.2 定义配置类 396
10.2.3 利用自定义配置设置配置类 396
10.2.4 编写第一个测试程序 397
10.3 本章小结 400
后记 401