首先在写这篇文章前,必须先申明一下,本人是技术出身,对HTML技术及手机客户端都有过编程经验,只是出于工作岗位的变动,便没有再具体代码工作,以下文章涉及的中间件的基本代码实现及前期的API使用,都是自己测试过的,虽然比较浅,但是都是真真实实的。所以请各大网友拍砖,手下留情哦~另外本文的视角如文章标题一样, 是从产品经理的角度去做比较的,不是从技术方面上去做比较。

而关于原生态的开发,个人觉得HTML5中间件或者混合原生的方式肯定是不用做比较的,毕竟原生的东西还是很强大的,很多效果是HTML5无法比拟的,但是请确认你要做的产品是要炫?还是实用?好吧,入正文啦。

记得第一次接触PhoneGap,是在2011年5、6月份左右的时候,当初寻找这类HTML5中间件或者说HTML5平台的初衷是为了能快速推出iPhone及Android等智能手机客户端;至于为什么需要这类HTML5中间件呢?我们是出自这样的考虑:

  • 由于公司资源的分配问题,原生态开发组已经肩负太多的项目,等待原生态组团队明显不能满足我们急切要推出智能端的要求;而现有团队都是做WEB开发的,显然对于HTML这个团队是比较熟悉的,而且这样的学习成本也是相当的小;
  • HTML5跨平台的特性,一次编译,run Anywhere.只要一套html5程序代码,经过中间件的编译就可以在iPhone、Android及Symbian,还有Windows Phone 上运行,明显这个是开发成本及时间成本上可以大大的节省;
  • 用户体验性能如何,能否给用户提供流畅的用户体验;

在满足了这些条件及经过一周时间的选型之后,公司决定选择了PhoneGap平台(中间也分析过其他中间件平台如:Titanium、Sencha Touch等,但都不是很理想),接下来就是苦逼的开发鸟~

由于前期在HTML5平台的使用上欠缺经验,所以在前期做选型的时候没有用很具体的业务逻辑去做性能测试,结果到了开发的中间过程,发现PhoneGap的整体性能太差了,点击一个事件都要等半天,启动页面也很慢,切换页面也是相当的慢,最终我们的产品连页面件的切换动作都不敢用…但是已经在研发进程中了,此时再改方案似乎也没有好的平台选择,也无法保证产品进度鸟,最终我们做出了这样的技术优化:

  • 页面的js库,采用自己的JS库,没有采用Jquery mobile,以加快加载速度;
  • 采用本地HTML界面模版方式做数据缓存,以减少数据请求次数;
  • 修改了PhoneGap源代码,优化启动界面及部分接口,如地图定位接口;

最终产品如期推出,可是性能方面上只能说是差强人意啊,至于体验,我想到了目前流行的一句话我想说“我能讲脏话吗?”“不行”“那我没什么好说啦!!!”

其实当初也大体知道PhoneGap在性能方面上表现差强人意,可是我们是这么期望的,在我们产品的开发过程中,应该会得到改善,而事实证明这个期望让我们承担了太多的风险;

之后,我们也试过了采用Sencha来实现,表现也是一般,所以对于HTML5中间件的性能表现,我们都不抱希望了,虽然说对这个方向一直都是看好的,可是一直都没有很好的中间件能解决这个性能问题;这个状态一直持续到今年的3月份的一天,在36Kr网站上得知了AppCan这个产品在做内测,所以很快就申请了内测,进行了试用;

一开始我试用的是采用Web模式,将http://www.8000.cn的网址编译成APK包做测试,发现好像整体启动速度及性能表现还可以;出于上次的经验,我再测试了AppCan所谓的Easy模式,随便搞了新闻类的编译了一下,感觉这东西好像还不错哦,效率应该可以挺高的,可是Symbian版本就实在难以接受鸟,下载后一大段时间白屏,然后还要再下载一个AppCan核心插件,最终直接关闭程序,无视Symbian版本;然后便安排了技术人员做深入的了解及实验,包括从API接口,性能及支持方面进行详细的研究;

研发团队经过了2周的时间的代码实现,出了一个公司产品的Demo版,在经过大多数相关人员的使用过后,感觉性能比PhoneGap实现的确实改进了不少,比如说页面的切换特效还挺顺畅的,一些公共插件及接口都比较全面,如Jabber通讯、二维码扫描、支付宝等;可是致命的一个问题是:点击触发某个事件的时候,还是可以感觉‘顿’一下的等待,让人有点不爽,最终这个问题也顺利得到了解决,原因是onclick事件的响应没有ontouchstart事件来得快,两者相差了0.5s这个数量级,实在无语AppCan这样的重要体验,都没有文档说明。

下面表格是PhoneGap与AppCan综合对比表:

综合来看最终还是感谢AppCan这个产品,虽然有些地方还需要完善,但的确做得挺棒的,基本满足了我们产品研发的需求。PhoneGap作为较早进入国内的HTML5中间件知名度较高,但毛病也不少。希望两者都能越来越好!

PhoneGap Vs AppCan的更多相关文章

  1. 【Hybrid App】一个产品经理眼中的PhoneGap Vs. AppCan

    首先在写这篇文章前,必须先申明一下,本人是技术出身,对HTML技术及手机客户端都有过编程经验,只是出于工作岗位的变动,便没有再具体代码工作,以下文章涉及的中间件的基本代码实现及前期的API使用,都是自 ...

  2. 混合应用开发:Phonegap VS AppCan

    混合应用开发:Phonegap VS AppCan 简介 Phonegap PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台.它使开发者能 ...

  3. (转)Phonegap VS AppCan

    简介 Phonegap PhoneGap是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台.它使开发者能够利用iPhone,Android,Palm,Sym ...

  4. AppCan试用体验

    最近自己想开发一个基于Android平台的小应用,但不想使用JAVA开发,还要快速实现功能,学习成本低. 所以找了很多框架,最后基本锁定在phoneGap和AppCan,又看了AppCan与phone ...

  5. 开发node桌面级应用工具:apk转化epub

    随着苹果ibooks对国内的开放,最近接了个麻烦的需求: 把现有的APK转化支持苹果ibooks电子书的epub格式 apk,基本都知道就是安卓的应用程序 epub,是ibooks支持的电子书格式 ( ...

  6. 基于.NET平台常用的框架整理(转)

    自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的 学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到, ...

  7. Index

    我主要在研究.NET/C# 实现 PC IMERP 和 Android IMERP ,目的在解决企业通信中遇到的各类自动化问题   分布式缓存框架: Microsoft Velocity:微软自家分布 ...

  8. 【转】基于.NET平台常用的框架整理

    自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累 了一些开源的组件,就目前想到的先整理于此,如果再想到, ...

  9. 基于.NET平台常用的框架整理

    自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就 ...

随机推荐

  1. 突破本地离线存储5M限制的JS库localforage简介

    http://www.zhangxinxu.com/wordpress/2018/06/js-localforage-localstorage-indexdb/

  2. 11204RAC-dbca建库脚本

    SET VERIFY OFFconnect "SYS"/"&&sysPassword" as SYSDBAset echo onspool /u ...

  3. PHP手册-函数参考-日期与时间相关扩展

    一.Calander.日期/时间.HRTime扩展的对比   Calendar 日期/时间 HRTime 简介 历法扩展集包括了一系列用于在不同历法间进行转换的函数,它是以Julian Day计数为中 ...

  4. 如何使a标签打开新页面并阻止刷新当前页面

    错误: HTML中,使用href属性时,当前页面和新页面均跳转到URL指定的页面,即当前页面也刷新: <li id='goToBack'><a href='**.action' ta ...

  5. was修改控制台端口教程

    这里我控制台启用了https所以修改WC_adminhost_secure,如果要修改控制台http的端口那么修改WC_adminhost (要修改应用的访问端口,则http--修改WC_defaul ...

  6. angular组件之间的通讯

    组件通讯,意在不同的指令和组件之间共享信息.如何在两个多个组件之间共享信息呢. 最近在项目上,组件跟组件之间可能是父子关系,兄弟关系,爷孙关系都有.....我也找找了很多关于组件之间通讯的方法,不同的 ...

  7. WeRun is mini-app

    WeRun is a mini-app within WeChat that allows users to monitor their daily step count. One of its mo ...

  8. C#执行Sql 时,出现“算术运算导致溢出”问题,如何解决?

    昨天在C#执行oracle的sql语句时,总是报错,原先在pl/sql 执行sql语句是可以的,在C#执行就报“算术运算导致溢出”问题 SQL语句 select A.SKU_ID 商品标识,A.COL ...

  9. matlab作图 latex插图

    推荐用saveas eps,再用eps2pdf转成pdf.这样可以之间pdflatex编译. if result.savepic saveas(gcf,[ pwd '/picture/right_' ...

  10. Win10系列:VC++ Direct3D开发基础1

    在介绍如何使用Direct3D项目模版来绘制立体图形之前,首先为读者介绍在Direct3D应用程序开发过程中涉及到的一些常用概念. (1)资源 资源是指可以被Direct3D图形管线所访问的内存空间, ...