欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

AppCan VS PhoneGap - 对比两大移动开发平台

shiping1 的头像

AppCan VS PhoneGap - 对比两大移动开发平台

发表于1年前(2012-07-05 18:01)   阅读(16975) | 评论(13 35人收藏此文章, 我要收藏
1

    要说hybrid app 框架的典范,Phonegap和AppCan无疑是最受大家关注的。先说明,本人是App的开发者,对手机上的web app也研究一段时间。本文以技术角度去阐述一个事实:为什么AppCan比Phonegap开发出来的应用会比较好。 

    其实要从技术上来讲的话,phonegap只是提供本地API,以及一个打包器,大部分的UI、UE的都是交由phonegap推荐的jquerymobile,sencha touch等js+css框架来实现。而为何phonegap比较受大家关注呢,一方面是它出来比较早,推广时间较长;另一方面它是开源的,很多android native开发者都对其进行了插件扩展,能够满足一些开发需求。然而,经过对手机版(ios,android)webkit研究过一段时间后,一个不争的事实是手机版webkit有诸多问题,特别是在android碎片化的情况下,不同版本,不同手机对某一个css属性表现的就不一样。这对于一个要做跨平台开发的框架来说,是不能接受的,也达不到跨平台的初衷。下面我利用appcan+AppCan UI2.0开发一个简单的app,同时也利用phonegap+jquerymobile去开发同样的一个app。 

首先我们先看一下AppCan应用与PhoneGap应用视频对比: 
http://v.youku.com/v_show/id_XNDIzODg2MjY0.html 
 

下面是开发介绍: 

AppCan开发 

    首先,关于UI,AppCan的UI,即css文件,按照控件的类型(按钮、列表等)拆分的比较细,这样,如果一个应用中用不到的控件,开发者可以把这些css文件删除掉。利用AppCan 的开发环境,创建一个工程,并创建几个页面。其整个工程截图如下: 
 

这个demo要做的是三个UI,第一个就两个按钮,第二个是展示内容用的,内容有3w多字。第三个ui是一个网络跨域获取数据的例子。 
第一个ui,由于是只有两个按钮,只用一个index.html,利用AppCan IDE选择按钮控件,生成代码并利用AppCan IDE中自带的模拟器查看效果: 
01<!--块容器开始-->
02<div class="ub ub-ver uba  uc-a1 t-wh ">  
03    <div class="ubb b-gra  c-m1 uinn uc-t1">
04        <!--按钮开始-->
05        <div ontouchstart="zy_touch('btn-act',getpageone)" class="btn uba b-bla uinn5 c-blu c-m2 uc-a t-wh ulev1">加载page "two"</div>
06        <!--按钮结束-->
07    </div>
08    <div class="ubb b-gra  c-m1 uinn ">
09        <!--按钮开始-->
10        <div ontouchstart="zy_touch('btn-act',getpagetwo)"  class="btn uba b-bla uinn5 c-blu c-m2 uc-a t-wh ulev1">加载page "three"</div>
11        <!--按钮结束-->
12    </div>  
13</div>
14<!--块容器结束-->
普通分类: