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

Tro*_*vey 2 sproutcore sencha-touch ember.js

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

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

问题/框架要求:

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

hvg*_*des 7

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

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

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

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

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

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

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

小部件应该是原生的(不是类似Web的),但可以自定义,以便应用程序是唯一的.

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

Mobile Appropreatness. Framework should be appropreate for mobile devices
Run Code Online (Sandbox Code Playgroud)

这是困难的一个.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是你的选择,除非你真的想成为最前沿,并冒一点风险.