10大iOS開發者最喜愛的庫由“iOS輔導團隊”成員MarceloFabri組織投票選舉而得,參與者包括開發者團隊,iOS輔導團隊以及行業嘉賓。每個團隊都要根據以下規則選出五個最好的庫:1)不能投自己寫的庫;2)排除大的架構,比如游戲類架構;3)排除不在設備上運行的庫,例如CocoaPods或者Rack::CoreData也排除在外。
最終評選出了如下10大iOS開發者最喜愛的庫:
1)SSToolkit
SamSoffes簡直就是一個Objective-C天才,SSToolkit就是個例子。作者將他在App中實現的各種各樣的UI效果做成個代碼庫,方便其他人使用。
SSToolkit一些基礎的類包括SSCollectionView,SSGradientView
從UI部件到便利的Foundation類別都經過精心設計並記錄在案,幫助開發者解決一些普遍問題,比如追蹤一款設備是否有視網膜顯示屏或者是否能剪裁圖片
2)GPUImage
GPUImage一個功能十分強大又十分易用的圖像處理庫。
提供各種各樣的圖像處理濾鏡,並且支持照相機和攝像機的實時濾鏡
是基於GPU的圖像加速,圖像處理速度超快,並且能夠自定義圖像濾鏡
支持ARC
不過現在還缺少一些CoreImage擁有的一些先進功能,比如面部探測。
濾鏡效果圖
3)SocketRocket
SocketRocket是一個WebSocket客戶端(WebSocket是適用於Web應用的下一代全雙工通訊協議,被稱為“Web的TCP”,它實現了浏覽器與服務器的雙向通信),采用Object-C編寫。超級穩固又簡單易用,簡直就是實時應用的最佳拍檔。
SocketRocket遵循最新的WebSocket規范RFC6455
只有部分比較新的浏覽器比如Chrome支持這個庫
支持TLS(wss),iOS4.x系統
使用NSStream/CFNetworking(可免費享用)、使用ARC
采用並行架構
大部分的工作由後端的工作完成、基於委托編程。無任何UI包依賴。
因為Square,才有了SocketRocket
4)HockeyKit
HockeyKit是一個iOSAd-Hoc自動更新框架。所有的蘋果店中的App都可以使用它,它能顯著提高整個Beta測試過程,分為兩部分:服務器和客戶端框架。服務端組件不需要客戶端庫就能單獨工作。
只需在服務器上安裝一次服務端,就可以處理bundleidentifier不同的多個應用程序(有開發者強烈建議對Debug、AdHocBeta和AppStore發布版使用不同的Bundleidentifier)
默認當App啟動或喚醒時,客戶端會從服務器檢測更新,用戶可以在設置對話框中修改這個設置:一天一次或手動檢測更新
除了支持iOS,HokeyKit也支持Android平台,不過Android版還處在Alpha階段,支持OTA及應用內更新
為HockeyKit用戶提供服務器托管服務
Beta測試演示
5)JSONKit
JSONKit是ObjectiveC平台上比較常用的JSON數據訪問工具。
JSONKit能在運行的情況下與libz.dylib自動連接而無須人工連接
在解析期間,如果檢測到有gzip文件,JSONKit能自動解壓
速度超快,支持之前的iOS版本(但要注意一點,從iOS5開始,iOS就已經有本地JSON解析工具了)
JSONKit的性能遠優於JSON-Framework(即SBJSON),JSONKit使用起來也非常簡單,表現性能比蘋果iOS5.0中的NSJSONSerialization還要好,速度比NSJSONSerialization快上25%to40%,已經是非常大的一個差距了
Benchmark測試結果圖
6)MagicalRecord
使用CoreData時會用到許多引用代碼,讓工作變得很復雜,讓人有種挫敗感,MagicalRecord的出現就是解決這些問題的。
不但能清理CoreData代碼,還可在必要的時候進行NSFetchRequest修改
需要iOS5.0及以上版本,MacOS10.7及以上版本
使用ARC
能利用iCloud同步CoreData商店
7)RestKit
Restkit是一個開源的Objective-C框架。
可在iOS和MacOSX的Objective-C中與RESTfulWeb服務進行簡單交互
包含簡單的HTTPrequest/responseAPI
帶有強大的對象映射系統,用於減少代碼長度
RestKit可降低JSON/XML的處理的資源消耗,支持通過SBJSON和YAJL進行JSON解析
當你的應用需要與一個REST遠程API整合的時候,RestKit就會派上用場,幫你減少工作量。
添加Restkit
8)TestFlight
要想輕松發送並公測應用?用TestFlight吧,無須通過iTunes,有人曾經整理出了它的三大殺手锏:
輕松采集測試用戶的UDID和iOS版本、硬件版本,並發送給開發者。在接收到開發者的TestFlight邀請之後,用戶只需拿自己的iPhone即可打開邀請中的鏈接,注冊賬號,注冊硬件
有了測試包以後,不用一個個發郵件,只需要將IPA上傳到TestFlight網站,然後勾選合適的測試用戶,點擊確認,你就完事了,用戶會馬上收到TestFlight的更新通知,然後只需在他的iPhone上登錄TestFlight網站,TestFlight就會自動將測試IPA安裝到他的iPhone上
不用擔心用戶沒有成功安裝,Testfligh能夠給你實時反饋最新統計數據
現在還推出了桌面App,用起來更快更方便了。
9)MBProgressHUD
蘋果的應用程序一般都會用一種半透明的進度顯示效果,不過這個API是不公開的,因此你要是用了,很可能被踢出AppStore。而MBProgressHUD提供了一個替代方案,實現的效果根本看不出和官方程序有什麼差別。
同時還提供了其他附加功能,比如虛擬進展指示符,以及完成提示信息
你也可以安裝其他東西,比如需要顯示的文本,動畫,x及y設置等等,有許多iOS輔導員都在用它,一般用來作應用內購買
MBProgressHUD適用於任何iOS版本,需要LLVM3.0及以上編譯器架構,兼容ARC及非ARC項目,這得取決於蘋果的以下架構:
Foundation.架構
UIKit.架構
CoreGraphics.架構
透明進度效果
10)AFNetworking
AFNetworking是一個輕量級的iOS網絡服務類庫。它建立在NSURLConnection和NSOperation等類庫的基礎上,讓很多網絡通信功能的實現變得十分簡單。
支持HTTP請求和基於REST的網絡服務(包括GET、POST、PUT、DELETE等)
支持ARC
要求iOS5.0及以上版本
有一些插件擴展已有的功能,還有一個功能齊全的API
從URL中獲取JSON特別簡單,簡單到什麼程度?看下面幾行代碼
NSURL *url = [NSURL URLWithString:@"https://alpha-api.app.net/stream/0/posts/stream/global"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { NSLog(@"App.net Global Stream: %@", JSON); } failure:nil]; [operation start];
在這10大庫中,AFNetworking是最大贏家,現在是GitHub上第三大Objetive-C庫,iPhone,iPad上很多著名應用都使用這個類庫,是很多人的最愛。