CN113835691A - 一种iOS应用开发方法、系统、设备、介质和程序产品 - Google Patents
一种iOS应用开发方法、系统、设备、介质和程序产品 Download PDFInfo
- Publication number
- CN113835691A CN113835691A CN202111133981.3A CN202111133981A CN113835691A CN 113835691 A CN113835691 A CN 113835691A CN 202111133981 A CN202111133981 A CN 202111133981A CN 113835691 A CN113835691 A CN 113835691A
- Authority
- CN
- China
- Prior art keywords
- application
- ios
- page
- development
- component
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000011161 development Methods 0.000 title claims abstract description 163
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000009877 rendering Methods 0.000 claims abstract description 25
- 238000004806 packaging method and process Methods 0.000 claims abstract description 12
- 239000000306 component Substances 0.000 claims description 130
- 230000006870 function Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 20
- 238000013461 design Methods 0.000 claims description 10
- 230000003993 interaction Effects 0.000 claims description 10
- 239000008358 core component Substances 0.000 claims description 9
- 238000004458 analytical method Methods 0.000 claims description 7
- 238000012795 verification Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 7
- 238000007726 management method Methods 0.000 description 52
- 230000015654 memory Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000012800 visualization Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 239000010985 leather Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开涉及应用开发技术领域,具体涉及一种iOS应用开发方法、系统、设备、介质和程序产品,可应用于金融领域。该iOS应用开发方法包括:在低代码开发平台构建页面配置文件;封装iOS原生组件,形成应用组件;根据页面配置文件在iOS移动客户端框架渲染页面,其中,iOS移动客户端框架包括iOS组件化开发架构,iOS组件化开发架构用于管理应用组件。本公开具有更高的应用开发效率。
Description
技术领域
本公开涉及应用开发技术领域,具体涉及一种iOS应用开发方法、系统、设备、介质和程序产品。
背景技术
随着企业数字化、信息化的加速推进,越来越多的企业开始借助互联网升级自己的信息系统,为企业发展战略提供支撑。企业由于发展沿革和行业特性,对于信息系统会有自身特殊的要求,尤其是在企业的行业个性化需求和企业自身独有的个性化需求方面显得格外迫切。随着企业应用程序需求的不断增长,专业开发人员的开发速度已经没有办法满足市场需求,导致大量的应用程序开发任务积压。
现有技术中的应用开发方法仍具有开发效率低下的缺点。
发明内容
鉴于上述问题,本公开提供了提高应用开发效率的iOS应用开发方法、系统、设备、介质和程序产品。
根据本公开的第一个方面,提供了一种iOS应用开发方法方法,包括:
在低代码开发平台构建页面配置文件;
封装iOS原生组件,形成应用组件;
根据页面配置文件在iOS移动客户端框架渲染页面,其中,iOS移动客户端框架包括iOS组件化开发架构,iOS组件化开发架构用于管理应用组件。
根据本公开的实施例,iOS移动客户端框架还包括完全解耦的:
应用组件模块,应用组件模块包括实现基础功能的核心组件、实现附加功能的功能组件以及实现页面显示的UI组件;
应用内容管理模块,应用内容管理模块用于实现低代码平台与iOS移动客户端框架的数据交互;以及
渲染引擎模块,渲染引擎模块用于解析页面配置文件并渲染页面。
根据本公开的实施例,根据页面配置文件在iOS移动客户端框架渲染页面包括:
通过应用内容管理模块获取页面配置文件;
解析页面配置文件,获得页面解析数据;
根据页面解析数据获得相应的应用组件的配置信息;
注册视图控制器,根据页面解析数据在进行视图跳转时动态创建视图实例;
渲染UI组件,获得最终页面。
根据本公开的实施例,通过应用内容管理模块获取页面配置文件包括:
应用启动后初始化应用内容管理模块;
获取保存至本地的最新版本的页面配置文件;
校验页面配置文件的数据;
获取校验合格的页面配置文件。
根据本公开的实施例,iOS组件化开发架构基于领域驱动设计模型,iOS组件化开发架构包括:
应用基础设施层,应用基础设施层领域用于提供应用基础管理,应用基础管理包括应用生命周期管理、部分核心组件的初始化;
业务模块层,业务模块层包括组件化的各业务模块;以及
组件层,组件层用于实现应用开发需求的应用组件。
根据本公开的实施例,低代码开发平台基于领域驱动设计模型,低代码开发平台包括:
用户管理层,用于管理用户的权限;
应用管理层,用于管理至少一个应用;
组件管理层,用于组件创建、组件删除以及组件编辑;
页面内容管理层,用于利用应用组件创建页面内容以及生成页面配置文件;
应用版本发布管理层,用于发布应用。
根据本公开的实施例,利用应用组件创建页面内容通过所见即所得的方式实现。
本公开的第二方面提供了iOS应用开发系统,包括:
低代码开发平台,用于根据应用开发需求进行用户管理、应用管理、组件管理、页面内容管理以及应用版本发布管理;
iOS移动客户端框架,用于与低代码开发平台进行数据交互、根据应用开发需求形成的页面配置文件和被封装的iOS原生组件渲染页面。
本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述iOS应用开发方法。
本公开的第四方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述iOS应用开发方法。
本公开的第五方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述iOS应用开发方法。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的iOS应用开发方法、系统、设备和介质的应用场景图;
图2示意性示出了根据本公开实施例的iOS应用开发方法的流程图;
图3示意性示出了操作S203的根据页面配置文件在iOS移动客户端框架渲染页面的流程图;
图4示意性示出了视图控制器的注册流程;
图5示意性示出了渲染引擎模块在进行页面跳转时的流程;
图6示意性示出了操作S31的通过应用内容管理模块获取页面配置文件的流程图;
图7示意性示出了根据本公开实施例的iOS应用开发系统的结构框图;以及
图8示意性示出了根据本公开实施例的适于实现iOS应用开发方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
随着企业数字化、信息化的加速推进,越来越多的企业开始借助互联网升级自己的信息系统,为企业发展战略提供支撑。企业由于发展沿革和行业特性,对于信息系统会有自身特殊的要求,尤其是在企业的行业个性化需求和企业自身独有的个性化需求方面显得格外迫切。随着企业应用程序需求的不断增长,专业开发人员的开发速度已经没有办法满足市场需求,导致大量的应用程序开发任务积压。
为了解决应用程序的快速开发和及时更新,低代码技术应运而生。低代码开发方案是将原本可以用代码沉淀的方案,例如组件、模板、模块,通过可视化的形式沉淀在产品上,并通过拖拽、配置等方式将这些模块进行组装。其核心能力包括:
1)全栈可视化编程:可视化包含两层含义,一个是编辑时支持的点选、拖拽和配置操作,另一个是编辑完成后所及即所得(WYSIWYG)的预览效果。传统代码IDE(集成开发环境)也支持部分可视化能力(如早年Visual Studio的MFC/WPF),但低代码更强调的是全栈、端到端的可视化编程,覆盖一个完整应用开发所涉及的各个技术层面(界面/数据/逻辑)。
2)全生命周期管理:作为一站式的应用开发平台,低代码支持应用的完整生命周期管理,即从设计阶段开始(有些平台还支持更前置的项目与需求管理),历经开发、构建、测试和部署,一直到上线后的各种运维(e.g.监控报警、应用上下线)和运营(e.g.数据报表、用户反馈)。
3)低代码扩展能力:使用低代码开发时,大部分情况下仍离不开代码,因此平台必须能支持在必要时通过少量的代码对应用各层次进行灵活扩展,比如添加自定义组件、修改主题CSS样式、定制逻辑流动作等。一些可能的需求场景包括:UI样式定制、遗留代码复用、专用的加密算法、非标系统集成。
现有的使用低代码技术进行应用程序程序开发的方案,主要有以下几个方面的缺点:
1)用户体验差:移动端实现方面使用Web APP(HTML5)开发或者混合(原生+H5)开发,加载缓慢/网络要求高。混合APP数据需要全部从服务器调取,每个页面都需要重新下载,因此打开速度慢,网络占用高,缓冲时间长,容易让用户反感。
2)安全性低:代码不能很好地兼容最新手机系统,且安全性较低,网络技术发展快,病毒类型在不断更新迭代,如果不实时更新定期检查,容易产生漏洞,造成直接经济损失;
3)应用商店限制:由于纯H5(HTML5)应用内容不可控,存在监管问题,部分应用商店已禁止上架此类纯H5应用。
4)移动端硬件限制:由于Web技术本身的限制,H5移动应用不能直接访问设备硬件和离线存储,所以在体验和性能上有很大的局限性。
需要说明的是,本公开确定的iOS应用开发方法、系统、设备、介质和程序产品属于应用开发技术领域,也属于人工智能技术领域,其中,本公开实施例的iOS应用开发方法、系统可应用于金融领域,也可用于除金融领域之外的任意领域,在此不做限定。
还需要说明的是,在本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
本公开的实施例提供了一种iOS应用开发方法,包括:
在低代码开发平台构建页面配置文件;封装iOS原生组件,形成应用组件;根据页面配置文件在iOS移动客户端框架渲染页面,其中,iOS移动客户端框架包括iOS组件化开发架构,iOS组件化开发架构用于管理应用组件。
根据本公开实施例的iOS应用开发方法,至少能够实现以下技术效果之一:
1)通过封装iOS原生组件,使得在开发时可直接使用组件,不考虑各个组件的配置和逻辑,降低开发的复杂度。
1)通过封装iOS原生组件,可将复杂的需求封装成独立的组件,提供相应的功能低代码配置入口,既避免了复杂页面难以维护的场景,又可以通过组件的更新来更新相应的功能,降低开发的难度。
2)基于组件化开发框架进行组件化开发,组件的实现满足一定的自定义协议(例如生命周期监控协议),可自定义协议方法对组件的运行状态进行监控(比如某些组件的内存占用情况),具有更高的系统可控性。
4)通过封装iOS原生组件,可在引擎中增加容错处理,使得解释引擎解释出错时,可进行容错处理,降低页面复杂度。
图1示意性示出了根据本公开实施例的iOS应用开发的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括终端设备101、102、103、网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的iOS应用开发方法一般可以由服务器105执行。相应地,本公开实施例所提供的iOS应用开发系统一般可以设置于服务器105中。本公开实施例所提供的iOS应用开发方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的iOS应用开发系统也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图6对公开实施例的iOS应用开发方法进行详细描述。
图2示意性示出了根据本公开实施例的iOS应用开发方法的流程图。
如图2所示,该实施例的iOS应用开发包括操作S201~操作S203。
在操作S201,在低代码开发平台构建页面配置文件。
在操作S202,封装iOS原生组件,形成应用组件。
在操作S203,根据页面配置文件在iOS移动客户端框架渲染页面。
本公开实施例的iOS应用开发方法200针对开发人员进行基于iOS操作系统的应用开发,具体过程是开发人员在开发平台针对需求进行具有相应功能的应用开发,在本公开实施例中包括页面设置和展示,在开发平台端开发完成后,可在应用端打开该应用时显示出相应的页面,并实现相应的功能。
操作S201中提到的“低代码开发平台”是指无需代码或通过少量代码就可以快速生成应用程序的开发平台,通过可视化进行应用程序开发的方法,使具有不同经验水平的开发人员可以通过图形化的用户界面,使用拖拽组件和模型驱动的逻辑来创建网页和移动应用程序。主要的优势在于允许终端用户使用易于理解的可视化工具开发自己的应用程序、构建业务流程、逻辑和数据模型等所需的功能,必要时还可添加自己的代码。完成业务逻辑、功能构建后,即可一键交付应用并进行更新,自动跟踪所有更改并处理数据可脚本和部署流程,实现在iOS、Andriod、Web等多个平台上的部署。
操作S201中提到的“页面配置文件”是包含成功设置页面所需信息的文件,这些信息以特定的方式构成,并不是硬编码而是用户可配置的方式呈现,通常存储在纯文本文件中。
本公开实施例的iOS应用开发方法是原生开发方式,这里的“原生开发”是指在iOS移动平台上利用官方提供的开发语言、开发类库和开发工具进行应用开发。在操作S202中,“iOS原生组件”是指iOS操作系统中自带的组件,应该理解的是,iOS原生组件的数量和种类可满足各种应用的开发要求。
在操作S202中,“封装iOS原生组件”的方式可以是:在iOS原生组件的头文件声明一个事件属性;在RN(一种开源的跨平台移动应用开发框架)组件桥接类里面导出这个事件属性;在iOS原生端通过定义的事件属性发送事件到RN端;在RN端封装iOS原生组件事件。“组件”可理解为对逻辑的封装,不限于图形元素,其具有单个可移植性,无需为其准备复杂的基础条件;在操作S202中提到的“封装”应该理解为二次封装。
在操作S203中,“渲染”是指软件即应用生成图像的过程,也就是页面的显示过程,在开发人员进行相应的页面配置文件构建后,通过一系列操作,在应用端即可根据页面配置文件渲染出相应的页面。
在操作S203中,“iOS移动客户端”是指应用开发完成后,为客户提供本地服务的程序,可运行上述的开发完成的应用。
在操作S203中,iOS移动客户端框架包括iOS组件化开发架构,iOS组件化开发架构用于管理应用组件。“组件化开发”可理解为将图形、非图形的各种逻辑均抽象成一个统一的概念,即组件,来实现开发的模式。
一般地,在利用原生组件进行组件化开发时是基于系统底层组件的,系统底层组件未经封装(二次封装),且各组件具有其逻辑和配置,在开发的应用或者系统的需求愈加复杂时,UI(用户交互)界面的实现难度业务逻辑的复杂度也会成倍增加,业务人员在实现页面时无从下手,同样难以配置复杂的业务逻辑,因此实际在开发时的难度非常大。
根据本公开实施例的iOS应用开发方法,至少能够实现以下技术效果之一:
1)通过封装iOS原生组件,使得在开发时可直接使用组件,不考虑各个组件的配置和逻辑,降低开发的复杂度。
2)通过封装iOS原生组件,可将复杂的需求封装成独立的组件,提供相应的功能低代码配置入口,既避免了复杂页面难以维护的场景,又可以通过组件的更新来更新相应的功能,降低开发的难度。
3)基于组件化开发框架进行组件化开发,组件的实现满足一定的自定义协议(例如生命周期监控协议),可自定义协议方法对组件的运行状态进行监控(比如某些组件的内存占用情况),具有更高的系统可控性。
4)通过封装iOS原生组件,可在引擎中增加容错处理,使得解释引擎解释出错时,可进行容错处理,降低页面复杂度。
根据本公开实施例的iOS应用开发方法200,iOS移动客户端框架还可包括完全解耦的:
应用组件模块,应用组件模块包括实现基础功能的核心组件、实现附加功能的功能组件以及实现页面显示的UI组件;应用内容管理模块,应用内容管理模块用于实现低代码平台与iOS移动客户端框架的数据交互;以及渲染引擎模块,渲染引擎模块用于解析页面配置文件并渲染页面。
需要说明的是,封装后的iOS原生组件,即应用组件的数量较多,不同的应用组件的功能也各不相同,上述的“核心组件”是指实现基础功能的组件,这里的“基础功能”是指不局限应用的种类,各种应用均具有的功能,对应该基础功能所依赖的组件即为“核心组件”,例如基础配置组件、网络请求组件、路由组件、消息总线组件、日志组件等;“功能组件”则是各个不同应用相区别的功能所依赖的组件,例如消息推送组件、扫一扫组件、H5(HTML5)容器组件、LBS(围绕地理位置数据而展开的服务)组件等;“UI组件”是指实现用户交互页面的组件,例如轮播图组件、宫格组件、弹出框组件、下拉刷新组件等。应该理解的是,包括核心组件、功能组件和UI组件的应用组件可满足应用开发时的组件需求。
示例性地,UI组件可支持自定义组件的视图样式。
还应该理解是,在开发过程中,开发平台与客户端之间具有数据交互的需求,上述的“应用内容管理模块”可实现低代码平台与iOS移动客户端框架的数据交互,例如页面配置文件下载、版本更新、缓存管理、数据校验等。
上述的“渲染引擎模块”可理解为功能为渲染页面的程序,该程序能够根据解析的页面配置文件渲染页面,最终获得与页面配置文件在配置上一致的页面。
根据本公开实施例的iOS应用开发方法的技术方案,iOS移动客户端框架使用组件化开发架构,并且提供各移动开发项目组同一规范且使用便捷的一套移动应用组件支撑(即应用组件模块中的各应用组件),便于开发人员开发不同的移动应用程序,并且上述的应用组件模块、应用内容管理模块、渲染引擎模块三者之间完全解耦,各业务模块的开发人员可独立开发、测试,互相不受影响,提高开发效率。
结合图2、图3所示,根据本公开实施例的iOS应用开发方法200,操作S203的根据页面配置文件在iOS移动客户端框架渲染页面可包括操作S31~操作S35。
在操作S31,通过应用内容管理模块获取页面配置文件。
在操作S32,解析页面配置文件,获得页面解析数据。
在操作S33,根据页面解析数据获得相应的应用组件的配置信息。
在操作S34,注册视图控制器,根据页面解析数据在进行视图跳转时动态创建视图实例。
在操作S35,渲染UI组件,获得最终页面。
操作S32中提到的“页面解析数据”包括根视图数据和普通页面数据;在操作S34中提到的“视图控制器”用于管理视图层级、负责创建构成层级的视图对象、以及负责处理与其层级中的视图对象相关的事件。视图控制器的注册通过路由组件进行指定类名的视图控制器的路由注册,在进行视图跳转时动态创建视图示例。
示例性地,图4示出了视图控制器的注册流程,图5示出了本公开实施例的渲染引擎模块在进行页面跳转时的流程。
结合图3、图6所示,根据本公开实施例的iOS应用开发方法200,操作S31的通过应用内容管理模块获取页面配置文件可包括操作S311~操作S314。
在操作S311,应用启动后初始化应用内容管理模块。
在操作S312,获取保存至本地的最新版本的页面配置文件。
在操作S313,校验页面配置文件的数据。
在操作S314,获取校验合格的页面配置文件。
根据本公开实施例的技术方案,应用开发时具有不同的版本,相应的页面配置文件进而配置数据也具有不同的版本,开发的过程是版本更新的过程,最新版本的页面配置文件,可以在服务端或者本地,在服务端时,获取该最新版本的页面配置文件时可以缓存至本地,以使得后续使用时也可直接从本地获取,不受限于网络环境。
基于此,在操作S312,获取保存至本地的最新版本的配置文件需要判断本地版本信息数据是否存在,还需要对比本地缓存数据版本信息和服务端内容数据版本信息,获得最新版本的页面配置文件,并缓存至本地。即为本地的最新版本的页面配置文件。在操作S313和操作S314,校验页面配置文件的数据,至少满足可解析、非空的要求,以顺利进行后续页面渲染。
根据本公开实施例的iOS应用开发方法200,iOS组件化开发架构可基于领域驱动设计模型,iOS组件化开发架构可包括:
应用基础设施层,应用基础设施层领域用于提供应用基础管理,应用基础管理包括应用生命周期管理、部分核心组件的初始化;业务模块层,业务模块层包括组件化的各业务模块;以及组件层,组件层用于实现应用开发需求的应用组件。
上述的“领域驱动设计”是一套综合软件系统分析和设计的面向对象建模方法,领域驱动设计提出了领域模型概念,统一了分析和设计编程,使得应用能够更灵活快速跟随需求变化。其中,领域模型以实际业务为出发点,通过对业务流程的梳理,通过划分、抽象、聚合,最终将业务划分为各个领域,归纳出各个领域的核心领域模型。
本公开实施例的技术方案中,iOS组件化开发架构基于领域驱动设计模型,业务逻辑被合理地分散到不同的领域对象中,代码结构更加清晰,可读性、可维护性更高;对象职责更加单一,内聚度更高;复杂的业务模型可通过领域建模(UML是一种主要方式)清晰地表达,开发人员甚至可以在不读源码的情况下就能了解业务和系统结构,有利于对现存的系统进行维护和迭代开发,提高开发效率。上述的应用基础设施层、业务模块层、组件层构成适用于所有应用开发的组件化结构。
根据本公开实施例的iOS应用开发方法200,低代码开发平台也可基于领域驱动设计模型,低代码开发平台可包括:
用户管理层,用于管理用户的权限;应用管理层,用于管理至少一个应用;组件管理层,用于组件创建、组件删除以及组件编辑;页面内容管理层,用于利用应用组件创建页面内容以及生成页面配置文件;应用版本发布管理层,用于发布应用。
根据本公开实施例的技术方案,“用户管理层”具有完整的用户权限管理体系,用于限制用户对于应用的管理、组件的管理、应用内容的更新、应用的发布等操作,这里所提到的“用户”可以是开发人员、运营人员等。“应用管理层”可进行多应用的管理,并针对不同应用创建不同的管理工作台,能够提供应用的新增、编辑和删除时。例如不同的业务人员具有不同的应用开发任务,则可通过各自的管理工作台对其应用进行管理;在“页面内容管理层”,可通过在网页上对已有组件的拖、拉、拽等操作,生成应用的页面内容,同时生成页面的配置文件,即页面配置文件,配置文件可以是JSON或XML格式的文件。
更进一步,在页面内容管理层,可进行如下操作:
1)创建应用页面,配置页面基本属性,例如,配置页面的标题、类名以及传值属性等。
2)根据实际需求设计拖拽实现需求所需的组件至应用页面,并对组件的属性进行编辑,例如,宽、高、字体、颜色等属性。
3)页面预览,校验组件布局是否合理,合理则可进行页面视图预览。
以“应用管理层”为例,其核心领域模型可包括:应用名称、应用大小、应用版本、应用图标、包名、安全标识、唯一标识、当前状态、创建时间和更新历史。
根据本公开实施例的iOS应用开发方法,利用应用组件创建页面内容通过所见即所得的方式实现。上文中已经说明了低代码平台具有可视化的特点,因此在低代码平台进行开发时可通过所见即所得的方式利用应用组件创建页面内容,提高应用开发的效率。
最后,需要说明的是,本公开实施例的iOS应用开发方法200是一种原生开发方式,不同于现有技术中在移动端通过Web APP(HTML5)开发等方式,数据从本地获取或者可缓存至本地,对网络的依赖性大大减弱,对应提高了页面打开速度、降低缓冲时间;相比于web开发,还具有安全性高、可直接访问设备硬件和离线存储,大大提升了用户体验和性能,使得开发人员可高效地进行应用开发,不用将精力分散在除业务核心之外的工作上。
基于上述iOS应用开发方法,本公开还提供了一种iOS应用开发系统。以下将结合图7对该系统进行详细描述。
图7示意性示出了根据本公开实施例的iOS应用开发系统的模块化结构框图。
如图7所示,该实施例的iOS应用开发系统300包括低代码开发平台310和iOS移动客户端框架320。
低代码开发平台310,用于根据应用开发需求进行用户管理、应用管理、组件管理、页面内容管理以及应用版本发布管理。
iOS移动客户端框架320,用于与低代码开发平台进行数据交互、根据应用开发需求形成的页面配置文件和被封装的iOS原生组件渲染页面。
根据本公开的实施例,低代码开发平台310和iOS移动客户端框架320可以合并在一个模块中实现,或者低代码开发平台310/iOS移动客户端框架320可以被拆分成多个模块。或者,低代码开发平台310和/或iOS移动客户端框架320的至少部分功能可以相结合,并在一个模块中实现。根据本公开的实施例,低代码开发平台310和/或iOS移动客户端框架320可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,低代码开发平台310和/或iOS移动客户端框架320可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的适于实现iOS应用开发方法的电子设备的方框图。
如图8所示,根据本公开实施例的电子设备400包括处理器401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。处理器401例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器401还可以包括用于缓存用途的板载存储器。处理器401可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 403中,存储有电子设备400操作所需的各种程序和数据。处理器401、ROM402以及RAM 403通过总线404彼此相连。处理器401通过执行ROM 402和/或RAM 403中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 402和RAM 403以外的一个或多个存储器中。处理器401也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备400还可以包括输入/输出(I/O)接口405,输入/输出(I/O)接口405也连接至总线404。电子设备400还可以包括连接至I/O接口405的以下部件中的一项或多项:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 402和/或RAM 403和/或ROM 402和RAM 403以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的iOS应用开发方法。
在该计算机程序被处理器401执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分409被下载和安装,和/或从可拆卸介质411被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (11)
1.一种iOS应用开发方法,其特征在于,包括:
在低代码开发平台构建页面配置文件;
封装iOS原生组件,形成应用组件;
根据所述页面配置文件在iOS移动客户端框架渲染页面,其中,所述iOS移动客户端框架包括iOS组件化开发架构,所述iOS组件化开发架构用于管理所述应用组件。
2.根据权利要求1所述的iOS应用开发方法,其特征在于,所述iOS移动客户端框架还包括完全解耦的:
应用组件模块,所述应用组件模块包括实现基础功能的核心组件、实现附加功能的功能组件以及实现页面显示的UI组件;
应用内容管理模块,所述应用内容管理模块用于实现所述低代码平台与所述iOS移动客户端框架的数据交互;以及
渲染引擎模块,所述渲染引擎模块用于解析所述页面配置文件并渲染页面。
3.根据权利要求2所述的iOS应用开发方法,其特征在于,所述根据页面配置文件在iOS移动客户端框架渲染页面包括:
通过所述应用内容管理模块获取所述页面配置文件;
解析所述页面配置文件,获得页面解析数据;
根据所述页面解析数据获得相应的所述应用组件的配置信息;
注册视图控制器,根据所述页面解析数据在进行视图跳转时动态创建视图实例;
渲染所述UI组件,获得最终页面。
4.根据权利要求3所述的iOS应用开发方法,其特征在于,所述通过应用内容管理模块获取页面配置文件包括:
应用启动后初始化所述应用内容管理模块;
获取保存至本地的最新版本的所述页面配置文件;
校验所述页面配置文件的数据;
获取校验合格的所述页面配置文件。
5.根据权利要求2所述的iOS应用开发方法,其特征在于,所述iOS组件化开发架构基于领域驱动设计模型,所述iOS组件化开发架构包括:
应用基础设施层,所述应用基础设施层领域用于提供应用基础管理,所述应用基础管理包括应用生命周期管理、部分所述核心组件的初始化;
业务模块层,所述业务模块层包括组件化的各业务模块;以及
组件层,所述组件层用于实现应用开发需求的所述应用组件。
6.根据权利要求1所述的iOS应用开发方法,其特征在于,所述低代码开发平台基于领域驱动设计模型,所述低代码开发平台包括:
用户管理层,用于管理用户的权限;
应用管理层,用于管理至少一个应用;
组件管理层,用于组件创建、组件删除以及组件编辑;
页面内容管理层,用于利用所述应用组件创建页面内容以及生成所述页面配置文件;
应用版本发布管理层,用于发布应用。
7.根据权利要求6所述的iOS应用开发方法,其特征在于,所述利用应用组件创建页面内容通过所见即所得的方式实现。
8.一种iOS应用开发系统,其特征在于,包括:
低代码开发平台,用于根据应用开发需求进行用户管理、应用管理、组件管理、页面内容管理以及应用版本发布管理;
iOS移动客户端框架,用于与所述低代码开发平台进行数据交互、根据应用开发需求形成的页面配置文件和被封装的iOS原生组件渲染页面。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~7中任一项所述的方法。
11.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111133981.3A CN113835691A (zh) | 2021-09-27 | 2021-09-27 | 一种iOS应用开发方法、系统、设备、介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111133981.3A CN113835691A (zh) | 2021-09-27 | 2021-09-27 | 一种iOS应用开发方法、系统、设备、介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113835691A true CN113835691A (zh) | 2021-12-24 |
Family
ID=78970542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111133981.3A Pending CN113835691A (zh) | 2021-09-27 | 2021-09-27 | 一种iOS应用开发方法、系统、设备、介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113835691A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114679484A (zh) * | 2022-03-25 | 2022-06-28 | 机科发展科技股份有限公司 | 服务端、客户端、tcp/ip以太网通信系统、介质、设备 |
CN115658023A (zh) * | 2022-11-14 | 2023-01-31 | 广东美的暖通设备有限公司 | 一种楼宇驾驶舱系统生成方法、装置、设备、介质及产品 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140019623A (ko) * | 2012-08-06 | 2014-02-17 | 인크로스 주식회사 | 웹 어플리케이션 저작을 위한 통합 플랫폼 및 그 저작 방법 |
CN103761082A (zh) * | 2013-12-31 | 2014-04-30 | 湖南大唐先一科技有限公司 | 一种组件化研发模式与领域驱动模型相结合的应用开发系统及平台 |
CN110825362A (zh) * | 2019-11-04 | 2020-02-21 | 广东道一信息技术股份有限公司 | 低代码应用软件开发系统及方法 |
CN110989976A (zh) * | 2019-11-29 | 2020-04-10 | 北京美络克思科技有限公司 | 基于J2EE的Web应用的组件化开发方法、存储介质和电子设备 |
CN111158818A (zh) * | 2019-12-24 | 2020-05-15 | 中国建设银行股份有限公司 | 一种页面渲染方法和装置 |
CN112214214A (zh) * | 2020-10-29 | 2021-01-12 | 上海厦广科技有限公司 | 针对安卓原生app的低代码开发系统、设备和介质 |
CN112286529A (zh) * | 2020-11-19 | 2021-01-29 | 北京有竹居网络技术有限公司 | 前端页面的开发方法、装置、设备及存储介质 |
CN112286504A (zh) * | 2020-11-12 | 2021-01-29 | 普元信息技术股份有限公司 | 移动APP中基于ReactNative实现小程序开发并加载的方法 |
CN112650475A (zh) * | 2020-12-21 | 2021-04-13 | 广州云徙科技有限公司 | 一种结合中台架构理论的软件低代码开发系统及开发方法 |
CN113094037A (zh) * | 2021-04-20 | 2021-07-09 | 上海携宁计算机科技股份有限公司 | 表单和工作流的交互方法、开发平台、设备及存储介质 |
CN113127361A (zh) * | 2021-04-23 | 2021-07-16 | 中国工商银行股份有限公司 | 应用程序的开发方法、装置、电子设备和存储介质 |
-
2021
- 2021-09-27 CN CN202111133981.3A patent/CN113835691A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140019623A (ko) * | 2012-08-06 | 2014-02-17 | 인크로스 주식회사 | 웹 어플리케이션 저작을 위한 통합 플랫폼 및 그 저작 방법 |
CN103761082A (zh) * | 2013-12-31 | 2014-04-30 | 湖南大唐先一科技有限公司 | 一种组件化研发模式与领域驱动模型相结合的应用开发系统及平台 |
CN110825362A (zh) * | 2019-11-04 | 2020-02-21 | 广东道一信息技术股份有限公司 | 低代码应用软件开发系统及方法 |
CN110989976A (zh) * | 2019-11-29 | 2020-04-10 | 北京美络克思科技有限公司 | 基于J2EE的Web应用的组件化开发方法、存储介质和电子设备 |
CN111158818A (zh) * | 2019-12-24 | 2020-05-15 | 中国建设银行股份有限公司 | 一种页面渲染方法和装置 |
CN112214214A (zh) * | 2020-10-29 | 2021-01-12 | 上海厦广科技有限公司 | 针对安卓原生app的低代码开发系统、设备和介质 |
CN112286504A (zh) * | 2020-11-12 | 2021-01-29 | 普元信息技术股份有限公司 | 移动APP中基于ReactNative实现小程序开发并加载的方法 |
CN112286529A (zh) * | 2020-11-19 | 2021-01-29 | 北京有竹居网络技术有限公司 | 前端页面的开发方法、装置、设备及存储介质 |
CN112650475A (zh) * | 2020-12-21 | 2021-04-13 | 广州云徙科技有限公司 | 一种结合中台架构理论的软件低代码开发系统及开发方法 |
CN113094037A (zh) * | 2021-04-20 | 2021-07-09 | 上海携宁计算机科技股份有限公司 | 表单和工作流的交互方法、开发平台、设备及存储介质 |
CN113127361A (zh) * | 2021-04-23 | 2021-07-16 | 中国工商银行股份有限公司 | 应用程序的开发方法、装置、电子设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
柴林香;刘志勤;杨雷;陆杨洁;: "移动应用开发中间件技术研究与设计", 计算机工程与设计, no. 03, 16 March 2016 (2016-03-16) * |
许畅;杨燕;王帅;魏峻;: "一种基于MVC模式的Portlet开发框架的设计与实现", 计算机科学, no. 07, 15 July 2012 (2012-07-15) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114679484A (zh) * | 2022-03-25 | 2022-06-28 | 机科发展科技股份有限公司 | 服务端、客户端、tcp/ip以太网通信系统、介质、设备 |
CN115658023A (zh) * | 2022-11-14 | 2023-01-31 | 广东美的暖通设备有限公司 | 一种楼宇驾驶舱系统生成方法、装置、设备、介质及产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112631555B (zh) | 用于开发工业应用的系统和方法 | |
US11681502B2 (en) | Industrial automation domain-specific language programming paradigm | |
US10628132B2 (en) | Inversion of control framework for multiple behaviors of a process | |
US20100153150A1 (en) | Software for business adaptation catalog modeling | |
US20050192984A1 (en) | System and method for building mixed mode execution environment for component applications | |
US20100153149A1 (en) | Software for model-based configuration constraint generation | |
US10908882B2 (en) | Object configuration utilities | |
WO2019155369A1 (en) | Tri-affinity model driven method and platform for authoring, realizing, and analyzing a cross-platform application | |
US20230026911A1 (en) | Describing changes in a workflow based on changes in structured documents containing workflow metadata | |
CN108369514B (zh) | 用于可执行内容和可执行内容流创建的系统和方法 | |
CN113835691A (zh) | 一种iOS应用开发方法、系统、设备、介质和程序产品 | |
US11733977B2 (en) | Graphical and text based co-design editor for industrial automation projects | |
US10896035B1 (en) | Methods of converting APIs into objects and uses thereof | |
Barboni et al. | Bridging the gap between a behavioural formal description technique and a user interface description language: Enhancing ICO with a graphical user interface markup language | |
Meijers | Hands-On Azure Digital Twins: A practical guide to building distributed IoT solutions | |
CN110275923B (zh) | 插件化图形的管理方法及设备 | |
US20220413843A1 (en) | Combining model-driven applications and canvas-type applications with application lifecycle management | |
Bretet | Spring mvc cookbook | |
CN114816430A (zh) | 一种业务代码开发方法、系统及计算机可读存储介质 | |
US11294644B2 (en) | Inversion of control framework for multiple behaviors on top of a process | |
CN110648081A (zh) | 用于计算系统的业务建模方法、装置和计算机系统 | |
Sprogis | Dsml tool building platform in web | |
US20240129402A1 (en) | Customization framework for native mobile applications | |
US20240103852A1 (en) | Presentation design dynamic generation from data model server | |
US20240103850A1 (en) | Presentation design to background service binding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |