隨著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。
主要特性:
相關鏈接:KVOController的GitHub托管地址、mobilehub主頁
2. Shimmer
Shimmer是一款開源的加載效果工具,能夠非常簡單地向應用中的任何視圖添加閃閃發光的字體效果,並且不會顯得突兀。Shimmer最初是Facebook於今年1月所推出的Paper的開發過程中所使用到的工具,後被Facebook基於BSD許可協議開源,支持iOS 6及其以上系統。
相關鏈接:Shimmer的GitHub托管地址、mobilehub主頁
3. Rebound
Rebound是Facebook推出的一款Android的物理和動畫庫,於2013年10月在Mobile@Scale大會上正式發布,旨在解決笨重、緩慢的傳統移動網絡界面。Rebound基於BSD許可協議,兼容HTML5和Node.js。
Rebound不是一款通用物理庫,但其彈簧模型在應用程序中引入了現實世界的物理,易於集成,創建的動畫能夠讓人感覺到非常自然,可用於滾動條、切換開關、呼叫等場景下。
相關鏈接:Rebound官網、GitHub托管地址、mobilehub主頁
4. Buck
Buck是Facebook開發的一款開源Android Build工具,基於Apache License 2.0協議發布,可以通過獨立構建並行來發揮多核的性能,加速開發者的Android應用構建流程。Buck基於單一的庫構建,能夠以最小的資源集重建,非常適用於Android項目組織與管理。
主要特性:
相關鏈接: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命令行工具。
主要特性:
相關鏈接:xctool的GitHub托管地址、mobilehub主頁
6. Conceal
Conceal是一套用於Android平台上進行文件加密和鑒權的Java API,專為速度設計,小巧而高速。它使用了OpenSSL算法的子集和一些預先定義的選項,能夠讓庫保持在較小的體積。通過它,開發者可以實現對手機、平板電腦SD卡中的數據以及大型文件進行加密和存儲。
相關鏈接:Conceal官網、GitHub托管地址、mobilehub主頁
7. Origami
在界面和交互設計上頗讓人驚喜的Paper讓Facebook的大量開源工具從幕後走向了台前,Origami即為其中之一。這個被盛贊為“交互神器”的設計師新寵,是Facebook設計團隊花費了9個月時間開發的一款基於Quartz Composer的插件,能夠讓設計師無需編程,快速構建移動應用交互原型。
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能夠讓移動應用開發變得更加簡單,其組件與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主頁