Sencha Touch 还是 jQuery Mobile?

69

我在考虑开发一个移动Web应用程序(现在、两周后或一个月后),应该选择哪一个?你作为移动Web开发者会选择哪一个呢?

如果jQM 1.0今天正式发布,我很可能会拥抱它(只要它确实能够实现承诺)。现在它还是alpha版,我想知道是否值得为商业级项目进行尝试?Sencha Touch是否是更好的选择?


1
这并不完全是一个重复,但感谢指针。 - William Niu
1
William,StackOverflow上有很多超人,他们会在不理解开发问题的情况下标记问题为重复,并对答案进行负评。 - Ashisha Nautiyal
20个回答

65

Sencha Touch是一个应用程序框架(您可以通过JavaScript编程来创建界面),而jQuery Mobile更像是一个移动增强库(您可以为内容编写常规HTML,然后添加jQuery Mobile进行过渡/动画)。jQuery Mobile具有更易学的曲线,但Sencha Touch可以更好地模拟“本地”应用程序。


41
你需要问自己的第一个问题是应用程序的目的是什么。如果你想在零售渠道之一上发布应用程序(iTunes、安卓应用商店),或者你需要访问尚未通过本地API可访问的设备特定功能(加速计、相机、联系人等),那么你应该考虑使用Native或其中一种混合解决方案(Appcelerator、PhoneGap等)。
如果你的受众更多地在“移动网页”空间,例如企业桌面网站的移动版本或内部网页应用程序端口,则应该考虑使用Sencha Touch和jQuery Mobile。这两者之间的决定实际上将基于你的开发经验以及你感到更舒适的选择。Sencha Touch是一个非常强大的平台,它有一个桌面版(ExtJS)和一个移动版(Sencha Touch),两者彼此镜像,因此知道一个就可以让你快速上手另一个。此外,Sencha已经在客户端采用了MVC模式,这真正有助于组织客户端代码,并使其与服务器端开发平台更加一致。
上面的帖子实际上是不正确的,使用客户端的MVC模式以及在调度命令中使用historyUrl会使你能够使用浏览器的后退和前进按钮,所以这不是jQuery Mobile的专属功能。此外,Sencha团队的产品套件包括一个Designer应用程序,提供了一个所见即所得的编辑器,允许拖放创建用户界面。该公司的路线图正在更新Designer应用程序,以允许拖放设计触摸移动屏幕和应用程序,并与MVC模式一起使用。他们还准备发布新版本的Sencha Command工具,可在几分钟内自动生成整个MVC应用程序结构,然后您可以添加必要的自定义代码来完善您的应用程序。最后,新的SASS主题能力使设计师能够使用CSS3和SASS配置文件以及变量和混合来生成适用于应用程序的跨浏览器CSS样式表。

因此,对于移动Web开发问题,选择哪种方式取决于您对面向对象JavaScript的熟悉程度。如果您非常熟悉它,那么Sencha Touch是最好的选择,因为它内置了可自定义的非常可扩展的类系统核心引擎......但是,如果您对JS的经验很少,并且希望服务器提供您的UI,并且不介意看到地址栏下拉以在页面之间移动(外观不太像Web 2.0),那么jQueryMobile是最好的选择。

很明显,我偏爱Sencha Touch,因为它具有深思熟虑的类结构、可扩展性、非常活跃的用户社区、Web/Mobile一致性以及对核心框架和简化开发工作的新工具的持续改进。更不用说Touch平台比jQM更成熟,因为jQM尚未达到生产模式。


2
关于Sencha Touch的一件事让我望而却步,那就是它的体积过大(主要的sencha-touch.js文件大小超过350kb,未压缩)。我不知道在开发中是否需要更多的文件。在我看来,在移动设备的带宽和速度不再成为瓶颈之前,这种体积是不可接受的。 - William Niu
2
思路是提前交付应用程序框架,然后通过XHR请求从服务器检索XML或JSON数据等更小的信息片段。因此,虽然您是正确的,初始加载时间比JQM长一些,但在ajax页面请求期间弥补了这一点,而不是对其他框架中的许多页面进行完整页面的服务器访问。只要您能向用户呈现足够的加载指示器,大多数人都愿意等待卓越的应用程序内页面性能和用户界面小部件的好处。 - user576929
1
@user576929:感谢您的解释!您提出了一个有力的观点。如果用户认为这个Web应用程序可以替代本地应用程序,那么下载大小实际上是微不足道的。然而,前提是用户需要有这种心态。我想知道这种前提何时能够成真。 - William Niu

23

我使用jQuery Mobile已经有一段时间了。它在Blackberry 6,iPhone和Android下运行良好。

我在这里写了一篇文章:jQuery mobile alpha

尽管它还是alpha版本,但他们的进展很不错。我一直在关注他们在github上的开发,似乎到2011年初就会有很酷的东西。

更新于2011年12月01日 jQuery Mobile发布了1.0版本,终于不再是alpha版了。在此处了解更多信息:http://jquerymobile.com/blog/2011/11/16/announcing-jquery-mobile-1-0/


7
补充一下,我之前也用了一段时间jQuery Mobile(两个应用程序)。它非常棒。但是,在我的安卓HTC Magic手机上,它的运行远没有Sencha Touch流畅。这让我怀疑在较慢的设备上,jQuery Mobile 还没有准备好。差别很大,我正在转向使用Sencha。 - i8abug
1
同意!与Sencha相比,JQM的性能较差。它更加复杂,但学习它每一秒都是值得的。 - neoswf
1
是的,Olivier,在我的经验中,ST2比JQM更轻量级、功能丰富和稳健。 - Ricardo

11

5

Sencha Touch的使用寿命比jquerymobile长,但我发现在设备后退按钮处理方面,jquerymobile比SenchaTouch做得更好。 我总是认为回退/历史按钮的处理在我的应用程序中非常重要,因此我更喜欢jquerymobile。 我总是认为自己是一名JavaScript程序员,但我喜欢使用jquerymobile时很少需要键入任何JavaScript代码的事实。 在我看来,jquerymobile的设计非常出色。


1
在Sencha Touch 2中,这已经发生了变化,现在框架内置了历史记录支持(我是作者...)。我们在大大扩展的文档中有一个指南 - 请参阅http://docs.sencha.com/touch/2-0/#!/guide/history_support - Ed Spencer

3

我也支持Sencha,JQM真的很慢,无法给人以本地应用程序的印象。

  • 普拉文

2
我一直在尝试使用Sencha Architect,老实说,这让我感到非常困惑。
我的背景是DotNet、html、javascript、VB、java,而且已经使用eclipse等工具有一段时间了,所以我不是一个完全的新手,可以理解依赖关系等问题。
以下是我遇到的问题:
我去Sench网站下载了Architect。然后它让我下载工具包和sencha touch。我按照帮助文件/网站推荐/指示下载了所需的内容。我有Sencha Architect V2.1.0 Build 584、sencha-touch-2.0.1.1-commercial.zip和SenchaSDKTools-2.0.0-beta3-windows.exe。
我还下载并安装了一个新的Java SDK /运行时等。安装是在一个干净的XP虚拟机上完成的。Web服务器是xampp。
Sencha无法识别SenchaSDKTools-2.0.0-beta3。你必须使用难以找到的说明进行修改。即使修改过后,Architect仍无法使用正确的SDK,并在部署时出现错误消息。
在此过程中还有许多错误需要解决,有时即使按照说明操作,数据也无法加载。
我花了11个小时才使应用程序能够正常运行,但它无法部署。学习新工具/框架已经够难了,如果开发环境也会出问题,而“教学演示”又让你走弯路,那就更糟了。
有很多人遇到相同的错误。
经过15个小时的努力,我放弃了这项工作,回归IBM XPages/PHP和Blueprint CSS,使用传统的手写html5/CSS3和jquery/Ajax/JSon应用程序。
我的原因是:应用程序构建器总是将你推回到命令行。我喜欢命令行,给我一个bash shell和vi,我就可以开始工作了。然而,对于复杂的、多文件部署,如移动应用程序,一个好的IDE是金子般珍贵的。Architect还没有达到这个水平。我不断需要打开引擎盖来修改以使事情正常运转。
我最初看Sencha是为了一个对移动应用程序感兴趣的12岁孩子寻找使用的IDE。我试用了它-它不适合-即使运行一个hello world类型的应用程序对于新手来说也太难了,而且帮助文件中的第一个应用程序并没有解释,而是要求你复制从网站上获取数据的代码(ccitybars app)。
Sencha的一个重大改进将是当Architect能够直接使用(可能是一个安装程序,其中包含sdk、tools、touch和architect),并且第一个应用程序-演示是一个简单的hello world,然后构建到输入数据、保存数据和显示数据,再到多表单。

那么,你的结论是什么? - Austin Henley

2

为什么要局限自己...

了解PhoneGapTitanium Appcelerator

根据你想达到的目标进行比较。我知道Sencha Touch需要付费许可证,而像你说的jQM还没有正式发布。

现在是移动领域非常好的时机,因为有很多可行的选择。


2
我不太愿意使用像PhoneGap这样的框架,因为它增加了额外的抽象层。当本地SDK发生变化时,我可能会依赖于PhoneGap团队来保持他们的框架更新。你不觉得这是一个潜在的问题吗? - William Niu
2
以下是一个场景:当iPhone4加入前置摄像头时,我认为PhoneGap可能需要更新他们的API以适应这种变化。谁知道未来还会有什么其他的变化,也许是热成像检测?这只是硬件层面;苹果有时会对固件层面进行更改。 - William Niu
2
@William 如果该功能对您很重要,只需从 Github 下载代码、添加功能并继续进行即可... 这仍然比自己编写整个代码更少。 - Aaron Saunders
3
Sencha Touch现在是免费的(http://www.sencha.com/blog/2010/11/15/sencha-touch-1-0-ships-now-free/)。 - chrish
9
PhoneGap实际上是与JQM/ST问题无关的正交问题。 PhoneGap为您提供本机外壳,以编写HTML/JS/CSS内容 - 在其中,您可以使用您选择的JS框架,无论是JQM还是ST。 - ob1
显示剩余6条评论

2

别忘了还有Dojo Toolkit Mobile。它看起来很不错,至少乍一看是这样,并且建立在经过验证和坚实的Dojo Toolkit核心之上。http://dojotoolkit.org/features/mobile。 最近Dojo Toolkit没有得到太多关注,但看起来他们从以前有些笨重的时候取得了很多进步,我认为值得一看。


2

我认为jQuery移动版更容易学习,看起来非常有前途。虽然1.0版本还未发布,但它将是一个很好的产品。我觉得它非常吸引人,因为它基于jQuery-简单是其口号。


我们已经付出了大量的努力来改进Sencha Touch的学习材料。我们添加了20个指南,从入门到部署,以及更多的类文档和一个大大升级的文档中心应用程序。希望您会查看我们在2.x中所做的工作:在Sencha Touch 2中发生了变化,现在我们已经将历史记录支持内置到框架中(我是作者……)。我们在我们大大扩展的文档中有相关指南 - 请参见http://docs.sencha.com/touch/2-0 - Ed Spencer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接