图书前言

前言

基于国产操作系统、国产数据库管理系统等国产平台的App应用软件,在信息安全、国产软件生态的打造等方面影响越来越大。但该类软件开发人才目前还比较缺乏,在软件开发课程中,介绍国产软件开发工具的也较少。为此,我们首先专门设计了一个基于“纯血版鸿蒙+金仓数据库+SpringBoot”的App新案例,新编第3~8章等6章内容;其次,改造原版中基于“Android+MySQL+JavaWeb”的App老案例,以适应新的教学目标,调整为新版的后6章;再次,开发了一系列项目程序包、源代码清单文件及操作演示视频,通过二维码将纸质书与数字资源关联,将其有机融入相关章节中。

本教材以“App全栈开发”为主线,基于“国产为先、国产国际并列”原则,突出“鸿蒙+金仓”,兼顾“安卓+MySQL”,推广软件开发“国产平台”。希望帮助读者解决开发App涉及多种环境和编程语言,项目打通难的问题。克服同类教材多数只讲客户端、服务器端或数据库的某一个部分,导致读者常常看很多本书,都搞不通一个项目的困惑。读者通过学习,将克服代码畏难情绪,获得项目经验,增强专业信心;熟悉国产编程工具,提高开发能力,下定报国决心;养成严谨细致习惯,训练系统思维,培养学习恒心。

为便于读者使用本教材,在教材内容、教学设计、课程思政和资源建设等方面做了以下尝试。

在教材内容方面: ①研发教学案例,企业编者传承开发经验,校企共同开发融合“鸿蒙+金仓”和“安卓+MySQL”的一个App大案例——志愿助手“豹考通”; ②与Spring Boot服务器端一起,构成基于“鸿蒙+金仓”国产平台的App全栈案例,以及基于“安卓+MySQL”国际平台的案例。

在教学设计方面: ①将大案例拆分为一个个小例子,可独立运行和集成测试,完成“从1到0”的项目拆解,再实现“从0到1”的项目集成; ②从App设计、开发到上线,引导读者边学边做,边检验,学完全书即完成该完整项目,熟悉一个较大规模App的开发全过程; ③功能→实现代码→关键细节,由浅入深,层层递进。

在课程思政方面: ①在研发软件项目时,带领学生熟悉、运用“鸿蒙”操作系统和“金仓”数据库系统等基础平台,将国产平台应用嵌入学生综合能力培养的关键阶段,积极加入“软件国产化”行列。②引入美国等西方国家对我国科技“卡脖子”、华为鸿蒙突围以及近几年IT行业国产替代的成绩等事例,帮助学生树立科技自立自强的信心,把握好“软件国产化”趋势。③将国际上通用的开发平台运用,科学合理引入项目研发中,让学生在研发实践中比较、借鉴,树立开放包容、吸收改进的科学态度,服务新质生产力的发展。④在大案例中,同时使用国内外多个开发平台和多种编程语言。此类案例的调通需要学生更多的耐心与更强的毅力,通过这一实践,培养学生的工匠精神。⑤重视App应用“界面内容”设计,如高考志愿咨询中的“客观评价用户”模块,引导学生关注软件研发中的社会责任。

在资源建设方面: ①除代码库和课件外,增加演示App开发过程的微课视频; ②用二维码与纸质书关联,解决开发细节描述难等问题; ③读者扫描二维码下载代码清单或观看操作视频。将下载的代码复制到开发平台,可减少枯燥的程序输入工作;观看操作视频可以对照学习,提高学习效率。

读者可以根据个人偏好、学习基础与学习目标,基于图01的引导,选择下述相应的学习路径。

●大全栈推荐路线: 项目需求分析→鸿蒙App开发体验→鸿蒙客户端设计→鸿蒙中的数据管理→用金仓开发网络数据库→Spring Boot的服务器端设计→鸿蒙App与Spring Boot服务器交互设计→安卓App应用体验→安卓App客户端设计→用MySQL开发网络数据库→Java Web服务器端设计→ 安卓App客户端与服务器端交互设计。

●国产开发平台为主(小全栈): 项目需求分析→鸿蒙App开发体验→鸿蒙客户端设计→鸿蒙中的数据管理→用金仓开发网络数据库→Spring Boot服务器端设计→鸿蒙App与Spring Boot服务器交互设计。

●传统开发平台为主(小全栈): 项目需求分析→安卓App应用体验→安卓App客户端设计→安卓App存取本地数据库的设计→用MySQL开发网络数据库→Java Web服务器端设计→ 安卓App客户端与服务器端交互设计。

软件项目开发实战——App全栈(第2版)〖1〗〖2〗〖2〗〖2〗〖2〗图01本教材学习路径图

本教材假定读者具有一定的编程语言基础,对App 开发和软件编程有一定的了解。本教材中有些代码较长,有些模块只列出关键代码。为方便阅读,每段代码都添加了代码编号,部分关键语句加了注释,并给出了程序在资源包中的位置,样例如下。

程序清单42Code040202\\MyApplication_bkt_4\\entry\\src\\main\\ets\\pages\\Spinner42Page.ets1Row() {

2if (this.selectYear && this.selectProvince) {

3Text('${this.selectProvince}地区${this.selectYear}年省控线')

4.fontSize(30) //字体大小

5.fontWeight(FontWeight.Bold) //字体加粗

6}

7}

8.width('100%')

9.justifyContent(FlexAlign.Center) //居中

10.padding({ top: 20, bottom: 20 })

其中,1、2、…、10为代码行号,中间为代码实际内容,“//”后为注释内容。程序清单的位置也进行了详细标注,便于读者查找。各章代码独立存储在一个文件夹中,在阅读本书时,最好按照教材中的步骤同时实际操作,加深印象,掌握关键技术,不建议直接打开源代码运行来查看最后效果。编程基础较弱者也可泛读全书,体验App开发流程和关键细节。涉及相关技术时,尽可能去参考相关教材或网络资源。为方便学习、交流与资源共享,出版社提供了本教材相关资源的下载。

本教材由钟元生担任主编,负责全书的方案设计、内容策划、案例分解、细节把握、质量控制和统编定稿工作。各章分工如下: 钟元生负责第1章、第2章,并参编其余各章,李浩轩负责第3章,曹雷负责第4章,李普聪负责第5章、第12章,程梓宽负责第6章,欧阳贺麒负责第7、8、9章,邹宇杰负责第10章,高成珍负责第11章,赵圣鲁负责第13章,钟坚负责第14章。欧阳贺麒参加了书稿修订、代码编写等工作。倚动实验室的肖振斌、徐王倩、徐昌鸿、谢锋、李志英、彭兵幸等同学参与了视频制作、课件开发、项目调试等大量工作。

作为一种尝试,我们在本教材编写过程中反复对案例进行修改,对教材结构、教法、编法等进行研究与设计,进行了多次大规模修改,本教材方得以展现在读者面前。尽管如此,本教材中依然有一些不尽如人意的地方,还望读者批评指正,以便将来再版时完善。

编者

于江西财经大学麦庐园

2025年11月