新書推薦:
《
小时光 油画棒慢绘零基础教程
》
售價:HK$
88.5
《
可控性混乱
》
售價:HK$
66.1
《
篡魏:司马懿和他的夺权同盟
》
售價:HK$
65.0
《
狂飙年代:18世纪俄国的新文化和旧文化(第三卷)
》
售價:HK$
177.0
《
协和专家大医说:医话肿瘤
》
售價:HK$
109.8
《
潜水指南 全彩图解第4版
》
售價:HK$
132.2
《
超大规模集成电路设计——从工具到实例
》
售價:HK$
88.5
《
村上春树·旅(一本充满村上元素的旅行指南,带你寻访电影《挪威的森林》拍摄地,全彩印刷;200余幅摄影作品)
》
售價:HK$
66.1
|
編輯推薦: |
本书围绕3个难度不同的小型项目展开,涉及前端开发、后端开发、数据库操作、应用程序的安全和部署、微服务、响应式开发等。内容细致、全面,涵盖了Kotlin语言的主要特征;实例充分体现了Kotlin语言的*内容,且极具开发价值;引领读者投入至项目开发中,并感受Kotlin语言的强大功能!
|
內容簡介: |
本书详细阐述了与Kotlin开发相关的基本解决方案,主要包括俄罗斯方块游戏、设计并实现Messenger后端应用程序、在数据库中存储信息、Android App的安全和部署、Place Reviewer后台应用程序、Place Reviewer前端设计等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
|
目錄:
|
目 录
第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
|
內容試閱:
|
前 言
自Google宣布Kotlin为官方支持的Android语言以来,该语言的受欢迎程度大幅上升,这也反映了Kotlin是一种设计良好的现代编程语言,并适用于多个开发领域,包括Web、移动开发以及原生开发。由于受欢迎程度的不断提高,多年以来,Kotlin用户一直保持着稳定的增长。
适用读者
本书适用于各种年龄层以及不同水平的读者。也就是说,本书面向初学者以及具有一定开发经验的程序员,他们想要学习Kotlin语言方面的知识。
在本书的编写过程中,我特别注意到了以下一个事实:初学者需要轻松地理解相关主题和概念。为此,本书各章是按照难度递增的书顺序编写的。如果读者恰好是一名初学者,本书可使您快速融入学习过程中,同时保持学习的连贯性。
相比较而言,具有一定开发经验的读者则会更加流畅地阅读本书一切都是平等的。如果读者具有应用程序开发的相关经验,那么,可以选择先浏览本书的示例代码,以了解所涵盖的主题和所期望的内容。特别是Java开发人员,他们可以直接阅读书中更高级的内容。
无论属于哪种类型的读者,请放心,我们依然为您撰写了相关的主题。
本书内容
第1章讨论了如何利用Kotlin语言编写简单的应用程序,包括构建Android项目、学习开发Android应用程序所需的基础知识,并以此与Web服务器进行通信。
第2章介绍一款相对简单的游戏作品,即俄罗斯方块,以使读者能够快速进行Android项目开发。
第3章介绍了如何生成视图、利用模型实现应用程序逻辑,并实现数据的视图化操作。除此之外,本章还将学习UI事件处理方面的内容。
第4章将探讨如何设计和实现后台程序,进而向客户端应用程序提供Web资源。
第5章涉及模型-视图-表示模式的应用,从而编写一个可与Messenger后端程序通信的Messenger应用程序。
第6章则在第5章的基础上,进一步完善Messenger应用程序的开发。
第7章解释了Android框架所支持的各种数据存储方法。除此之外,本章还将学习如何使用这些方法存储获取有效的应用程序信息。
第8章逐步分析了Android应用程序的部署问题;此外,本章还涵盖了较为重要的Android应用程序安全方面的问题。
第9章利用Spring MVC详细讨论了后台程序的设计和实现过程,即Place Reviewer Web应用程序。
第10章分析了如何创建一个Web定位程序,并学习使用强大的Google Places API。另外,本章还将学习如何针对Web应用程序编写测试程序。
对于初学者来说,希望读者秉承一种开放、主动的学习态度。在学习一门新语言时,开始阶段可能会遇到种种问题,但只要坚持不懈,终将会获得成功。这里也建议读者逐章阅读本书,确保掌握书中的全部内容。特别需要指出的是,应重点考查相关代码,并理解其所执行的任务。同时,还需要亲自实现、运行书中的每一个程序。
资源下载
读者可访问http:www.packtpub.com并通过个人账户下载示例代码文件。另外,读者在购买本书后,可访问http:www.packtpub.comsupport,注册成功后,我们将以电子邮件的方式将相关文件发与读者。
读者可根据下列步骤下载代码文件:
? 访问并注册我们的网站(对应网址为http:www.packtpub.com)。
? 选择SUPPORT选项卡。
? 单击Code Downloads & Errata。
? 在Search文本框中输入书名。
当文件下载完毕后,确保使用下列最新版本软件解压文件夹:
? Windows系统下的WinRAR7-Zip。
? Mac系统下的ZipegiZipUnRarX。
? Linux系统下的7-ZipPeaZip。
同时,读者还可访问GitHub获取本书的代码包,对应网址为https:github.com PacktPublishingKotlin-Programming-By-Example。
此外,读者还可访问https:github.comPacktPublishing以了解丰富的代码和视频资源。
下载书中的彩色图像
我们还提供了相关PDF文件,其中包含了本书中与屏幕截图、示意图相关的彩色图像,读者可访问https:www.packtpub.comsitesdefaultfilesdownloadsKotlinProgrammingByExample_ ColorImages. pdf下载。
本书约定
代码块则通过下列方式设置:
release {
storeFile file"..my-release-key.jks"
storePassword "password"
keyAlias "my-alias"
keyPassword "password"
}
代码中的重点内容则采用黑体表示:
release {
storeFile file"..my-release-key.jks"
storePassword "password"
keyAlias "my-alias"
keyPassword "password"
}
命令行输入或输出如下所示:
.gradlew assembleRelease
图标表示较为重要的说明事项。
图标则表示提示信息和操作技巧。
读者反馈和客户支持
欢迎读者对本书的建议或意见予以反馈,以使我们进一步了解读者的阅读喜好。
反馈意见对于我们来说十分重要,以便改进我们日后的工作。对此,读者可向发送邮件,并以书名作为邮件标题。
尽管我们在最大程度上做到尽善尽美,但错误依然在所难免。如果读者发现谬误之处,无论是文字错误抑或是代码错误,还望不吝赐教。对于其他读者以及本书的再版工作,这将具有十分重要的意义。对此,读者可访问,选取对应书籍,单击ErrataSubmissionForm超链接,并输入相关问题的详细内容。
若读者在互联网上发现本书任意形式的副本,请告知网络地址或网站名称,我们将对此予以处理。关于盗版问题,读者可发送邮件
若读者针对某项技术具有专家级的见解,抑或计划撰写书籍或完善某部著作的出版工作,则可访问。
评论本书
欢迎读者对本书的建议或意见予以反馈,以进一步了解读者的阅读喜好。
读者可访问并获取与Packt相关的更多信息。
|
|