深圳易捷网络科技注册咨询网-jiujiuya.com.cn 返回首页

手机APP开发框架的选择

信息来源:深圳市易捷网络科技有限公司
信息发布时间:2025-5-4

手机App的开发一般都需要满足Android和iOS两个系统环境,也就意味着一个App需要定制两套实现方案,造成开发成本和维护成本都很高。为了解决这个问题,最好的办法就是实现一套代码跨端运行,所以HybridApp混合应用模式应运而生。在HybridApp整个开发框架上,有各种各样的框架,各种各样的技术选型,而现在主要的技术就是Web技术,不仅简单,更容易实现UI,开发者人数也比较多。目前市面上的大多数App都是采用Web+Native的混合技术来实现的。

大型项目开发所面对的依赖管理、沟通成本问题,也出现在App开发的过程中,如果不解决好这两个问题,很可能会引起项目缺陷增多、开发效率降低,进而导致项目延期,并且也会造成项目后期维护的难度增大。
综上,对于中大型的App开发项目,需要一个既支持混合开发模式、又能够解决依赖和沟通问题的开发框架来有效的指导和规范开发。
核心需求;
一个好的App开发框架,要能在框架层面解决中大型App开发中Hybrid开发框架选型、模块间解耦的问题,同时也要提供模块动态变更、动态升级的解决方案。
除了手机App的开发发框架之外,还应包括以下三部分内容:
后台发布管理平台
支持模块动态变更、动态升级,后台发布管理平台是与之想配套的后台管理功能,包括数据管理和App接口两部分。
持续集成方案
提供配套的持续集成方案,用于项目开发过程中自动打包。
H5模块开发规范
提供H5模块开发的规范,用于实现动态模块功能。
解决“规模变大”问题思路
分而治之
模块化,将业务功能划分成多个独立的模块;
模块间做到高内聚低耦合,互不干扰、并行开发
依赖统一管理
依赖不可避免;
对依赖进行统一规划管理;
模块间的依赖可以归纳为:
页面间跳转
API调用
解决“跨平台”问题思路
Cordova(PhoneGap)
业界最主流的开源移动跨端框架
HTML+CSS+JS+原生插件
开放式的原生插件框架
强大的社区力量
解决“动态升级”问题思路
App发布到应用市场后,往往需要一个比较长的审核周期,特别是苹果商店;当App的重要功能出现Bug时,需要有快速的应对方案,重新发版本到应用市场肯定是慢了。为了快速的应对业务需求的变化和紧急Bug的处理,App对动态升级的需求越来越频繁。所以实现一套动态升级方案,主要以模块为单位展开。
从动态模块的角度,将模块分为三种:NA模块、H5-offline模块、H5-online模块。
NA模块的页面都需要预置在App中,H5-offline模块的页面可以预置在应用中、也可以在应用安装后再下载,H5-online模块的页面部署在服务器端。
模块的动态性主要体现有以下几方面:
1、模块的icon、名字可以动态修改;
2、模块的三种类型之间可以互相切换,比如:某个模块本来是NA实现,上线后发现有重大Bug,可以切换到H5-offine或者H5-online的实现,如果没有这两种实现,可以切换到一个“敬请期待”的在线页面;
3、H5-offline模块支持版本升级。
对于模块动态升级,主要指的是H5-offline模块,对H5-offline模块的安全性要做充分的考虑:对模块的离线包有进行加密处理,也要对离线包里的文件进行哈希校验,防止被篡改。
技术架构
App开发框架应以模块化设计为基础,同时打通NA与H5两种不同技术实现的业务。模块主要分为两种形态:
NA模块
主要由NA页面组成,也可以是NA容器加载的H5页面,NA模块可以对外提供api;
H5模块
由H5页面组成,可以是离线页面也可以是在线页面,H5模块无法对外提供api,但是可以调用其他NA模块提供的api;
实现模块间的完全解耦,推荐模块代码不仅要逻辑上独立,最好是采用子工程的方式实现物理上的分离。通过三条总线机制来实现模块间的解耦:
API总线
主要提供模块api注册和调用两个能力;
页面导航总线
不区分NA和H5的融合页面设计,页面的打开和返回由页面导航总线统一调度;
模块总线
模块总线从逻辑上确定了模块的概念,同时支持模块的远程变更和动态升级;
采用业界最流行的Cordova框架来充当JSBridge,Cordova拥有大量的社区插件可以使用,同时也提供了完整的插件开发规范,非常容易自定义开发插件。
开发框架应对API总线、页面导航总线、模块总线这些核心能力提供了cordova插件的实现,使H5页面也能够轻松的调用这些api,并且做到NA与H5调用无差异化。
开发框架发布件
App开发框架库:
framework(android&ios)
plugins(js)
App工程Demo(android&ios)
server:
发布管理平台的部署包、接口文档、部署手册等文件
产品白皮书:
对开发框架的使用进行详细的讲解
开发框架集成
使用Cordova命令行创建项目工程;
向工程中导入开发框架库framework(android&ios);
为主工程和子工程创建开发框架统一约定的配置文件;
在App启动的时候调用开发框架的初始化方法,进行初始化;
集成完毕,可以在项目中正常使用开发框架的API
开发框架配置文件
在使用开发框架前,需要将api、page、module注册到开发框架对应的总线中,除了调用对应的注册外,开发框架推荐采用配置文件的注册方式,只需要将数据配在配置文件中,开发框架会自动完成注册。
开发框架的配置文件的命名约定为:开发框架名称-子工程名.xml,其中主工程为开发框架名称-main.xml,配置文件的约定放置的位置为:
Android放在主工程和子工程的assets的根目录下;
iOS放在主工程和子工程的bundle文件中。
模块总线主要有两方面的功能:
在逻辑上,以模块为基础在开发框架配置文件中组织页面和API,使得逻辑更清晰;
在功能上,模块总线主要实现动态模块的功能,对外提供两个核心的API类:
ModuleBus提供模块的原子化操作方法;
ModuleHelper封装了ModuleBus提供的原子方法,实现了业务的串联,是一个快捷使用API的辅助类
注:模块总线将模块的状态分为:正常、未安装、有新版本(分强制升级和非强制升级)、已下载、模块数据被篡改。
开发框架页面导航总线
主要功能:
对NA页面和H5页面的跳转进行统一的调度,通过维护一个页面的栈来实现。
核心API:
开发框架页面API总线
API总线主要的作用是解耦模块间的方法调用,提供的核心API只有两个:
register
模块实现API后,向总线注册(一般由框架在解析配置文件时自动调用);
call
调用API,调用方通过API总线调用需要调用的API
使用举例
登录成功后,账户模块保存登录token,其他的模块需要获取token时,要调用账户模块提供的API获取。实现步骤如下:
1、账户模块实现GetTokenAPI,调用APIBus.register(“m_account”,“getToken”,GetTokenAPI.class)注册到API总线;
2、A模块需要获取token时,调用APIBus.call(“m_account”,“getToken”,“入参”)获取token,返回值是APIResult对象(
对象主要包含状态码和业务字符串)。
开发框架扩展
提供模块级别的开发框架:
NA模块提供MVC、MVP、MVVM等开发框架;
H5模块提供MVVM、SPA等开发框架;
H5模块提供微信的兼容支持

跨平台App开发框架比较;
每个框架几乎都包含以下特性:
使用HTML5+CSS+JavaScript开发
跨平台重用代码
丰富的UI库
提供访问设备原生API的JavaScriptAPI包装器
解决原生开发中机型适配的难题
提供打包、部署的工具或服务
都需要学习自身封装的JavaScriptAPI
筛选框架的要求:
性能:运行速度快
UI:提供接近原生的UI体验
插件多,文档丰富,开发效率高,容易扩展和维护
满足业务需求
1,Cordova
Cordova和PhoneGap的区别?
PhoneGap是ApacheCordova的一个分发版,就像Ubuntu是基于Linux的一个发行版,其代码库也基于Cordova,只是PhoneGap关联了Adobe的一些额外的商业工具或服务,例如PhoneGapBuild和AdobeShadow,来帮助开发者简化开发。
此外,两者提供的CLI工具、项目结构有差异,如:
Cordova把config.html放在项目目录下,而PhoneGap把它放在www目录下。
优点:
开源免费,社区生态成熟,插件丰富
支持离线场景应用
开发工具选择空间大
缺点:
只提供基础访问设备的接口,需要自己搭配其他UI框架和JavaScript框架来搭配
UI框架
Framework7
MSUI|Github
Famous
为任意屏幕创建流畅、复杂的UI。
免费和开源的JavaScript渲染引擎。着名引擎的独特之处在于其JavaScript渲染引擎和3D物理引擎。
官网|Github|HelloWorld
使用Famo.us创建高性能移动UI
2,Ionic
官网地址:http://www.ionic.wang/(有案例)
Ionic=Cordova+AngularJS+一套样式库。
技术要求
HTML+CSS+AngularJS
优点:
基于Cordova
漂亮的界面,追求性能,专注原生,免费开源
AngularJSMVVM开发理念,数据双向绑定
继承自Cordova,可以使用Cordova的插件
缺点:
AngularJS学习路线陡峭
Ionic框架相比于原生的Cordova有所差异,Cordova某些官方插件可能不适用于Ionic
3,AppCan
通过AppCanIDE集成开发系统、云端打包器等,快速开发出Android、iOS、WP平台上的移动应用。
有两种方式创建项目:IDE和云端,并且IDE可以同步到云端。
免费用户有100M空间、50个应用的限制。
优点
提供一体化解决方案,方便环境搭建、开发、调试、发布
框架自带UI包,包含常用控件样式
框架对UI、动画渲染进行过优化,反应速度快
支持本地打包、云端打包
基于密钥的代码加密
缺点
不开源,无法修改、优化底层代码
分大众版和企业版,大众版免费,但功能有缺失,详细见附录
暂不支持自行开发控件/,无法调取android原生功能
框架自带功能过多,导致应用安装包偏大。
文档偏少
部分系统无法使用IDE进行调试
只能在服务器端发布,无法在本地发布
IOS发布,需要将证书上传至服务器
4,APICloud
优点:
不懂原生开发,不懂后台语言就可完成APP
缺点:
更新速度快,版本不够稳定
面向不懂App开发人群,不适合程序员和科技公司,过度依赖会降低技术水平
涉嫌抄袭DCloud大量代码
5,ReactNative
能够在Javascript和React的基础上获得完全一致的开发体验,构建世界一流的原生APP。
仅需学习一次,编写任何平台。(Learnonce,writeanywhere)
缺点:
初次学习成本高
必须在不同平台下写两套代码,依赖暴露的接口

相关行业资讯

1、数据库空间和网站空间是什么意思
2、Github编程语言分布统计:JavaScript称霸
3、网站优化第一步做到快速被收录
4、网站建设之初推广优化布局要注意哪些方面
5、你的网站SEO优化观念正确吗
6、做手机网站有哪些事项需要斟酌
7、网站被黑客非法入侵后百度降权的解决办法
8、浅谈采集他人网站内容的风险
9、如何优化网站内链建设
10、推广优化的优化怎么做
11、网站与搜索引擎关键词排名的逻辑关系
12、制作网站时要明智对待的几个方面
13、企业站如何让网站优化效果最大化
14、2021年网站建设要知道的一些规则
15、分享推广优化关键词优化基础
16、site域名网站首面为什么不在第一
17、什么网络推广公司最好呢
18、面对关键词排名的危险期要如何应对
19、石榴算法对哪些低质量页面说不呢
20、建设一个企业网站需要哪些功能模块 
21、手机网站建设对网站实时进行监控
22、互联网项目:死于方向,毁于节奏
23、网巢教你如何打造百度喜欢的网站内容
24、企业网站建设的意义有哪些?
25、企业如何做好手机网站建设
26、了解robots文件,如何主动告诉搜索引擎该抓取什么内容
27、企业网站建设基本步骤
28、公司网站制作实用性原则
29、如何打造简约型网站设计
30、将网络推广到传统企业
31、社交网络营销之制订“参与社交网络的规则”
32、知不知道成功的企业网站制作及优化要考虑哪些方面
33、网站建设中提高客户体验度的五项建议
34、百度点击算法做好五步提升网站排名
35、网站页面的文字排版对网站有什么影响
36、高质量的友情链接对网站SEO中优化有什么影响
37、什么才叫做营销型网站
38、网站建设给企业带来什么样的回报呢
39、SEO优化之关键词如何布局
40、网站内链布局的方法
41、我可以自己对网站进行维护吗
42、网站文章更新有哪些要求
43、浅谈高端网站定制
44、推广优化应该注意网站不收录的几种因素
45、定制网站开发的网页排版布局原则有哪些
46、该怎么写竞价创意
47、目前SEM投放有什么问题要注意
48、网站关键词应该怎样做才能通过SEO优化获得首页排名
49、新手小白该怎样做好SEO优化?
50、如何做一个好的企业网站

相关视频推荐

自动化行业网站制作焊锡机/点胶机/螺丝机网站
企业网站制作新模式全部仅需800元/年
如何提高企叫网站打开速度
公司网站到期了该怎小续费
企业为什么必须要做一网站
企业网站的导航栏一般要规划哪些栏目
国际物流FBA物流网站建设深圳易捷网站公司公司
银制品金银器网站建设深圳易捷网站公司
包装印刷行业网站设计
膜结构公司网站设计
工商财务公司网站设计
购买一个域名需要多少钱
企业网站建设云虚拟主机需要多少钱
财务公言的网站怎么做才能显示在搜索引擎的首页
网站建设一站式服务
深圳网站建设公司网站排行榜
深圳市易捷网络科技有限公司版权所有    粤ICP备2022153140号