hybrid app

欧阳正谊
2023-12-01

Hybrid App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势”。


原生native app

优势:

a、应用的性能好;

b、适配起来相对容易

缺点:

a、无法跨平台:Android和iOS都需要开发各自平台的版本——开发成本高;

b、升级麻烦:每次升级都要下载安装包,Android还好,反正不需要审核,下载就下载吧,但iOS就麻烦了,发布每个版本还得经过App Store的审核,这导致第三个问题;

c、Android和iOS很难同步发布。


web app

优点:

a、跨平台,开发一套,Android和iOS可以同时使用,且可以同步发布;

b、对iOS而言,不需要等待审核时间,随时上线;

缺点:

a、性能较差;

b、对Android和iOS来说,需要学习成本;


lua app

优点:

a、对iOS而言,不需要等待审核时间,随时上线;

b、性能跟native完全一样(只是语法进行了转化,底层实现完全一样);

缺点:

a、Android和iOS来说,需要学习成本;

b、无法做到跨平台,对iOS支持的相对更好;

c、有审核不通过风险;


React Native app:

优点:

a、能够用JavaScript脚本就可以写出App的界面,对从事Web开发的同事们转行做几个简单的移动App是个福利。不用为了写个移动App小程序而专门去学习Objective-C和Swift。

和其他的移动Web框架相比:
  • Native不用WebView,彻底摆脱了WebView让人不爽的交互和性能问题;
  • Native的原生控件有更好的体验;
  • Native有更好的手势识别;
  • Native有更适合的线程模型;

缺点:

a、还在试用阶段,潜在的问题尚不得而知:兼容性问题,性能问题等。还没大量普及,学习资料尚且不多,供爱折腾的朋友尝尝鲜。


Hybrid 框架(+lua):

a、wax

Wax是什么?

Wax for iPhone这种框架在开发时,旨在把Lua脚本语言和原生Objective-C应用编程接口(API)结合起来。这意味着,你可以从Lua里面,使用任何和全部的Objective-C类及框架。

从技术上来讲,Wax结合了Objective-C类和原生C代码。Lua语言嵌入了C语言,然后Objective-C类并入到其中。

为什么使用Wax?

Wax是免费的、开源的。与其他一些基于Lua的移动开发解决方案不同,Wax是个开源框架,只需要你花一点点时间就可以上手,不需要花钱。不喜欢Wax的工作方式,或者发现实施方面的缺陷?源代码可免费获取,你总是可以改动源代码,以满足自己的需要。

可以利用原生API。这意味着,为教Objective-C而编写的教程很容易由Lua for Wax来改动和编写。这还意味着,你的应用程序在外观感觉上总是如同原生应用程序,不过又得到了用Lua这种高效脚本语言编写代码可以节省时间的好处。

可以使用Xcode。这意味着,模拟器和设备部署都轻而易举,不会轻易与未来的iOS版本决裂。

可以利用所有现有的Objective-C库。如果你有一个Objective-C类是以前编写的,不需要改动,就可以将它用在Lua中——只要把它放入到Xcode。Three20之类的库也是一样。只要按照正常指令来添加库,就可以使用Lua代码访问它们。

可以利用Wax Lua模块。Wax有几个内置的Lua模块,使得异步HTTP请求和JavaScript对象标注(JSON)创建/解析极其容易而快速(因为模块是用C编写的)。

没必要管理内存。不再需要操心内存分配之类的事务。Wax为你处理这一切。

Lua类型自动转换成对应的Objective-C类型,反之亦然。 这意味着,如果你调用了需要NSString和NSInteger的某个方法,但传送了Lua字符串和Lua整数,Wax会为你搞定转换工作。这种转换功能强大,甚至可以处理复杂的Objective-C特性,比如选择器。

你可以利用所有上述特性。不需要精挑细选。你获得所有特性!


Hybrid 框架(+web):

a、PhoneGap

PhoneGap是一款国外的开源移动开发平台。目前已经将核心代码贡献给Apache cordova,最新版本是2.6.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 开发的用户群,大部分是web开发者,对原生开发基本不了解,这无疑给每一个开发者增加了沉重的负担,需要对各个平台的开发都要需要了解,对硬件等等都要配置,加大开发成本。

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

  3. 文档虽比较详细但是基本是英文,对于国内大部分用户英文水平较差的是比较大的挑战。

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


b、AppCan

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

  特性:

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

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

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

  4. 在线打包。

  5. 代码加密保护机制。

  优点:

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

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

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

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

  缺点:

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

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

  3. 暂时只支持iOS,Android两大平台,不知道什么时候推出Windows Phone 8?

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


c、Titanium

Titanium移动平台是所有移动开发平台中比较另类的,它将JavaScript和本地库链接在一起,编译成字节码,针对iOS以及Android两个平台分别构建一个软件包。应用程序使用HTML,JavaScript和CSS进行开发,并支持PHP,Ruby和Python。应用程序可以使用 Appcelerator API访问本地特性。并提供Appcelerator Studio开发环境,由于编译成本地代码,所以用户体验是最好的。

  特性:

  1. 针对不同平台生成对应的原生包 。

  2. 供Appcelerator Studio开发。

  优点:

  1. 针对JS解析生成原生控件,基本达到纯原生的用户体验。

  2. 支持自定义插件。

  缺点:

  1. API文档为英文,并且比较简单,对国内用户使用有一定挑战。

  2. 跟PhoneGap 同样,国外框架,技术支持困难。

  3. 支持Android,iOS,黑莓平台。

  4. 环境需要用户自己搭建比较复杂。


d、appMobi

appMobi推出了全新开发工具XDK,这个工具使得开发者可以使用HTML5构建网络和移动平台的应用程序,可以进行屏幕仿真调试、设备实际调试和遥控调试等。

  特性:

  1. 使用XDK 进行开发。

  2. Html5+CSS+JS。

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

  优点:

  1. 本地接口较为丰富,并且推出有游戏加速引擎,主要包括物理引擎、离线和动态缓存、媒体播放器、验证和加密、增强现实、二维码和QR扫描、更好的显示支持。

  缺点:

  1. 国外框架,技术支持差。


 类似资料:

相关阅读

相关文章

相关问答