目录
[1.1 移动端应用开发平台](#1.1 移动端应用开发平台)
[1.2 移动端应用部署平台](#1.2 移动端应用部署平台)
[1.2.1 小程序部署平台](#1.2.1 小程序部署平台)
[1.2.2 APP部署平台](#1.2.2 APP部署平台)
[2.1 APP开发环境](#2.1 APP开发环境)
[2.1.1 安卓开发环境](#2.1.1 安卓开发环境)
[2.1.2 iOS 开发环境](#2.1.2 iOS 开发环境)
[2.2 小程序开发环境](#2.2 小程序开发环境)
[2.3 网页应用开发环境](#2.3 网页应用开发环境)
[3.1 单体应用阶段](#3.1 单体应用阶段)
[3.2 MVC架构阶段](#3.2 MVC架构阶段)
[3.3 MVP阶段](#3.3 MVP阶段)
[3.4 MVVM](#3.4 MVVM)
[3.5 微服务架构](#3.5 微服务架构)
[4.1 开发语言](#4.1 开发语言)
[4.2 小程序开发方式](#4.2 小程序开发方式)
[4.3 原生APP开发方式](#4.3 原生APP开发方式)
[4.4 网页APP开发方式](#4.4 网页APP开发方式)
[5.1 无代码开发的发展阶段](#5.1 无代码开发的发展阶段)
[5.2 无代码开发的优劣](#5.2 无代码开发的优劣)
[5.3 主流开发平台和测试平台](#5.3 主流开发平台和测试平台)
[5.3.1 主流低代码开发平台](#5.3.1 主流低代码开发平台)
[5.3.1 主流无代码测试平台](#5.3.1 主流无代码测试平台)
[5.4 无代码开发流程](#5.4 无代码开发流程)
一、移动应用平台概述
1.1 移动端应用开发平台
- EMAS和mPaaS。是阿里巴巴应用研发平台,是面向全端场景的一站式应用研发平台。为企业、开发者提供一站式的应用研发运营管理服务,涵盖开发、测试、运维、运营等应用全生命周期。
mPaaS是源于支付宝的移动开发平台,为移动开发、测试、运营及运维提供云到端的一站式解决方案,其产品优势:
- (1)互联网级视觉体验。
- (2)现代化应用架构。
- (3)阿里巴巴MobileDevOps最佳实践。
- (4)"双十一"应用基础设施。
- (5)亿级App用户运营工具方法论。

-
TMF。是腾讯移动开发平台,整合了腾讯在移动产品中开发、测试、发布和运营的技术能力。
-
FinClip。是小程序容器技术,通过App集成FinClip小程序SDK的方式,让App能快速具备运行小程序的能力,实现App的解耦、模块化开发、动态热更新。该产品优势:
- (1)小程序SDK保证了业务应用所需要的运行环境。
- (2)跨端开发和运行。
- (3)自研小程序开发工具。
- (4)支持灰度发布。
- APICloud基于MADP(移动开发平台)构建一款应用时,企业可将UI设计、前端开发、后端开发等环节紧密衔接,减少大量重复性工作,并有效提升30%-60%IT项目效率。APICloud在多端技术领域有4个核心能力:
- (1)跨平台引擎。
- (2)全流程开发工具。
- (3)统一编译环境。
- (4)跨端JS架构。
- EMOP。是京东移动中台体系产品化后的"代表作",涵盖了需求、开发、测试、运维、运营五大领域,可提供企业移动开发的"一站式"解决方案,实现了移动研发全生命周期的技术支撑。其特点:
- (1)支持四大开发框架。原生、跨端、H5、小程序。
- (2)组件化方案实现高效解耦。
- (3)提供DevOps持续交付能力。
- (4)完善的、系统化的App性能监控能力。
- (5)提供智能运营分析能力。
1.2 移动端应用部署平台
移动端应用部署平台包括微信小程序、QQ小程序、抖音小程序、支付宝小程序等,以及用户无须下载安装移动端应用,就可以直接在手机上运行,可流畅的体验应用内容的快应用。
1.2.1 小程序部署平台
将最为主流的支付宝小程序与微信小程序部署平台进行对比。
1)开发基本没有差别
2)设计逻辑不同。
- 支付宝小程序:功能性会比较复杂,商业属性更强。
- 微信小程序:在产品设计逻辑上,微信小程序较为专注简约和直观,只提供了搜索功能及竖排的最近使用微信小程序列表,更加照顾用户体验。
3)面向人群。
- 微信小程序:目前已经向群众开放,用户与开发者都能通过微信小程序获利。
- 支付宝小程序:目前还处于公测期间,仅面向企业级用户。
4)功能区别。在小程序开发技术本身、小程序环境提供的生态构建、产品体系搭建、行业开放类目数量等方面,微信小程序都更胜一筹。支付宝基于支付的属性,在社交功能上稍逊一筹,在安全支付和金融产品领域则更占优势。
1.2.2 APP部署平台
下面对最为主流的App部署平台Android系统与iOS系统进行对比。
1)开源和闭源。iOS闭源,仅苹果产品使用;Android开源,除内核外开放系统源代码,各厂商可进行深度定制。
2)硬件资源的使用效率不同。苹果系统基于软件优化、硬件匹配,充分使用硬件资源,提升运行效率;而Android系统则使用效率低。
3)对应的扩展程序优化不同。苹果系统对其App有着严格的审核机制,不符合标准的App禁止上架应用商店及提供下载安装;Android系统的应用软件缺乏监管,多数无法优化到位。
4)运行机制。iOS是沙盒运行机制,Android是虚拟机运行机制。
5)后台程序运行。iOS系统退出应用后,系统后台只会保留退出时的界面,实际上相当于已经关闭后台,腾出了内存空间,让手机保持流畅的状态,而Android系统打开应用退出后,需要手动关闭后台程序,否则很大程度上会影响了运行效率。
6)屏幕响应优先级。iOS系统最先响应屏幕,用户触摸了屏幕之后,系统就会最优先去处理屏幕显示,即当前手机界面是哪个软件,系统就会优先提供资源让其快速反应。Android系统则是将和屏幕显示相关的处理放在第三层级响应,首先会激活应用、框架,然后才是屏幕。
7)系统开放性。iOS是闭源系统,限制多;Android是开源系统,支持软件丰富。
二、移动应用开发环境
2.1 APP开发环境
2.1.1 安卓开发环境
Android App开发需要的开发环境包括Java Development Kit(JDK)、Android SDK、Eclipse、Android Studio 等。
(1)JDK。是Java的开发工具包,是整个Java的核心。JDK提供了编译、运行Java程序所需的各种工具和资源。使得Java开发者可以编译运行自己的java程序。JDK包含了JRE。
(2)JRE。是Java的运行环境。通过JRE,用户可以运行自己的程序,JRE包含了JVM。
(3)JVM。Java虚拟机是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。主要负责解释执行.class字节码文件。实现"一次编译,多处运行"的跨平台特性。
(4)Eclipse/IDEA。Eclipse可以满足几乎所有的开发需求;IDEA是一个Java语言的开发集成环境,是业界公认的最优秀的Java开发工具。
(5)Android Studio。是谷歌推出的一个Android集成开发工具,基于IntelliJIDEA。提供了集成的Android开发工具用于开发和调试。
2.1.2 iOS 开发环境
iOS App开发需要的开发环境包括Xcode、iOS SDK、Objective-C或Swift等。其中,Xcode是苹果公司推出的一款集成开发环境;iOSSDK是辅助开发iOSApp的相关文档、API必需资料、范例和工具的集合;Objective-C是一种通用、高级、面向对象的编程语言;而Swift是苹果公司推出的一种新型编程语言,专门用于开发iOS和macOS的应用程序
2.2 小程序开发环境
- 微信开发者工具。基于m.w.js.使用node.js、chromium以及系统API来实现底层模块,使用React、Redux等前端技术框架来搭建用户交互层,实现同一套代码跨Mac和Windows平台使用。
- WXML(Wei Xin Markup Language)是小程序框架设计的一套标签语言,用于构建出页面的结构。
- WXSS(Wei Xin Style Sheets)是一套样式语言,用来决定WXML的组件应该怎么显示。
- 模拟器。模拟小程序在微信客户端的逻辑和界面表现,方便开发者实时查看代码效果。
2.3 网页应用开发环境
移动端网页应用的开发环境包括如下三种:
(1)HTML5开发工具,如DevExtreme。
(2)移动设备开发技术。设计在移动设备上运行良好的网站所需的一些主要技术,如跨浏览器兼容性、移动设备设计等。
(3)移动端开发技术,如NativeApp、HybridApp等
三、移动应用架构
应用架构分为以下两个不同的层次:企业级的应用架构和系统级的应用架构。企业级的应用架构起到了统一规划、承上启下的作用,向上承接了企业战略发展方向和业务模式,向下规划和指导企业各个IT系统的定位和功能。而系统级的应用架构则是在企业级应用架构的指导下,对单个系统进行设计和实现。移动应用的架构发展历史可以大致分为以下几个阶段。
3.1 单体应用阶段
早期的移动应用开发采用单体应用架构,即所有功能模块都集成在一个应用程序中。优点是:开发简单、部署简单、运维简单、性能稳定。但是,随着业务的发展,单体应用会变得越来越复杂,代码量也会越来越大,这样会导致开发效率低下、维护成本高。
3.2 MVC架构阶段
将应用程序分为三层:模型层、视图层和控制器层,实现了代码解耦和代码复用,提高了应用的可扩展性和可维护性。架构示意图如下:

MVC主要的框架有Spring、Struts ZF、.NET。Spring MVC是一个MVC的开源框架,Spring MVC = struts2+spring。Spring MVC是Spring的一个后续产品,其实就是Spring在原有基础上,又提供了Web应用的MVC模块。前端的视图用jsp来代替,DAO是MVC外的另一个层,即数据持久层,主要进行对数据库的操作。

3.3 MVP阶段
在MVC的设计中,将View和Controller的代码放到一起,这样会导致Activity/Fragment中的代码越来越多,所以开始分离VC中的代码。将Activity/Fragment中复杂的逻辑处理移至另外一个类(Presenter)中,此时,Activity其实就是MVP模式中的View,负责UI元素的初始化,建立UI元素与Presenter的关联,同时自己也会处理一些简单的逻辑,复杂的逻辑交由Presenter处理。
MVP架构是一种软件设计模式,它将应用程序分为三个层次,即Model、View和Presenter。Model负责处理数据和业务逻辑,View负责显示用户界面,Presenter负责协调Model和View之间的交互。MVP架构的目的是降低View和Model之间的耦合,提高代码的可测试性通过模型层获取数据,回显到UI层,响应用户的和可维护性。

3.4 MVVM
MVVM(Model-View-ViewModel)架构是在MVC架构的基础上发展起来的。该架构通过引入ViewModel层,进一步解耦了视图和模型,使每个组件的职责更加清晰明确。另外,MVVM架构还引入了数据绑定和响应式编程的思想,使得应用程序能够更加灵活地响应用户输入。
VUE.JS就是基于MVM模式实现出来的一套框架,是当前热门的前端框架之一。


- (1)Observer数据监听器,能够对数据对象的所有属性进行监听,如有变动可拿到最新值并通知订阅者。
- (2)Compile指令解析器,它的作用是对每个元素节点的指令进行扫描和解析,根据指令模板替换数据,以及绑定相应的更新函数。
- (3)Watcher订阅者,作为连接Observer和Compile的桥梁,能够订阅并收到每个属性变动的通知,执行指令绑定的相应回调函数。
- (4)Dep消息订阅器,内部维护了一个数组,用来收集订阅者(Watcher),数据变动触发notify函数,再调用订阅者的update方法
3.5 微服务架构
微服务架构将应用程序分解为多个独立的服务,每个服务都可以独立部署和扩展,从而提高了应用的伸缩性和容错性。微服务架构演变历程如下:
1)基于服务实现模块化。将系统拆分为不同的模块并通过服务实现模块化,但服务本质上仍然是单体应用。
2)基于SOA的服务拆分。服务化架构开始通过服务拆分来实现更小的服务颗粒度。同时,服务治理和服务注册中心等基础设施也得以快速发展。
3)基于容器和服务框架。随着容器技术的成熟,微服务架构开始基于容器进行部署和管理,同时一批开源的服务框架和基础设施也应运而生。
4)基于云原生的微服务架构。在云原生技术的推动下,微服务架构已经从传统的部署方式转向了基于云平台的统一部署和运维。新的云原生技术如Kubernetes等,提供了更高效的容器编排、负载均衡和自动化部署等能力,大大简化了微服务架构的部署和管理。
四、移动应用开发
应用开发技术可以分为原生应用开发、混合应用开发和Web应用开发等类型。
原生应用开发是指针对特定的操作系统使用原生编程语言来开发的应用程序,它们可以充分利用设备的硬件和软件功能,提供最佳的用户体验和性能,但是开发难度高,成本高,需要为不同的平台分别开发。
混合应用开发是指使用网页技术来开发的应用程序,它们可以在不同的平台上运行,具有跨平台的优势,同时也可以通过调用原生API来实现一些特定的功能,提高用户体验,但是性能可能不如原生应用,页面交互效果也有限。
Web应用开发是指使用网页技术来开发的网站或网页,它们不需要下载安装,只需要通过浏览器访问即可,具有便捷性和易维护性的优势,但是用户体验可能不足,页面跳转迟钝或卡顿,功能也受到浏览器的限制。
4.1 开发语言
常见开发APP语言包括:
(1)原生App(Native App)。Android中使用Java/Kotlin开发,iOS中使用Objective-C/Swift开发。其优势是效率高;不足是费用高。(2)Web App。使用HTML/CSS/JS编写,运行在浏览器中,封装为App安装文件,在应用商店中上架。其优势为一套代码可以运行在两个平台;不足为执行效率不如原生App。
(3)H5。使用HTML/CSS/JS编写,运行在浏览器中,不需要应用商店中上架,也没有图标,通过二维码在朋友圈中快速分享。其优势为一套代码可以运行在两个平台;不足为执行效率不如原生App。
(4)混合/混编App(Hybrid App)。使用HTML/CSS/JS/Native.js(Java/OC>JS)。其优势为一套代码可以运行在两个平台,还可以调用系统底层原生功能;不足为执行效率不如原生App。
(5)桥接App(Bridged App)。只使用JS编写,执行环境会把JS编译为Java/OC,在手机中运行时就是纯原生代码。其优势为一套代码可以运行在两个平台,执行效率高;不足为两个平台不能做到完全一样。
(6)Flutter App。使用Dart语言开发,直接在Android/iOS手机中的显卡里进行绘图。其优势为一套代码可以运行在两个平台,执行效率高,效果完全一样;不足为全新的语言,Google开发的进度比较慢。
4.2 小程序开发方式
-
基于微信小程序框架开发,使用微信提供的API进行小程序开发,新手友好,上手快,可以节省大量开发时间。
-
原生开发方式,基于原生语言(如Java、Object-C)开发,使用微信官方平台提供的SDK进行开发,能够实现更多高级功能,可以拥有更好的性能。
-
网页开发方式,基于网页语言(如HTML、CSS、JavaScript)开发,使用微信官方提供的API进行小程序开发,可以节省大量开发时间,小程序可以兼容不同平台,使用更方便。
-
跨平台开发方式,基于跨平台语言开发,可以节省大量开发时间,实现跨平台的功能,使用更方便。
-
云开发方式,基于微信小程序云开发,可以节省大量开发时间,实现快速搭建开发小程序。
4.3 原生APP开发方式
Android开发中需要掌握Java、UI设计、第三方类库调用、网络和数据库等方面的知识。此外还需具备条件:需求完整、交互设计、使用开发环境。
iOS开发需要掌握以下方面的知识:
(1)学习Objective-C和Swift编程语言。
(2)使用Xcode进行苹果App软件开发。
(3)使用苹果的Cocoa Touch框架。
(4)学习如何使用苹果的硬件编程接口。
(5)使用CoreData进行数据库管理。
(6)学习如何使用WebKit框架进行苹果App开发。
此外,由于iOS系统的封闭性,开发过程还需要注意:安全、性能、可维护性、测试、发布、版本更新等内容。
4.4 网页APP开发方式
Web App指采用HTML5编写的App。本质上是为移动浏览器设计的基于Web的应用,它们是用普通Web开发语言开发的,可以在各种智能手机浏览器上运行。
WebApp开发即是一种框架型App开发模式(HTML5App框架开发模式),该开发具有跨平台的优势,该模式通常由"HTML5云网站+App应用客户端"两部分构成,App应用客户端只需安装应用的框架部分,而应用的数据则是每次打开App时,去云端取数据呈现给手机用户。HTML5应用程序使用标准的Web技术,通常是HTML5、JavaScript和CSS。存在一些重大的局限性,具体包括会话管理、安全离线存储以及访问原生设备功能等。
混合APP开发:混合开发是一种结合原生和HTML5开发的技术,取长补短的一种开发模式。它主要以JS+Native两者相互调用为主,从开发层面实现"一次开发,多处运行"的机制,成为真正适合跨平台的开发。混合应用开发的原生代码部分利用WebView插件或者其他的框架为HTML5提供了一个容器,程序主要的业务实现、界面展示是利用H5相关的Web技术进行实现的。
混合开发有以下优点:一次开发,多处运行;兼具了NativeApp良好用户体验的优势,也兼具了WebApp使用HTML5跨平台开发低成本的优势;可以集成第三方SDK;可以使用原生API;可以使用Web技术。
混合开发也有以下缺点:性能不如原生应用;需要依赖WebView;难以实现复杂交互效果。开发人员可以使用Ionic、ReactNative、Flutter等框架来进行混合开发。这些框架都有自己的特点和优势,开发人员可以根据自己的需求选择适合自己的框架。
五、无代码开发
5.1 无代码开发的发展阶段
无代码开发经历了几个发展阶段。第一阶段是单一功能的代码生成工具,如报表生成工具和表单生成工具;第二阶段是面向业务的应用开发平台,如PowerBuilder和VisualBasic等;第三阶段是基于模型驱动的开发平台,如Mendix和OutSystems等;第四阶段是基于低代码开发平台和云计算的无代码开发平台,如Salesforce和Airtable等
5.2 无代码开发的优劣
优势:
加速应用开发:无代码开发平台提供了可视化的界面和组件,使开发过程更加快速和简单。无须编写代码,开发人员可以通过拖放组件、配置属性和规则来创建应用程序。
降低技术门槛:无代码开发使非专业开发人员能够参与软件开发。无须精通编程语言和复杂的技术知识,任何人都可以通过简单的操作创建应用程序。
可扩展性和可维护性:无代码开发平台提供了模块化和可重用的组件,使应用程序更易于扩展和维护。开发人员可以通过组合和定制现有组件来构建复杂的应用程序。
劣势:
限制自定义和灵活性:无代码开发平台通常提供了一系列预定义的组件和功能,可能无法满足某些特定需求。开发人员可能会受到平台限制,无法进行高度定制或实现特定的复杂功能。
依赖第三方平台:无代码开发平台通常是基于特定的工具和框架构建的,开发人员需要依赖这些平台来创建和运行应用程序。这可能增加了一定的依赖性和风险。
5.3 主流开发平台和测试平台
5.3.1 主流低代码开发平台
(1)Airtable。一款基于云的电子表格和数据库平台,可以帮助用户轻松创建和管理数据。(2)Bubbleo一款可视化编程平台,允许开发者通过拖放组件来创建Web应用程序。(3)MicrosoftPowerApps。微软提供的一款低代码开发平台,可以帮助用户快速构建企业级应用程序。(4)GoogleAppMaker。一款基于云的低代码开发平台,允许开发者轻松创建自定义应用程序。
5.3.1 主流无代码测试平台
(1)TestComplete。一款功能强大的自动化测试工具,可以帮助开发者轻松创建和运行测试脚本。(2)RanorexStudio。一款易于使用的自动化测试工具,可以帮助开发者快速创建和运行测试脚本。
5.4 无代码开发流程
(1)需求分析。确定应用的目标、功能和性能需求。
(2)界面设计。使用可视化编辑器创建界面布局和样式。
(3)逻辑实现。通过拖放组件、配置属性等方式实现功能逻辑。
(4)数据管理。设置数据库结构、API调用等数据交互方式。
(5)测试与调优。对应用进行功能测试、性能优化等工作。
(6)发布与维护。将应用发布到目标平台,进行后期维护和更新
往期推荐
Flutter 通过 Android Studio 打包 APK 完整教程
https://shuaici.blog.csdn.net/article/details/157179234系统分析师-嵌入式系统分析与设计
https://shuaici.blog.csdn.net/article/details/156729765