内容简介

Kotlin语言实例精解》详细阐述了与Kotlin开发相关的基本解决方案,主要包括俄罗斯方块游戏、设计并实现Messenger后端应用程序、在数据库中存储信息、AndroidApp的安全和部署、PlaceReviewer后台应用程序、PlaceReviewer前端设计等内容。此外,《Kotlin语言实例精解》还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
Kotlin语言实例精解》适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。



目录

目录
第1章基础知识1
1.1开始Kotlin之旅1
1.1.1安装JDK3
1.1.2编译Kotlin程序4
1.1.3运行第一个Kotlin程序6
1.1.4在IDE中工作8
1.2Kotlin编程语言基础知识10
1.2.1Kotlin知识10
1.2.2面向对象程序设计28
1.3Kotlin的优点30
1.4利用Kotlin开发Android应用程序31
1.4.1设置AndroidStudio31
1.4.2构建第一个Android应用程序34
1.5Web基础知识42
1.5.1Web的含义42
1.5.2超文本传输协议42
1.5.3客户端和服务器43
1.5.4HTTP请求和响应43
1.5.5HTTP方法43
1.6本章小结44
第2章构建Android应用程序—俄罗斯方块游戏45
2.1Android概述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.1ConstraintLayout51
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.4App清单文件78
2.4.181
2.4.281
2.4.381
2.4.482
2.4.583
2.4.683
2.5本章小结83
第3章俄罗斯方块游戏的逻辑和功能84
3.1实现游戏体验过程84
3.1.1图块建模85
3.1.2构建应用程序模型100
3.1.3创建TetrisView111
3.2MVP模式简介122
3.2.1MVP的含义122
3.2.2MVP实现123
3.3本章小结123
第4章设计并实现Messenger后端应用程序124
4.1设计MessengerAPI124
4.1.1应用程序编程接口124
4.1.2REST125
4.1.3设计MessengerAPI系统125
4.2实现Messenger后端128
4.2.1PostgreSQL128
4.2.2创建新的SpringBoot应用程序129
4.2.3SpringBoot概述132
4.2.4限制API访问154
4.3将MessengerAPI部署至AWS上173
4.3.1配置AWS上的PostgreSQL173
4.3.2向AmazonElasticBeanstalk部署MessengerAPI176
4.4本章小结178
第5章构建MessengerAndroidApp(第1部分)180
5.1开发MessengerApp180
5.1.1纳入项目依赖关系180
5.1.2开发登录UI182
5.1.3设计注册UI209
5.2本章小结219
第6章构建MessengerAndroidApp(第2部分)220
6.1创建主UI220
6.1.1创建MainView220
6.1.2创建MainInteractor222
6.1.3创建MainPresenter225
6.1.4封装MainView227
6.1.5创建MainActivity菜单238
6.2创建聊天UI239
6.2.1创建聊天布局239
6.2.2准备聊天UI模型241
6.2.3创建ChatInteractor和ChatPresenter242
6.3应用程序设置249
6.4Android应用程序测试259
6.5执行后台操作260
6.5.1AsyncTask260
6.5.2IntentService260
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章AndroidApp的安全和部署307
8.1Android应用程序安全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构建可发布的APK312
8.2.7规划应用程序的PlayStore列表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章创建PlaceReviewer后台应用程序325
9.1MVC设计模式325
9.1.1模型325
9.1.2视图325
9.1.3控制器326
9.2设计并实现PlaceReviewer后台程序326
9.2.1用例标识326
9.2.2标识数据327
9.2.3设置数据库327
9.2.4实现后台应用程序328
9.2.5将后台程序连接至Postgres330
9.2.6创建模型330
9.2.7创建数据存储库333
9.2.8PlaceReviewer业务逻辑实现334
9.2.9PlaceReviewer后台应用程序的安全问题336
9.2.10基于SpringMVC的Web内容服务340
9.3利用ELK管理Spring应用程序日志343
9.3.1利用Spring生成日志343
9.3.2安装Elasticsearch343
9.3.3安装Kibana345
9.3.4Logstash346
9.3.5配置Kibana347
9.4本章小结349
第10章实现PlaceReviewer前端350
10.1利用Thymeleaf生成视图350
10.1.1实现用户注册视图351
10.1.2实现登录视图365
10.1.3GooglePlacesAPIWeb服务369
10.1.4实现主视图371
10.1.5生成评论382
10.2Spring应用程序测试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语言实例精解》适用于各种年龄层以及不同水平的读者。也就是说,《Kotlin语言实例精解》面向初学者以及具有一定开发经验的程序员,他们想要学习Kotlin语言方面的知识。
在《Kotlin语言实例精解》的编写过程中,我特别注意到了以下一个事实:初学者需要轻松地理解相关主题和概念。为此,《Kotlin语言实例精解》各章是按照难度递增的书顺序编写的。如果读者恰好是一名初学者,《Kotlin语言实例精解》可使您快速融入学习过程中,同时保持学习的连贯性。
相比较而言,具有一定开发经验的读者则会更加流畅地阅读《Kotlin语言实例精解》—一切都是平等的。如果读者具有应用程序开发的相关经验,那么,可以选择先浏览《Kotlin语言实例精解》的示例代码,以了解所涵盖的主题和所期望的内容。特别是Java开发人员,他们可以直接阅读书中更高级的内容。
无论属于哪种类型的读者,请放心,我们依然为您撰写了相关的主题。
Kotlin语言实例精解》内容
第1章讨论了如何利用Kotlin语言编写简单的应用程序,包括构建Android项目、学习开发Android应用程序所需的基础知识,并以此与Web服务器进行通信。
第2章介绍一款相对简单的游戏作品,即俄罗斯方块,以使读者能够快速进行Android项目开发。
第3章介绍了如何生成视图、利用模型实现应用程序逻辑,并实现数据的视图化操作。除此之外,本章还将学习UI事件处理方面的内容。
第4章将探讨如何设计和实现后台程序,进而向客户端应用程序提供Web资源。
第5章涉及模型-视图-表示模式的应用,从而编写一个可与Messenger后端程序通信的Messenger应用程序。
第6章则在第5章的基础上,进一步完善Messenger应用程序的开发。
第7章解释了Android框架所支持的各种数据存储方法。除此之外,本章还将学习如何使用这些方法存储/获取有效的应用程序信息。
第8章逐步分析了Android应用程序的部署问题;此外,本章还涵盖了较为重要的Android应用程序安全方面的问题。
第9章利用SpringMVC详细讨论了后台程序的设计和实现过程,即PlaceReviewerWeb应用程序。
第10章分析了如何创建一个Web定位程序,并学习使用强大的GooglePlacesAPI。另外,本章还将学习如何针对Web应用程序编写测试程序。
对于初学者来说,希望读者秉承一种开放、主动的学习态度。在学习一门新语言时,开始阶段可能会遇到种种问题,但只要坚持不懈,终将会获得成功。这里也建议读者逐章阅读《Kotlin语言实例精解》,确保掌握书中的全部内容。特别需要指出的是,应重点考查相关代码,并理解其所执行的任务。同时,还需要亲自实现、运行书中的每一个程序。
资源下载
读者可访问http://www.packtpub.com并通过个人账户下载示例代码文件。另外,读者在购买《Kotlin语言实例精解》后,可访问http://www.packtpub.com/support,注册成功后,我们将以电子邮件的方式将相关文件发与读者。
读者可根据下列步骤下载代码文件:
?访问并注册我们的网站(对应网址为http://www.packtpub.com)。
?选择SUPPORT选项卡。
?单击CodeDownloads&Errata。
?在Search文本框中输入书名。
当文件下载完毕后,确保使用下列最新版本软件解压文件夹:
?Windows系统下的WinRAR/7-Zip。
?Mac系统下的Zipeg/iZip/UnRarX。
?Linux系统下的7-Zip/PeaZip。
同时,读者还可访问GitHub获取《Kotlin语言实例精解》的代码包,对应网址为https://github.com/PacktPublishing/Kotlin-Programming-By-Example。
此外,读者还可访问https://github.com/PacktPublishing/以了解丰富的代码和视频资源。
下载书中的彩色图像
我们还提供了相关PDF文件,其中包含了《Kotlin语言实例精解》中与屏幕截图、示意图相关的彩色图像,读者可访问https://www.packtpub.com/sites/default/files/downloads/KotlinProgrammingByExample_ColorImages.pdf下载。
Kotlin语言实例精解》约定
代码块则通过下列方式设置:

release{
storeFilefile("../my-release-key.jks")
storePassword"password"
keyAlias"my-alias"
keyPassword"password"
}

代码中的重点内容则采用黑体表示:

release{
storeFilefile("../my-release-key.jks")
storePassword"password"
keyAlias"my-alias"
keyPassword"password"
}

命令行输入或输出如下所示:

./gradlewassembleRelease

图标表示较为重要的说明事项。
图标则表示提示信息和操作技巧。
读者反馈和客户支持
欢迎读者对《Kotlin语言实例精解》的建议或意见予以反馈,以使我们进一步了解读者的阅读喜好。
反馈意见对于我们来说十分重要,以便改进我们日后的工作。对此,读者可向feedback@packtpub.com发送邮件,并以书名作为邮件标题。
尽管我们在最大程度上做到尽善尽美,但错误依然在所难免。如果读者发现谬误之处,无论是文字错误抑或是代码错误,还望不吝赐教。对于其他读者以及《Kotlin语言实例精解》的再版工作,这将具有十分重要的意义。对此,读者可访问http://www.packtpub.com/submit-errata,选取对应书籍,单击ErrataSubmissionForm超链接,并输入相关问题的详细内容。
若读者在互联网上发现《Kotlin语言实例精解》任意形式的副本,请告知网络地址或网站名称,我们将对此予以处理。关于盗版问题,读者可发送邮件至copyright@packtpub.com。
若读者针对某项技术具有专家级的见解,抑或计划撰写书籍或完善某部著作的出版工作,则可访问authors.packtpub.com。
评论《Kotlin语言实例精解
欢迎读者对《Kotlin语言实例精解》的建议或意见予以反馈,以进一步了解读者的阅读喜好。
读者可访问packtpub.com并获取与Packt相关的更多信息。




其他推荐