標籤:
直接拿來用!Facebook移動開源項目大合集時間:2014-04-22 15:37 唐小引
隨著iOS依賴管理工具CocoaPods和大量第三方開源庫成熟起來,業界積累了大量的優秀開源項目。不久之前,Facebook推出了旗下移動新聞閱讀應用Paper,便動用了將近100個第三方開源庫,極大地簡化了自己的應用開發工作單位。
移動開發生態圈日益完善,基礎的開源組件也越來越豐富,而Facebook不僅取之開源,更不斷地開源其內部項目,將成果反饋給開源社區,與開發人員共用。接下來,就讓我們一起來看看那些年Facebook在移動開發方面所推出的眾多開源項目。
1. KVOController
KVOController是Facebook開源的一款簡單安全的KVO(Key-Value Observing,索引值觀察,Objective-C中定義的一個通知機制)工具,用於iOS和Mac OS X應用開發中。KVOController基於Cocoa經過時間考驗的KVO實現開發而成,它提供了一個簡潔方便、安全執行緒的API。
主要特性:
- 使用Blocks、自訂Actions或NSKeyValueObserving回調進行通知;
- 觀測者移除時無異常;
- 控制器dealloc時移除隱式觀測者;
- 提升使用NSKeyValueObservingInitial的效能;
- 為恢複觀測者提供特殊防護的安全執行緒。
相關連結:KVOController的GitHub託管地址、mobilehub首頁
2. Shimmer
Shimmer是一款開源的載入效果工具,能夠非常簡單地嚮應用中的任何視圖添加閃閃發光的字型效果,並且不會顯得突兀。Shimmer最初是Facebook於今年1月所推出的Paper的開發過程中所使用到的工具,後被Facebook基於BSD許可協議開源,支援iOS 6及其以上系統。
相關連結:Shimmer的GitHub託管地址、mobilehub首頁
3. Rebound
Rebound是Facebook推出的一款Android的物理和動畫庫,於2013年10月在[email protected]大會上正式發布,旨在解決笨重、緩慢的傳統移動網路介面。Rebound基於BSD許可協議,相容HTML5和Node.js。
Rebound不是一款通用物理庫,但其彈簧模型在應用程式中引入了現實世界的物理,易於整合,建立的動畫能夠讓人感覺到非常自然,可用於捲軸、切換開關、呼叫等情境下。
相關連結:Rebound官網、GitHub託管地址、mobilehub首頁
4. Buck
Buck是Facebook開發的一款開源Android Build工具,基於Apache License 2.0協議發布,可以通過獨立構建並行來發揮多核的效能,加速開發人員的Android應用構建流程。Buck基於單一的庫構建,能夠以最小的資源集重建,非常適用於Android項目組織與管理。
主要特性:
- 加速Android構建。充分發揮多核處理器的優勢,並行構建獨立模組。通過追蹤沒有變化的源檔案,減少增量構建實踐,最少化需要重建的資源。
- 對於不支援開箱即用的Android Ant編譯指令碼,引進ad-doc構建系統。
- 在構建系統裡保持產生構建的邏輯,無需另外的系統產生構建檔案。
- 基於構建規則產生一個Intellij項目,能同時匹配本地IDE以及無標頭檔編譯開發。
- 支援單元測試,選用最均衡的方式獲得程式碼涵蓋範圍。
相關連結:Buck官網、Github託管地址、mobilehub首頁
5. xctool
xctool是Facebook推出的另一款開源的應用構建工具,基於Apache License 2.0協議發布,用於取代蘋果的xcodebuild,來簡化iOS和Mac項目的構建和測試。xctool對於持續整合可謂大有裨益,其最大的好處就是可以直接從命令列構建和運行單元測試。
xctool在xcodebuild的基礎上還添加了一些額外的功能,比如支援將構建和測試結果結構化輸出;介面友好,支援ANSI彩色輸出;速度更快,支援進行並行測試,使得運行速度提升2~3倍等。xctool支援Xcode 5+,並且,在使用xctool時必須安裝Xcode命令列工具。
主要特性:
- 作為Xcode.app運行相同的測試;
- 構建輸出和測試結果均為JSON格式,無需解析輸出;
- xctool只有在發現錯誤的時候才列印訊息,而xcodebuild對每個源檔案都會列印。
相關連結:xctool的GitHub託管地址、mobilehub首頁
6. Conceal
Conceal是一套用於Android平台上進行檔案加密和鑒權的Java API,專為速度設計,小巧而高速。它使用了OpenSSL演算法的子集和一些預先定義的選項,能夠讓庫保持在較小的體積。通過它,開發人員可以實現對手機、平板電腦SD卡中的資料以及大型檔案進行加密和儲存。
相關連結:Conceal官網、GitHub託管地址、mobilehub首頁
7. Origami
在介面和互動設計上頗讓人驚喜的Paper讓Facebook的大量開源工具從幕後走向了台前,Origami即為其中之一。這個被盛讚為“互動神器”的設計師新寵,是Facebook設計團隊花費了9個月時間開發的一款基於Quartz Composer的外掛程式,能夠讓設計師無需編程,快速構建行動裝置 App互動原型。
Origami為設計師提供了開關、滾動、彈性動畫等一系列自訂控制項,並對Quartz Composer進行了改善,比如支援Retina顯示器、重新設計工具欄表徵圖等,以協助設計師更為輕便地實現應用原型互動。
相關連結:Origami官網、GitHub託管地址、mobilehub首頁
8. Bolts(iOS / Android)
Bolts是一個面向iOS和Android的底層庫集合,分別為Bolts-iOS和Bolts-Android,由Facebook和Parse共同設計完成,於2014年1月基於BSD許可協議開源,其所有源碼均託管到GitHub上。Bolts能夠讓行動裝置 App開發變得更加簡單,其組件與Parse及Facebook服務完全無關,因此,開發人員無需擁有Parse或Facebook開發人員賬戶即可直接使用。
相關連結:Bolts的Github託管地址、mobilehub首頁
9. Facebook SDK(iOS / Android)
Facebook SDK for iOS(Android)是Facebook官方為iOS(Android)平台提供的Facebook API的SDK,允許開發人員將Facebook整合到所開發的iOS(Android)應用中。
相關連結:Facebook SDK的GitHub託管地址(iOS / Android)、mobilehub首頁(iOS / Android)
10. fishhook
最後,再來介紹一款專門用於iOS安全攻防的開源庫。fishhook是Facebook推出的一款能夠直接在iOS模擬器及裝置上動態修改連結Mach-O符號表的工具。fishhook通過改變間接符號表的位移量,提供一個假的nlist結構體,從而達到hook的目的,其功能很類似於在OS X上使用DYLD_INTERPOSE。
相關連結:fishhook的GitHub託管地址、mobilehub首頁
本文為CSDN原創文章,未經允許不得轉載,如需轉載請聯絡market#csdn.net(#換成@)
直接拿來用!Facebook移動開源項目大合集