其實開始研究已經好一陣子了,只是想說 Blog 好久沒有文章,所以拿來灌水一下,免得乾旱過頭。我剛開始寫的時候,很多人都在問,到底 Famo.us 是什麼東西?
其實我本來也不理解,直到我聽到有人跟我說 Z>B...
Famo.us
這個 JavaScript Framework 是早在 2012 年發表展示的一個專案,一開始的 hello world 應用程式,可以看看這個影片,
這個影片當初造成轟動,但是等到 Famo.us 正式發表的時候,已經是今年四月的事情了。
Famo.us 是一套由 JavaScript 所撰寫的 HTML5 Web Application Framework,用意在於讓開發者更便利的去製作一個,更貼近於原生應用程式(Native App)的工具。當初在 Beta launch 的發表會時,有團隊用兩個禮拜,加上 Famo.us 做出類 DNA 的應用程式(已跪,可惜影片目前找不到了(因為當初是用 Hangout,而且好像只有開頭有錄影而已,後面的 Demo 都石沈大海了
效能
根據官方對於 Render Tree 的解釋,因為是用來做應用程式,所以整個 DOM 的架構,跟我們平常在做 Web 的概念不太一樣。他是很整齊的樹狀支,而且有很乾淨且嚴格的規範,亦即是把整個 DOM 給扁平化,所以在整個 Render Tree 的結構上,效能上就會有提升。
當然,如果你硬是要拿來跟原生應用程式比,我也沒有什麼意見,畢竟這取向不太相同。你可以看看這個利用 Famo.us 開發的 Facebook Pages 的範例,
開源
Famo.us 的原始碼,都可以在官方的 github 上面找到。原本他們好像不是要做成開源,不過後來改變策略了,全部都以 MPL 的方式開放原始碼。
所以目前官方都還有持續在更新,因為還是有許多地方持續在改進。像是我之前遇到的 Chrome 捲軸中風問題,後來就不藥而癒了,中間好像 Famo.us 的某些模組有更新(其實我也不確定是不是被修掉,不過起碼,之後再測試的時候就沒遇到問題了。
小結
Famo.us 還是很新的東西,目前註冊登入後的機制,好像也沒有完全開放。我只是不巧註冊 Famo.us 的時間比較早(Number in line 3406,所以比較早一點可以進去看到其他東西。
有興趣的人可以直接去 fork 官方的原始碼,再搭配我在 github 上面寫的簡單介紹,應該可以很快上手(我的文章都寫在 Issue 裡面,請不要跑錯地方,謝謝
目前也開了一個 FB 社團,希望有興趣的人可以一起進來研究。