美文网首页
HybridApp混合开发

HybridApp混合开发

作者: 蓝田一亩 | 来源:发表于2019-12-11 14:44 被阅读0次

一:App按网页语言与程序语言的混合,通常分为三种类型:多View混合型,单View混合型,Web主体型。

(1)多View混合型

   即Native View和Web View独立展示,交替出现。2012年常见的Hybrid App是Native View与WebView交替的场景出现。这种应用混合逻辑相对简单。即在需要的时候,将WebView当成一个独立的View(Activity)运行起来,在WebView内完成相关的展示操作。这种移动应用主体通常是Native App,Web技术只是起到补充作用。开发难度和Native App基本相当。

(2)单View混合型

   即在同一个View内,同时包括Native View和Web View。互相之间是覆盖(层叠)的关系。这种Hybrid App的开发成本较高,开发难度较大,但是体验较好。如百度搜索为代表的单View混合型移动应用,既可以实现充分的灵活性,又能实现较好的用户体验。

(3)Web主体型

   即移动应用的主体是Web View,主要以网页语言编写,穿插Native功能的Hybrid App开发类型。这种类型开发的移动应用体验相对而言存在缺陷,但整体开发难度大幅降低,并且基本可以实现跨平台。

   从分析可见,Hybrid App中的Web主体型只要能够解决用户体验差的问题,就可以变成最佳Hybrid App解决方案类型,而这也是目前最难解决的问题。    

二:线下主流混合模式

HybridApp开发,现阶段主流的平台包括PhoneGap,AppCan,appMobi,Titanium等,它们基于webkit开源内核,使用HTML5 标准开发,适配机型简单,支持开发者自定义插件,并能很好的应用于商业,教育,娱乐等行业,成为移动开发者的首选开发平台。

1. PhoneGap(cordova)

PhoneGap是一款Apache的开源移动开发平台。目前已经将核心代码贡献给Apache cordova,最新版本是5.4.0,它是基于HTML,CSS和JavaScript的,可以使用一些开源的框架比如jQuery Mobile,Dojo Mobile,Sencha Touch等等来提高用户体验,也提供了比较丰富的原生插件调用。

特性:

1.可以使用DreamWeaver 5.5编码,现在使用appMobi提供的xdk 进行模拟器开发。

2.代码开源,开发者可以放心使用。

3.兼容性,一次开发,多处运行。

4.使用JS+HTML5,成本低。

优点:

1. Native接口比较丰富,通过封装的API可以直接访问硬件,比如说加速,相机,指南针,GPS,文件访问等。

2.接口文档描述非常详细。

3.支持平台多,包括iOS,Android,Blackberry,Symbian,bada,Windows Phone 7,Windows Phone 8 等。

缺点:

1.需要针对相应的平台环境配置,进行编译,打包测试,发布等等。由于使用Hybrid开发的用户群,需要对各个平台的开发都要需要了解,对硬件等等都要配置,加大开发成本。

2.使用效果启动慢,页面切换响应慢,数据请求慢。

3.因为是国外的框架,技术支持不够到位,出现问题,无法排解,成为技术攻关的难点。

资料:cordova官网w3cschoolcordova贴吧

2. AppCan

AppCan是本土移动开发中使用最广的移动平台,网络舆论而言,AppCan是PhoneGap的中国化,但是从对AppCan实际使用,以及转向移动开发的朋友们互相交流反馈,他们是截然不同的两个移动平台,AppCan不仅封装了类似于PhoneGap的本地调用功能,而且封装了uexWindow多窗口机制,实现了移动端的iframe效果,虽然不是开源项目,但一直都有面向开发者的免费版,并且也有定位于企业用户的企业版套装。

特性:

1.提供的集成开发环境的IDE进行模拟器开发。

2.兼容性,一次开发,多处运行。

3.使用JS+HTML5,成本低。

4.在线打包。

5.代码加密保护机制。

优点:

1.支持在线上传证书打包,对于不了解苹果,以及Android 环境开发的人是福音。

2.支持更多的原生调用,比如UI控件的封装,通讯类(socket),地图,支付宝等更多的原生控件支持。

3.拥有统一数据统计平台,便于运营管理开发的应用。

4.完善的技术支持,官方论坛以及Q群建设较为完善,使开发者更好的进行交流沟通。

缺点:

1.虽然有中文的开发文档,但描述比较简单,希望他们丰富他们的API文档。

2.免费版本不支持自定义插件(据说企业版可以自定义插件)。

3.暂时只支持iOS,Android两大平台。

4.许多功能需要企业版才能实现,不过是收费的。

资料:appcan官网

3.APICloud

APICloud是一款“云端一体”的移动开发平台,信仰“云端一体”的理念,重新定义了移动应用开发。APICloud为开发者从“云”和“端”两个方向提供API,简化移动应用开发技术,让移动应用的开发周期从一个月缩短到7天。APICloud由“云API”和“端API”两部分组成,可以帮助开发者快速实现移动应用的开发、测试、发布、管理和运营的全生命周期管理。

特性:

APICloud提供的原生模块,涵盖UI、系统、交互、影音、支付等类型。另外,APICloud还为开发者提供了APICloud ID集成开发环境,其一键真机调试、代码同步、编译本地测试包等功能也提高了开发效率。官方号称7天做出一个App。

优点:

1、方案完整,简化,上手快。

2、IDE整合做的不错,直接连接云端,SVN代码同步,直接连接手机AppLoader真机调试,Log可以通过IDE输出,比模拟器真实,直观。

3、云编译很方便,跨平台打包,直接生成二维码。

4、手机底层硬件/组件调用API很实用,比如语音识别,都不错。

5、文档完备,相比开源项目往往缺乏文档,信息需要东拼西凑来说,APICloud的文档比较集中和全面。

缺点:

 1、缺乏常见模式App的完整框架Demo,比如:一个带头部信息,底部导航和侧边菜单的应用框架用APICloud的UI组件怎么写,页面间跳转和参数传递怎么写,这些都是动手开发之前最先要解决的问题。Demo

App里的组件示例有用,但是框架和基本流程要先跑起来。

2、UI组件不够丰富。

3、IDE联机调试的Log输出不稳定,经常断线。

4、文档层次和细致程度还不够。文档现在的层次有点混乱,不好定位信息,最好分一下类别,比如媒体类,通讯类,等等。另外还有一些API没有说明文字。

资料:apicloud官网百度经验

4. React Native

React Native 是一个 JavaScript 的框架,用来撰写实时的、可原生呈现 iOS 和 Android 的应用。其是基于React的,而 React 是 Facebook 的用于构建用户界面的 JavaScript 库。由 Facebook 开发并在2013年将其开源,React 已经得到了颇为广泛的使用。但是其使用的范围比较狭窄,它仅是用于渲染用户的应用程序的界面,而不是更大的 MVC 框架。

React Native 也只是 React,但是是针对移动设备的。也有一些少许的不一样的地方,比如开发者需要使用组件而不是

1.把cocoa里面的controller和view统一成了component,其实RN里只有component这个组件概念,既可以扮演页面级别的组件(controller),也可以扮演一个模块级别的组件(UIView)。入门门槛降低了很多。

2.动态绑定,这个React的基本功能,被带到了客户端开发中来,数据和视图是动态绑定的,数据发生变化,视图会跟着变化,很多操作视图的代码都可以省略了。

3.引入了类似于CSS(一个子集)的样式管理,可以内嵌到模块,也可以全局使用,定义样式变得非常简单通用。

4.引入了Flexbox布局,把ios本身复杂的AutoLayout简化,使用很方便,学习起来也更简单。

5.引入了方便的npm管理,有大量现成的nodejs包可以用(例如moment,underscore等常用模块),还可以把自己项目模块搞到内部npm上做通用组件,另外,npm上还有不少别人写的react native的插件。例如下面这个。

6.第三方组件里有一个可以把icon font引入项目的组件,可以在任何显示图标的地方直接用icon font显示,灰常方便。

7.调试很方便,一次编译后,每次改了js代码,只需要在模拟器里command+R即可重新加载代码。有问题会直接报错,里面有代码行数等详细信息。

8.完整封装了各种js内置的方法,例如:setTimeout,setInterval,XMLHttpRequest,localstorage,console.log等,都是用oc原生方法封装的。

9.引入ES6的支持,可以使用各种新特性,例如最常用的箭头函数,解决this作用域乱套的问题。

缺点:

1.组件不全,第三方组件也不全,遇到某些特殊功能,需要捣鼓很久,例如摄像相关的,文件读写,文件上传之类的组件。

 2.性能并非媲美原生,还是有一些损耗的,特别是交换大数据的时候,例如读取相册。

3.ios和android代码并非通用,有可能会需要维护两套,或者在代码内做一些判断。

4.并非网上大家说的,写一次代码,多端通用,网页版和客户端版完全不是一个概念,只有部分代码可重用。

5.把代码都打包到bundle里面,不知道苹果对这种开发方式是否会不太喜欢,甚至拒绝上线。

6.实际开发的时候,还是需要了解底层原理,自己开发跟原生桥接的组件,这个对普通前端来说是一个很大的挑战。

资料:RN官网RN中文案例官方DEMO

5.WeX5

WeX5遵循Apache开源协议,完全开源免费,上百个组件框架,全部开放,可视化的组件框架,开发者可自定义组件,集成第三方组件,采用MVC设计模式,数据和视图分离,页面描述和代码逻辑分离,支持浏览器调试、真机调试、原生调试,等多种调试模式,开发者可掌握每一行代码。

WeX5一直坚持采用H5+CSS3+JS标准技术,一次开发,多端任意部署,确保开发者成果始终通用、不受限制。WeX5的混合应用开发模式能轻松调用手机设备,如相机、地图、通讯录等,让开发者轻松应对各类复杂数据应用,代码量减少80%。

优点:

1.由于遵循Apache开源协议,所以可以使用Apache的插件

缺点:

1.教程不敢恭维,不详细,没针对性,做教程应该针对某功能详细介绍。

2.使用操作式布局,不是代码的,其实这点好处没有弊端大,因为开发者或多或少对HTML5,代码还是会的,反而搞个布局工具,让我们相当于重新学习开发工具了。老手变新手。

3.部署方式在线更新,不是很理想。

4.是从cordova工具基础上开发的,使用的也是它的插件,个人感觉插件首先不太会用,教程不详细,并且插件反馈不也友好,比如我试过下载插件,下载xx。ZIP,如果ZIP的url找不到,也不提示错误,没提示要我下部怎么做了,下载进度没不知道是有还是没有。所以WEx5,就开发功能而言有很大的局限性。

资料:wex5官网w3cschool相关文章

6. uni-app(国产)

优点:

1、页面文件遵循 Vue 单文件组件 (SFC) 规范

2、组件标签靠近小程序规范/

3、接口能力(JS API)靠近微信小程序规范,但需将前缀 wx 替换为 uni

4、数据绑定及事件处理同 Vue.js 规范,同时补充了App及页面的生命周期

5、为兼容多端运行,建议使用flex布局进行开发

6、支持 app-plus(5+APP)、h5(H5)、mp-weixin(微信小程序)、mp-alipay

(支付宝小程序)、mp-baidu(百度小程序)。

缺点:

1、若想安装 less、scss、ts 等编译器,需手动 npm 才能安装;

2、其他开发工具相比HBuilderX效率不足,且发布 APP 需要HBuilderX;

3、cli创建的项目,编译器安装在项目下。不会跟随HBuilderX升级。如需升级编译器,执行npm update。

4、文档不够友好,毕竟是多端开发,需要踩坑

资料:uni-app官网Dcloud社区问答

另还有Ionic框架、Moblile Angular UI框架、Intel XDK框架、Sencha Touch框架、Kendo UI框架、AppsGeyser框架、AppsBuilder框架、AppMachine、Kinvey框架等混合框架。

相关文章

网友评论

      本文标题:HybridApp混合开发

      本文链接:https://www.haomeiwen.com/subject/hmpogctx.html