深圳易捷网络科技财税咨询网-neatmaster518.com 返回首页

手机APP开发框架的选择

信息来源:深圳市易捷网络科技有限公司
信息发布时间:2024/12/22

手机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、这些都是网站建设时需要注意的基本细节
3、SEO初期优化有哪些需要注意的事项
4、网站制作对我们企业有什么帮助
5、门户网站开发需要遵循的原则
6、专业的网站设计是怎样的?
7、外链发布对seo优化排名究竟有效果吗
8、网站如何有效的发挥网络营销价值
9、网站的代码要如何优化,你了解吗
10、如何高效发布外链
11、提高用户体验的SEO优化的几个方法
12、网站品质判断参考因素
13、企业建网站下载速度要快
14、网站设计风格趋势变化
15、论坛运营全攻略
16、业务员经验如何和客户沟通
17、如何做响应式网站的整体设计
18、网站页面设计时,需注意什么问题
19、推广优化要建立在良好的用户体验上
20、网站怎么做让企业取信于民
21、中小企业网站制作注意事项
22、高权重的外链应该如何体现以及发布
23、企业网站制作过程中关键因素
24、营销型网站建设必须注意哪些标准
25、深圳网站建设易捷网络谈做网站的常识
26、学习seo网站优化需要了解的内容
27、如何加快企业网站内容的收录
28、如何设计高转化率的移动主页
29、网站优化:普通站长对于网站安全的一些见
30、深圳专业网站建设教你怎么进行高端网站建设
31、怎样的高端网站制作公司才算好?
32、网站制作的流程是什么
33、如何把网站运营做得更好
34、SEO优化如何提高网站用户体验
35、竞争对手网站之间只有竞争没有学习
36、使搜索引擎收录更多你的网站的三大基本法则~
37、如何快速提升企业网站SEO优化推广工作效率
38、医院网站建设需要遵循的原则
39、影响网站加载速度的因素有哪些
40、企业网站制作不仅仅是做网站
41、外链的价值性,都有哪些方面呢
42、从建站菜鸟到沉迷SEO的站长
43、企业邮箱:一场数字化时代的“必备”还是“鸡肋”?
44、网站优化中关键词分析4要点
45、站长在优化网站内容时也别忘记结构和页面
46、重新设计网站需要注意哪些
47、优化:购买链接有哪些注意事项
48、官方网站建设到底有几大步骤
49、用户需求分析对企业网站建设的影响有多大
50、传统企业该如何做B2C第一部怎么做
深圳市易捷网络科技有限公司版权所有    粤ICP备2022153140号