IOS 第三方庫介紹
1. AFNetworking
在眾多iOS開源專案中,AFNetworking可以稱得上是最受開發者歡迎的庫專案。AFNetworking是一個輕量級的iOS、Mac OS X網路通訊類庫,現在是GitHub上第三大Objective-C庫。它建立在NSURLConnection、NSOperation等類庫的基礎上,讓很多網路通訊功能的實現變得十分簡單,因此,許多iOS應用開發都會使用到它。
-
支援HTTP請求和基於REST的網路服務(包括GET、POST、PUT、DELETE等);
-
支援ARC;
-
要求iOS 5.0及以上版本;
-
有一些外掛擴充套件已有的功能,還有一個功能齊全的API;
-
從URL中獲取JSON特別簡單。
詳情請參考:AFNetworking官網
2. Three20
Three20原本是iPhone版Facebook中所使用的工具庫,包括照片檢視器等一系列的iPhone UI類集,以及HTTP磁碟快取等一些通用工具。後來從Facebook iPhone應用中剝離出來,成為了一個深受開發者喜愛的通用框架。
3. facebook-ios-sdk
此前在“GitHub上最受歡迎的開源專案”Android系列文章(一)中,我們曾介紹過允許開發者將Facebook整合到Android應用中的Facebook SDK for Android。Facebook SDK for iOS和它一樣,可以讓開發者將Facebook相關功能整合到自己的iOS App中。
Facebook無疑是最成功的SNS社群,如果能夠讓App具有與Facebook整合的功能,那勢必會帶來非常好的效果。Facebook SDK for iOS專案更新頻率很高,想要獲取更多關於示例、文件、將SDK整合到App中、原始碼等資訊,可直接登陸Facebook Developers檢視。
4. RestKit
Restkit是一個主要用於iOS上網路通訊的開源Objective-C框架,除了傳送請求、接受響應這些基本功能外,還附帶Core Data,以及將遠端JSON對映為本地物件的功能。
主要特點:
-
可在iOS和Mac OS X的Objective-C中與RESTful Web服務進行簡單互動;
-
包含簡單的HTTP Request/Response API;
-
帶有強大的物件對映系統,用於減少程式碼長度;
-
RestKit可降低JSON/XML的處理的資源消耗,支援通過SBJSON和YAJL進行JSON解析。
詳情請參考:Restkit
5. asi-http-request
ASIHTTPRequest是一款極其強勁的HTTP訪問開源專案,能夠讓簡單的API完成非常複雜的功能,比如非同步請求、佇列請求、GZIP壓縮、快取、斷點續傳、進度跟蹤、上傳檔案、HTTP認證。
ASIHTTPRequest適用於基本的HTTP請求,和基於REST的服務之間的互動。使用Objective-C編寫,能夠同時用於Mac OS X和iPhone應用中。
詳情請參考:all-seeing.ASIHTTPRequest
6. cocos2d-x
在《直接拿來用!最火的Android開源專案(一)》中,我們已經非常詳細地介紹了cocos2d-x開源專案。cocos2d-x支援iOS、Android、Windows Phone 8、Bada、BlackBerry、Marmalade、Windows、Linux等多個平臺。
詳情請參考:cocos2d-x
7. cocos2d-iphone(cocos2d)
cocos2d for iPhone是一個開源框架,用於為iPod Touch、iPhone、iPad及Mac OS X構建2D遊戲、演示程式及其他圖形互動式應用。基於cocos2d設計,使用相同的API,但不同於cocos2d使用Python,cocos2d for iPhone是使用Objective-C實現的。
cocos2d for iPhone主要特性:
-
快
-
免費
-
易於使用
-
社群支援
詳情請參考:cocos2d-iphone
8. cocos2d-iphone(jpsarda)
該專案是對cocos2d for iPhone的擴充套件。
9. GPUImage
GPUImage是一個基於GPU影象和視訊處理的開源iOS框架。
主要功能如下:
-
提供各種各樣的影象處理濾鏡,並且支援照相機和攝像機的實時濾鏡;
-
GPUImage顧名思義,是基於GPU的影象加速,因此影象處理速度非常快,並且能夠自定義影象濾鏡;
-
支援ARC。
10. MonoGame
MonoGame是一個Microsoft XNA 4.x Framework的開源跨平臺實現。此前在Android開源專案系列文章(一)中我們也進行了詳細的介紹。
MonoGame支援平臺:
-
iOS(包括Ritina Display)
-
Android
-
Windows(OpenGL)
-
Mac OS X
-
Linux
-
Windows Store Apps(Windows 8、Windows RT)
-
Windows Phone 8
-
PlayStation Mobile(目前僅支援2D)
-
OUYA
11. Nimbus
Nimbus是一個開源的iOS框架,比起Three20,Nimbus的文件更為全面、豐富,能夠實現很多非常炫的介面特效。因此,開發者可以藉助Nimbus來降低專案設計的複雜度。
12. cheddar-ios
Cheddar是一個簡單即時的工作管理員,Cheddar for iOS是Cheddar的iOS客戶端,通用於iPhone和iPad。
開發者可以直接登陸App Store下載該應用。
13. ViewDeck
IIViewDeckController能夠實現類似於Path 2.0 的檢視左右滑動的效果,支援向左或向右順滑的滑動操作。
點選連結,檢視視訊演示(常規演示、靈敏性演示),注意,需翻&牆的喲。
14. ShareKit
ShareKit是iPhone開發的第三方介面,允許你一鍵分享文字、圖片、網址、檔案等內容到Facebook、Twitter、Delicious、Tumblr、Google Reader等第三方網站上。
詳情請參考:getsharekit
15. GMGridView
GMGridView是一款開源的iOS(iPhone/iPad)表格檢視,允許使用者手勢對錶格單元進行排序,在單元格需要展示時才進行裝載,這樣極大地提高了表格的效率。其中的伸縮/旋轉/平移手勢能夠讓使用者改變檢視,還能夠實現從CellView到全屏的切換。
詳情請參考:gmoledina
16. QuickDialog
QuickDialog可以幫助開發者快速建立複雜的表單,實現包括登入介面在內的各種樣式的TableView輸入介面,此外,還可以建立帶有多個文字域的表格及專案。
開發者可以直接登陸QuickDialog官方網站,獲取更多資訊或文件。
17. appirater
Appirater是一個可以直接使用到任何iPhone應用(iOS4.0及以上)中的開源類,用於提醒使用者在開啟App時,對應用進行評論或打分。
詳情請參考:Appirater group
18. SVProgressHUD
SVProgressHUD能夠實現多種HUD效果,多用於程式正在執行耗時較長的任務,需要使用者等待。除了顯示等待的HUD,還可以顯示命令執行成功或者失敗的HUD。
19. Reader
該專案能夠讓iOS開發者輕而易舉地在iOS裝置螢幕上顯示PDF檔案。程式碼通用,不需要任何XIB(因為所有UI元素都是程式碼生成的,具有極大的靈活性),運行於iOS 4.0及其以上版本裝置中,同時還支援所有Retina Display裝置。
支援:
-
諸如iBooks等的文件導航;
-
裝置全方位旋轉;
-
對PDF進行加密(密碼保護);
-
PDF連結(URI及跳轉頁面);
-
PDF旋轉頁面。
20. CocoaAsyncSocket
CocoaAsyncSocket提供了十分強大而又易用的Mac OS X及iOS非同步套接庫,支援TCP和UDP,其中,AsyncSocket類是支援TCP的,AsyncUdpSocket是支援UDP的。
AsyncSocket是封裝了CFSocket和CFSteam的TCP/IP socket網路庫,提供非同步操作。AsyncUdpSocket是UDP/IP socket網路庫,包裝自CFSocket。
21. SSToolkit
SSToolkit可以說是iOS開發者最常使用的工具類之一,該開源專案提供了一個完整的iOS類庫集合,用於解決iOS開發者在開發過程中常碰到的一些問題,比如追蹤一款裝置是否具有視網膜顯示屏或是否能剪裁圖片,包含SSCollectionView、SSGradientView、SSSwitch等諸多非常方便的類。
如果想要對SSToolkit作進一步瞭解,可以在iPad/iPhone上使用SSToolkit的Demo應用SSCatalog。獲取更多資訊,可直接登陸S.S. TOOLKIT。
22. XMPPFramework
XMPPFramework是一個使用Objective-C編寫的用於Mac/iOS開發的XMPP框架,它提供了一個RFC-3920(XMPP標準)核心實現,通過某些特定工具讀寫XML。XMPPFramework有著非常豐富的建立在模組化架構之上的XEP擴充套件,開發者可以將其直接插入到程式碼中,使用GCD構成,即使是在非常老舊的iPhone或12核Mac Pro上,它都能高效運轉。
23. MGSplitViewController
為了方面開發,蘋果iOS SDK提供了UISplitViewController用於iPad左右分欄介面顯示,但對於開發者而言,UISplitViewController使用起來並不方便,在開發過程中,總會遇到許多問題。於是,天才的iOS開發者Matt Gemmell在GitHub上發起了一個名為MGSplitViewController的開源UISplitView實現,它比蘋果官方UI元件所提供的分欄類功能更加豐富。
最初Matt編寫MGSplitViewController只是為了方便自己使用,但最終Matt決定將其開源,供所有iOS開發者使用。如果想要了解更多關於MGSplitViewController的資訊,可直接登陸Matt Gemmell部落格檢視,也可點選連結,檢視視訊演示(需翻&牆)。
24. CocoaLumberjack
CocoaLumberjack集快、簡單、強大、靈活於一身,和log4j等其他非常受開發者歡迎的日誌框架的概念類似,專為Objective-C設計,用於iOS和Mac,擁有多執行緒、GCD(如果可用)、無鎖原子操作和Objective-C執行時的動態特性。
25. PSTCollectionView
PSTCollectionView是用於iOS 4.3及其以上版本中的UICollectionView的100%開源API相容替代品。如果想要使用UICollectionView,但仍然需要支援老版本的iOS,那麼這個專案你一定會非常喜歡。如果想要始終使用PSTCollectionView,使用PSTCollectionView作為類名稱即可。
當然,如果你想在iOS 4.3/5.x上使用PSTCollectionView,但在iOS 6上使用UICollectionView,可以在所有UICollectionView類上新增PS,以獲得對老版iOS的自動支援,這樣就可以隨心所欲如你所願地使用PSUICollectionView。
26. CocoaHTTPServer
CocoaHTTPServer是一個用於Mac OS X或iOS應用的輕量級、可嵌入的HTTP伺服器框架。有時候開發者需要在他們的App中內嵌一個HTTP伺服器。無論是具有遠端監控功能的伺服器應用,還是使用HTTP進行後端通訊的桌面應用,或者是提供無線訪問文件功能的iOS應用,CocoaHTTPServer都能滿足你的開發要求。
CocoaHTTPServer提供如下功能:
-
支援Bonjour廣播內建;
-
支援IPv4、IPv6;
-
非同步網路使用GCD和標準套介面;
-
密碼保護支援;
-
SSL/TLS加密支援;
-
快速、高效;
-
伸縮性強;
-
大量註釋程式碼;
-
非常容易擴充套件;
-
還支援WebDAV。
27. PushSharp
在應用開發中,給App推送通知是很常見的方式。PushSharp正是這樣一個能夠實現向iOS(iPhone/iPad APNS)、Android(C2DM和GCM)、Windows Phone、Windows 8、BlackBerry(PAP)和Amazon(ADM)等多種作業系統推送訊息通知的開源C#伺服器端庫。
主要特性:
-
支援多平臺訊息推送;
-
API能夠很流暢地為不同平臺建立通知;
-
自適應資訊頻道(自動增加或減少訊息連結);
-
使用非同步程式碼,基於Event為導向呼叫類庫;
-
100%程式碼託管,相容Mono框架;
28. HockeyKit
此前在GitHub上“最受歡迎的Android開源專案”系列文章(一)中,我們曾對HockeyKit進行了詳細的介紹。HockeyKit是一個用於iOS和Android下App更新的開發包,無論是iOS還是Android應用開發,它都深受開發者喜愛。
29. JTRevealSidebarDemo
JTRevealSidebarDemo是一個能夠實現類似於Facebook客戶端和Path應用的檢視切換效果的Objective-C庫模板,其目的在於為開發者提供一個真正靈活的、可重用的解決方案。
JTRevealSidebarDemo可用於iOS 4.3和5.0應用開發,示例程式碼使用ARC構建,但該庫本身則相容ARC和非ARC。
30. PKRevealController
PKRevealController是對ZUUIRevealController的進化,ZUUIRevealController能夠實現類似於Facebook客戶端的檢視橫向切換效果。而PKRevealController則是一個iOS檢視控制器的集合,能夠讓你實現多重控制器切換,非常靈活。
31. QuincyKit
QuincyKit是一個為iOS和Mac OS X提供的程式崩潰報告管理解決方案,提供客戶端開發包以及基於PHP開發的伺服器平臺。
主要功能:
-
(自動)向開發者資料庫傳送崩潰報告;
-
由使用者決定每次崩潰是否傳送資料或總是傳送;
-
使用者可對是否選擇提供E-mail地址等額外資訊進行設定;
-
如果崩潰是已知的,向用戶提供即時反饋,並在接下來的更新中進行修復。
詳情請參考:QuincyKit官網
32. PSStackedView
PSStackedView能夠將你的UIViewControllers堆疊起來,實現了類似於Twitter iPad版應用效果的介面,專案發起人Peter Steinberger表示,PSStackedView的靈感正是來自於Twitter iPad的UI。
為了開發非常受歡迎的奧地利TV應用“3MobileTV”的iPad版,Peter創作了PSStackedView,開發者可以直接登陸App Store下載該應用。PSStackedView可執行在iPad和iPhone上,但相對而言,更適合用在iPad上。
33. Chameleon
作為一名iOS開發者,你應該對蘋果官方用於開發iPhone、iPod和iPad應用的UIKit框架很熟悉。Chameleon是一個完全獨立的可以直接替代UIKit在Mac OS X上執行的框架,和UIKit唯一的共性就是公共類和方法名稱。在大多數情況下,開發者不需要改動任何程式碼,即可直接在Mac上執行所開發的iOS應用。
Chameleon的原始碼是基於蘋果的文件而來,並沒有使用到任何私有API或其他未經Mac App Store批准的技術。如果想要了解更多關於Chameleon的資訊,可直接登陸ChameleonProject網站檢視。
34. cocos2d-iphone-extensions
Cocos2D-iPhone-Extensions整合了非常多的優秀的Cocos2D-iPhone引擎第三方擴充套件。該專案並沒有對Cocos2D進行任何改變,只是將新功能源源不斷地加入到Cocos2D-iPhone-Extensions中,供開發者使用。
35. DCIntrospect
Introspect是一個很小的iOS工具集,用於幫助開發者對使用UIKit構建的使用者介面進行除錯。特別適用於動態建立UI佈局、改變執行時,還能通過尋找透明檢視優化應用效能,並避免不必要的重繪檢視。
36. PSCollectionView
PSCollectionView是一個能夠實現Pinterest風格的瀑布流檢視顯示效果的iOS滾動元件,可用於類似的UITableView,支援顯示圖片和文字。
專案發起人Peter Shih在自己的iPhone/iPad應用Lunchbox中使用了PSCollectionView原始碼,開發者可以在App Store中免費下載該應用。
37. SDURLCache
NSURLCache及其子類提供了很多高階介面用於處理快取,但如果你想在自己的iPhone應用中通過HTTP請求的方式將快取儲存到磁碟中,推薦使用SDURLCache。Peter Steinberger在GitHub上託管的這個SDURLCache專案是Olivier Poitrey的SDURLCache的一個分支,支援iOS 5以下版本系統。
38. FastPdfKit
該開源庫包含著FastPdfKit iOS庫的一些示例專案。FastPdfKit是一個能夠讓你在iOS應用中顯示PDF文件的開發類庫,其最大的特點就是載入PDF文件速度特別快。
詳情請參考:FastPdfKit官網
39. KKGridView
KKGridView是一個高效能的iOS表格元件,但自WWDC 2012大會上蘋果推出了相關的解決方案之後,KKGridView也就逐漸停止使用了。每逢iOS系統更新,iOS開源專案勢必也會發生新一輪的改變,至於在顛覆了蘋果以往設計觀的iOS 7釋出之後,iOS開源專案又會發生哪些改變?還要看天才的開發者們!
40. MGBox2
MGBox2能夠實現非常酷的列表互動效果,使用最少程式碼,即可快速建立各種佈局效果的iOS表格、網格,支援新增和刪除網格,動態新增或刪除列表,在表格中加入多行文字、圖片等,支援手勢識別和自定義事件。
下拉重新整理列表元件SVPullToRefresh SVPullToRefresh 允許你通過一行程式碼把下拉重新整理新增至UIScrollView子類別,不需要依賴委託或者子類化UITableViewController。另外,該專案支援簡單自定義文字、箭頭的外觀。 這些UIScrollView類別讓下拉重新整理和UIScrollView的無限滾動變得非常簡單, SVPullToRefresh使用Objective-C runtime為UIScrollView新增以下3種方法: - (void)addPullToRefreshWithActionHandler:(void (^)(void))actionHandler; - (void)addPullToRefreshWithActionHandler:(void (^)(void))actionHandler position:(SVPullToRefreshPosition)position; - (void)addInfiniteScrollingWithActionHandler:(void (^)(void))actionHandler; https://github.com/samvermette/SVPullToRefresh 網路工具包MKNetWorkKit MKNetworkKit 是一個完全基於 ARC 的網路工具包。支援把上一次請求進行快取。MKNetWorkKit吸取了ASIHttpRequest與AFNetWorking的優點,並加入了自己的功能。 最新的程式碼並未在完全在Mac通過測試,iOS上的測試已經完成。包括Digg在內的多款app使用了該專案。關於更詳細的資訊和教程,你可以到MKNetWorkKit相關部落格上檢視。http://blog.mugunthkumar.com/products/ios-framework-introducing-mknetworkkit/ 網路工具包MKNetWorkKit MKNetworkKit 是一個完全基於 ARC 的網路工具包。支援把上一次請求進行快取。MKNetWorkKit吸取了ASIHttpRequest與AFNetWorking的優點,並加入了自己的功能。 最新的程式碼並未在完全在Mac通過測試,iOS上的測試已經完成。包括Digg在內的多款app使用了該專案。關於更詳細的資訊和教程,你可以到MKNetWorkKit相關部落格上檢視。http://blog.mugunthkumar.com/products/ios-framework-introducing-mknetworkkit/
UILabel改進版TTTAttributedLabel TTTAttributedLabel是一個文字檢視開源元件,是UILabel的替代元件,可以以簡單的方式展現渲染的屬性字串。另外,還支援連結植入,不管是手動還是使用UIDataDetectorTypes自動把電話號碼、事件、地址以及其他資訊變成連結。 支援NSAttributedString,相容iOS 4.3以上系統,自動資料檢測,手動連結植入等。 還包括先進的段落樣式: verticalAlignment textInsets firstLineIndent leading lineHeightMultiple shadowRadius highlightedShadowRadius / highlightedShadowOffset / highlightedShadowColor truncationTokenString
網路工具包MKNetWorkKit MKNetworkKit 是一個完全基於 ARC 的網路工具包。支援把上一次請求進行快取。MKNetWorkKit吸取了ASIHttpRequest與AFNetWorking的優點,並加入了自己的功能。 最新的程式碼並未在完全在Mac通過測試,iOS上的測試已經完成。包括Digg在內的多款app使用了該專案。關於更詳細的資訊和教程,你可以到MKNetWorkKit相關部落格上檢視。http://blog.mugunthkumar.com/products/ios-framework-introducing-mknetworkkit/ 轉自:http://www.verydemo.com/demo_c134_i49279.html