我一直在寻找Sproutcore,Ember和Blossom以及其他竞争框架(例如Sencha)来选择HTML5客户端应用程序项目。这些项目的状态,信息和文档有点分散,需要清晰,所以我向社区提出这个问题。
我的项目是一个类似本机的HTML5应用程序,其桌面级复杂性需要一个完整的应用程序框架,它可以很好地在桌面上运行,并且可以在具有触摸感知功能的移动设备上以极快的速度运行。小部件应该是原生的(不像网络),但可以自定义,以便应用程序独有。
问题/框架要求:
答案 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或余烬应该没问题。我会选择余烬,因为它松散耦合。