2012-03-14 41 views
2

我看过了SproutCore的,灰烬,开花和其他竞争框架的努力(如煎茶)选择了HTML5客户端应用项目。这些项目的状态,信息和文档有点分散,需要清晰,所以我将这些内容呈现给社区。现状移动设备(或ALT框架)

我的项目是做一个类似天然的HTML5应用程序与桌面水平,需要一个完整的应用程序框架的复杂性,这将在台式机上很好地工作,并与触摸感知移动设备良好的运行速度。这些小部件应该像本地一样(不像网络一样),但是可以自定义,以便对应用程序是唯一的。

问题/框架要求:

  1. 本地与Web风格的应用程序。框架应该做一些针对性的 本地的感觉的能力可以很容易地 构建类似天然的用户体验(而不仅仅是模仿完全MAC/WIN/iOS版)。围绕Ember的一些文字 表明它确实适合web风格的应用程序 - 它们没有给出任何 UI层可能不言而喻。像Sencha这样的框架可以轻松适应自定义小部件吗?
  2. 移动Appropreatness。框架应该适用于移动设备,并且具有用于触摸输入和手势的设施。我在我的研究中看到的几个注释表明Sproutcore和 Blossom对移动设备不是很适合,并且Ember更好 面向移动设备(尺寸?)。目前还不清楚 触摸/移动库是否在Sproutcore/Blossom中非常发达,并且如果它们将得到支持,它将继续向前发展。 (并且开花编译为本地是不可接受的)。另一方面,像Sencha这样的框架,他们是否有能力在台式机和移动设备上运行良好?
  3. 框架完整性。该框架应该是一个相当完整的应用程序框架,具有类似桌面的OO期望和管理,可以自动有效地同步,管理和序列化数据模型与服务器。不知道Ember和Sproutcore之间是否有很大的区别,像Sencha这样的其他努力如何叠加起来?

回答

7

你提的问题涵盖了大量的地面。我会选择一些引号并直接回答。

我的项目是为需要一个完整的应用程序框架的类似天然的HTML5应用程序与桌面级 复杂

Ember.js特别标榜自己为“网络式”的框架,不是一个RIA框架。也就是说,你可以建立任何你想要的东西,但是你会开创性的。

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

分机-JS也是台式机(煎茶触摸是Mobile)具有良好的应用框架。如果你喜欢它的例子的样子,那么它是一个不错的选择。您当然可以定制dom并编写您自己的小部件。

花基本上SproutCore的与基于画布视图层。它刚刚进入测试阶段,所以如果你使用它,你一定会开创性的。

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

这些小部件应该是类似于本机的(不是网络状),但是可定制,因此 对于应用程序是唯一的。

剩下的三个选项都可以做到这一点。如果你喜欢Senchas小部件,这是一个不错的选择。我不知道它们是否足够适合你。也就是说,使用任何剩余的框架,您可以根据自己的内容定制DOM。

Mobile Appropreatness. Framework should be appropreate for mobile devices 

这是一个艰难的。 Sencha Touch(与Ext-Js独立但相似)非常受欢迎,可以完成工作。它也是高性能的;一个非平凡的应用程序运行良好,我的原始Droid(这让我感到吃惊)。

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

开花编译为本地是不能接受的

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

所以基本上,在这一点上,你与Sencha(Ext-Js)和Blossom一起离开。 Blossom仍然处于测试阶段,如果你尝试过它,你会开创性的。 Sencha成立,拥有很大的支持(Blossom对irc的支持很好),还有一个庞大的开发者基地。

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

+0

感谢您的分析。我对Blossom的评论是这样的:我觉得花朵很有趣。但花开的努力表明,它不是真正意义上的移动,但将有一个编译本地选项(不知道编译路线是什么)。 Howeverthis应用程序必须是可通过URL进行发布的,而不是通过应用程序商店分发的 – 2012-03-14 23:11:08

0

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