senchatouch源碼
1. html5開發移動端要用什麼框架比較好
下面給出部分框架的具體優勢,比較後可以選出適合自己的
1, jQTouch
jQTouch易用性強,相關文檔也很全面。它的特色是在 使用HTML,CSS和JavaScript創建iPhone App方面擁有出色的能力。jQTouch使用漸進增強的方案,在您相應的HTML頂層來實現像iPhone那樣的用戶體驗。它簡單易用,提供了一個基礎的小工具集以及動畫方案,開發人員只需要編程控制其動態行為即可。
不過有簡單測試中發現app的性能存在一定的問題,頁面在轉換時可能出現跳轉或者缺失的情況,以及在響應tap事件的時候還有周期性延遲。該項目在技術上還活躍著,不過原作者的進展和部署都顯得太慢了。
只需要遵守MIT的license許可就可以使用jQTouch了
2, jQueryMobile
jQuery Mobile是這個領域的新丁,2010年8月才正式宣布成立,但是已經迅速進展到功能豐富的Alpha 2測試版本了。jQuery Mobile跟jQTouch相比很相似,但是更加標准,更有適應性,感覺很像jQTouch的後繼版本,對用戶介面和style的支持范圍更加寬廣了。
jQuery Mobile的性能是不穩定的,(雖然比jQTouch好一些)特別是在響應TAP事件的動畫延遲補償的時候。此外,還缺少一些關鍵的程序hook,所以不能輕松地讓app更加具有動態性能。例如:當一個頁面啟動的時候事件觸發了,這時候卻無法通知響應的代碼頁面將轉向哪個用戶介面,也不能傳遞附加的信息給處理模塊。針對上述問題,創建工作區來解決還是可行的,但是在這里作者希望其將來的版本能從jQTouch那裡學習一下,並把現在的功能缺陷處理掉。
jQuery Mobile的相關文檔資料很零散但是有所改進,,(請注意,jQuery Mobile是和jQuery UI相輔相成的,並不是建在單純jQuery之上的)
想獲得jQuery Mobile只需獲得MIT或者GPL2 license。
3, Sencha Touch
這是個與Ext JS框架完全不同的產物,其方案與jQTouch/jQuery完全不同:Sencha生成自己的DOM(基於用JavaScript創建的對象)代替了先前存在的HTML增強方式。如此,使用Sencha工作的感覺不像是web編程,而更像是使用Java或者Flex等技術來做app的樣子。比起jQuery來,Sencha的感覺更像是YUI。
sencha跟其競爭對手們相比,擴展性強了很多:它擁有大量的用戶介面組件,直接的iPad支持,擁有JSON和HTML5線下存儲技術使得存儲和數據綁定更加方便。(使用Sencha的數據結構來操作app的數據十分酷~它可以實時響應列表的更新)此外,Sencha還是唯一在工具欄上支持內嵌的對象支持,其他方式都是滾輪列表的樣子。
在測試程序中,使用Sencha與jQTouch/jQuery相比,雖然app很明顯地不那麼輕量級,但是其性能和可靠性方面明顯提高了,不過其初始化載入時間略慢。
當使用庫library或者框架frame進行開發的時候,不遵守框架或者用自己的方式通常都不會獲得成功。但Sencha的支持范圍足夠寬廣,這意味著可以使用Sencha的開發方式來實現任何需求。
在文檔方面,Sencha做的不太好,雖然很廣泛,但是又有很多舊版本的老漏洞沒有及時更新,在這些框架中與bug作斗爭,調試過程浪費了很多時間,因為文檔不夠健全,很多問題難以追蹤或理解。而在開發者論壇響應作者提問的頻率還算較高,不過最終感覺還是不太夠。Sencha提供的付費技術支持起價是$300每年,
獲取Sencha需要遵守GPL3 license,以及在某種不是GPL標准又很相似LGPL的授權下也能用,以及遵循非商業license也可以獲得。
4,TitaniumMobile
與Sencha Touch很相似,Appcelerator公司的Titanium Mobile可以讓您使用Javascript API來編寫app。不過與Sencha不同的是,Titanium把代碼編譯成Native的iPhone或Android app,這意味著它並不是一個真正的Web框架,而是一個兼容層或者編譯器。(請注意Titanium Mobile的近親Titanium Desktop是一個基於web的,可以使用HTML /js來編寫桌面封裝的本地應用的一款軟體)
這么說來Titanium允許web開發人員使用JavaScript和一點點XML之類的其他相關技術,可以實現高性能、更換皮膚很方便的Native App,而不需要額外去學習Objective-C或者Cocoa Touch等技術了。
不過這個優點也是其致命的缺點,只能作出Titanium所支持的平台上面的應用,被它們的開發工具限制住了。想證明這一點只需要換一個不是iPhone的平台上來跑一下就知道了。同時,Titanium的調試器也不怎麼樣,不能使用XCode方式運行或者調試,就算在其模擬器上面程序跑的還算不錯,還是需要自己去實際機器上自己再找問題。