Sproutcore / Ember / Blossom / Sencha和移动设备(或alt框架)的现状

时间:2012-03-14 02:14:49

标签: sencha-touch ember.js sproutcore

我一直在寻找Sproutcore,Ember和Blossom以及其他竞争框架(例如Sencha)来选择HTML5客户端应用程序项目。这些项目的状态,信息和文档有点分散,需要清晰,所以我向社区提出这个问题。

我的项目是一个类似本机的HTML5应用程序,其桌面级复杂性需要一个完整的应用程序框架,它可以很好地在桌面上运行,并且可以在具有触摸感知功能的移动设备上以极快的速度运行。小部件应该是原生的(不像网络),但可以自定义,以便应用程序独有。

问题/框架要求:

  1. 原生与网络风格的应用。框架应该让它变得容易 通过自定义功能构建类似本机的用户体验 原生的感觉(不只是完全模仿mac / win / iOS)。一些文字 周围的Ember表明它真的意味着网络风格的应用程序 - 没有给出 UI层可能不言而喻。像Sencha这样的框架可以轻松容纳自定义小部件吗?
  2. 移动应用程序。框架应适用于移动设备,并具有触摸输入和 我在研究中看到的几个笔记表明Sproutcore和 开花并不适合移动,而且Ember更好 面向移动(尺寸?)。目前尚不清楚是否 触摸/移动库在Sproutcore / Blossom中非常发达,如果它们将被支持它 目前的状态向前发展。 (并且开发编译为本机是不可接受的)。另一方面,像Sencha这样的框架,它们是否能够在桌面和移动设备上运行良好?
  3. 框架完整性。框架应该是一个相当完整的应用程序框架,具有类似桌面的OO期望和管理,可以自动高效地与服务器同步,管理和序列化数据模型。不确定Ember和Sproutcore之间是否存在太大差异,像Sencha这样的其他努力如何叠加?

2 个答案:

答案 0 :(得分:7)

你的问题涉及很多方面。我会选择一些报价并直接回答。

  

我的项目是一个类似本机的HTML5应用程序,具有桌面级别   需要完整应用程序框架的复杂性

Ember.js特别将自己称为“网络式”框架,而不是RIA框架。也就是说,你可以建造任何你想要的东西,但你会开拓创新。

Sproutcore将自己称为RIA框架。您可以完全控制DOM,因此如果您可以在浏览器中执行此操作,则可以在Sproutcore中执行此操作。

Ext-Js也是台式机的理想应用框架(Sencha Touch适用于移动设备)。如果你喜欢它的例子,那么它是一个不错的选择。您当然可以自定义dom并编写自己的小部件。

Blossom基本上是Sproutcore,带有基于画布的视图层。它刚刚进入测试阶段,所以如果你选择它,你肯定会开始尝试。

因此,您基本上可以使用您为企业的RIA部分提到的任何框架。我会消除Ember.js只是因为框架本身的目的是为了网络风格(例如推特)而不是RIA(例如iCloud)应用程序,这不是你想要的。

  

小部件应该是原生的(不像网络一样),但可以自定义   是应用程序的独特之处。

您剩下的所有三个选项都可以执行此操作。如果您喜欢Senchas小部件,那么它是一个不错的选择。我不知道他们是否适合你。也就是说,使用任何剩余的框架,您可以根据自己的内容自定义DOM。

Mobile Appropreatness. Framework should be appropreate for mobile devices

这是一个艰难的。 Sencha Touch(与Ext-Js分开但类似)非常受欢迎并完成工作。它也是高效的;一个非平凡的应用程序在我原来的Droid上运行得很好(这令我感到惊讶)。

Sproutcore非常重。它具有移动支持(即用于触摸事件),但您需要非常小心您创建的dom,以免压倒浏览器。我不会选择Sproutcore用于移动设备,但如果你非常小心,你可以选择。

  

并且开发编译为本机是不可接受的

这对我来说似乎不合理。需要明确的是,这些框架中没有一个在移动设备上本地运行;他们都在浏览器中运行。当canvas API直接映射到本机API时,Blossom会关闭,为您提供真正的本机应用程序。你可以接近的唯一方法是使用objective-c / java for iOs和Android。

所以基本上,此时你的左手是Sencha(Ext-Js)和Blossom。 Blossom仍然处于测试阶段,如果你尝试过,你会开始尝试。 Sencha成立,有很大的支持(对irc的开花支持很好),以及一个庞大的开发者基地。

所以Sencha是你的选择,除非你真的想要先锋,并冒一点风险。

答案 1 :(得分:0)

特洛伊。实际上,ember可以运行另一个视图层框架,例如jQuery Mobile,它可以提供“类似应用程序”的外观。有一个github项目:https://github.com/LuisSala/emberjs-jqm。在我看来,如果你需要非常酷的动画,你可以使用开花。如果你想构建一个应用程序,SC或余烬应该没问题。我会选择余烬,因为它松散耦合。