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

手机APP开发框架的选择

信息来源:深圳市易捷网络科技有限公司
信息发布时间:2019-7-11 21:42:37

手机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、2013年以后搜索引擎优化的长尾内容应该怎么操作
2、公司网站制作图片
3、更好的网站定位可以帮助企业获得更高的成功率
4、建立良好的推广优化体系培养自身推广优化全局观
5、移动互联时代怎能少得了手机网站建设
6、浅析网站seo优化重点!
7、浅谈社会化网络推广的表现形式
8、seo优化需要艰苦的工作
9、导航和搜索之间该如何相互协调
10、做好seo网站优化的基础是什么,如何挖掘关键词
11、网站设计排版的原则,您了解吗
12、网站建设之内容页面设计注意事项介绍
13、【SEO名词解释】XML网站地图(XML SiteMap)
14、知道企业需要什么样的网站建设吗
15、手机网站建设商家以完美的网页形象作为获取合理利益的平台
16、响应式使网站制作更具多元化
17、sitemap对网站优化有什么作用?
18、在网站建设完成后应该如何留住客户
19、「建站教程」手把手教你如何快速搭建企业网站
20、总结网站外链建设需要注意的七大原则
21、强有力的执行力会有好的收获
22、企业建网站网页设计视觉元素功能与审美分析
23、在网站建设中背景设计起到重要性及相关思路
24、外贸网站制作访问速度是决定性因素
25、运用逆向思维打开网络推广营销思路
26、中小企业为什么要做网站制作?
27、网页设计时字体该怎样使用
28、博客制作(如何建立个人独立博客)
29、内容重复度是导致网站降权的慢性病
30、找专业做网站公司合作无后顾之忧!
31、网站结构中的反链是什么?
32、推广优化必知的100个网站优化问答(五)
33、5G普及以后,SEO将会如何发展
34、影响网站排名的10个因素
35、百度分享时该注意点什么
36、企业网站如何突出企业特色颠覆性的转化让1+1大于2
37、营销网站建设合理的规划
38、网站建设之网页设计原型图
39、如何做好企业的手机建站
40、企业网站建设与网站运营需要注重什么
41、利用第三方外链平台做关键词优化排名
42、巧用分类信息网站提高网络推广关键词排名
43、如何查看网站是哪家公司做的
44、网站外链做量还是做质 全面解析外链优化效果
45、如何使用SEO来改善产品市场契合度?
46、解析关键词密度设置能否决定网站优化成功
47、手机网站建设的基本原则
48、推广优化虽然重要但是切记过度优化
49、网站开发测试都有哪些流程
50、网站建设当中有哪些功能会令用户喜欢

相关视频推荐

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