2012-03-14 54 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或者燼應該沒問題。我會選擇餘燼,因爲它是鬆散耦合的。