本申请涉及智能家居/智慧家庭,具体而言,涉及一种应用程序开发方法、存储介质及电子装置。
背景技术:
1、目前,大型互联网企业不同的业务部门可能会并行设计各自的移动终端应用程序(以下统称app),因为同属一个企业,不同的业务部门之间会有频繁的合作,各自的app中也就会存在不同业务之间的耦合,形成你中有我,我中有你的局面。例如业务部门x的x-app,需要接入业务部门y的y-app中的部分业务,这种情况就需要开发工程师在y-app中重新开发一套完全相同的业务,开发和测试成本高,且两套代码维护成本及线上风险都会增加,如果有更多的app需要接入这部分业务,工作量与app数量成正比增加。
2、现在流行的解决方案是复用业务尽可能使用h5技术开发,以webview组件接入app,或者由开发工程师在要接入的app中以全新代码再开发一套重复业务。
3、但是h5技术在app的webview组件中兼容性较低,无法实现精准分享页面等部分功能或实现成本极高,h5技术在webview组件中的性能表现也与app原生页面有较大距离,并且无法预知可复用业务,不能提前为代码复用性做规划布局,工程师开发多套相同业务,迭代成本高,且线上异常风险大。
4、相应的,本领域需要一种新的应用程序开发方法来解决上述问题。
技术实现思路
1、本申请旨在解决上述技术问题,即,解决现有的业务复用方法成本高、运行性能及稳定性差的问题。
2、为了实现上述目的,在第一方面,本申请提供一种应用程序开发方法,应用于程序开发系统,其特征在于,所述程序开发系统至少包括壳工程、至少一个公共模块和多个业务模块;所述方法包括:
3、基于所述壳工程对所述程序开发系统进行模块化配置;
4、获取构建应用程序所需的公共模块和业务模块;
5、基于所述公共模块和所述业务模块生成所述应用程序。
6、在上述应用程序开发方法的可选技术方案中,所述程序开发系统还包括脚手架;所述方法还包括:
7、配置所述脚手架为模块化结构;
8、基于所述脚手架生成所述壳工程,和/或,基于所述脚手架获取所述公共模块和所述业务模块,和/或,基于所述脚手架生成多个平台的所述应用程序;
9、其中,所述多个平台至少包括android平台和ios平台。
10、在上述应用程序开发方法的可选技术方案中,所述基于所述壳工程对所述程序开发系统进行模块化配置包括:
11、基于所述壳工程配置所述程序开发系统的基础能力和代码结构;
12、其中,所述基础能力为开发和构建所述应用程序的能力,所述代码结构为模块化代码结构。
13、在上述应用程序开发方法的可选技术方案中,所述方法还包括:
14、获取编写好的公共模块的代码包和业务模块的代码包;
15、将所述公共模块的代码包和所述业务模块的代码包存储至公共仓库;
16、其中,所述公共模块的代码包是对公共能力的代码抽离,所述业务模块的代码包是对实际业务的代码抽离。
17、在上述应用程序开发方法的可选技术方案中,所述构建应用程序所需的所述公共模块和所述业务模块包括:
18、调用所述公共仓库中,构建所述应用程序所需的所述公共模块的代码包和所述业务模块的代码包。
19、在上述应用程序开发方法的可选技术方案中,所述公共模块包括公共函数、公共组件和公共配置中至少一个;所述业务模块包括ui层、逻辑层、路由配置信息、域名配置信息、接口配置信息、业务组件和业务函数中至少一个;所述方法还包括:
20、基于所述壳工程读取所述业务模块中所述路由配置信息和/或所述域名配置信息和/或所述接口配置信息。
21、在上述应用程序开发方法的可选技术方案中,所述方法还包括:
22、获取新的公共模块和/或新的业务模块;
23、将所述新的公共模块和/或所述新的业务模块添加至所述应用程序;
24、和/或,
25、删除所述应用程序中已有的所述公共模块和/或所述业务模块。
26、在上述应用程序开发方法的可选技术方案中,所述公共模块的代码包和所述业务模块的代码包分别基于独立代码库管理;所述方法还包括:
27、修改所述公共模块的代码包和/或所述业务模块的代码包;
28、基于修改后的所述公共模块的代码包和/或所述业务模块的代码包更新所述应用程序。
29、在第二方面,本申请提供了一种电子装置,所述电子装置包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述中任一项所述的应用程序开发方法。
30、在第三方面,本申请提供了一种可读存储介质,所述可读存储介质中存储有多条程序代码,所述程序代码适于由处理器加载并运行以执行上述中任一项所述的应用程序开发方法。
31、本领域人员能够理解的是,在本申请的技术方案中,应用程序开发方法应用于程序开发系统,其中,程序开发系统至少包括壳工程、至少一个公共模块和多个业务模块,方法包括基于壳工程对程序开发系统进行模块化配置,获取构建应用程序所需的公共模块和业务模块,基于公共模块和业务模块生成应用程序。通过上述实施方式,可以实现多个应用程序对不同业务的自由组装,解决相同业务复用难的问题,其中,公共模块和业务模块均由统一代码开发,相比h5技术的混合方式,应用程序的运行性能及稳定性明显提高,并且对公共模块和业务模块进行一次开发,可以在多个应用程序上运行,降低了开发测试成本,同时,接入相同业务模块的应用程序也能保障业务迭代一致性。
1.一种应用程序开发方法,应用于程序开发系统,其特征在于,所述程序开发系统至少包括壳工程、至少一个公共模块和多个业务模块;所述方法包括:
2.根据权利要求1所述的应用程序开发方法,其特征在于,所述程序开发系统还包括脚手架;所述方法还包括:
3.根据权利要求1所述的应用程序开发方法,其特征在于,所述基于所述壳工程对所述程序开发系统进行模块化配置包括:
4.根据权利要求1至3任一项所述的应用程序开发方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的应用程序开发方法,其特征在于,所述构建应用程序所需的所述公共模块和所述业务模块包括:
6.根据权利要求1所述的应用程序开发方法,其特征在于,所述公共模块包括公共函数、公共组件和公共配置中至少一个;所述业务模块包括ui层、逻辑层、路由配置信息、域名配置信息、接口配置信息、业务组件和业务函数中至少一个;所述方法还包括:
7.根据权利要求1所述的应用程序开发方法,其特征在于,所述方法还包括:获取新的公共模块和/或新的业务模块;
8.根据权利要求4所述的应用程序开发方法,其特征在于,所述公共模块的代码包和所述业务模块的代码包分别基于独立代码库管理;所述方法还包括:
9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行权利要求1至8中任一项所述的应用程序开发方法。
10.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的程序,其中,所述程序运行时执行权利要求1至8中任一项所述的应用程序开发方法。