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-iphonejpsarda

該項目是對cocos2d for iPhone的擴展。

9. GPUImage

GPUImage是一個基於GPU圖像和視頻處理的開源iOS框架。

主要功能如下:


  • 提供各種各樣的圖像處理濾鏡,並且支持照相機和攝像機的實時濾鏡;

  • GPUImage顧名思義,是基於GPU的圖像加速,因此圖像處理速度非常快,並且能夠自定義圖像濾鏡;

  • 支持ARC。


10. MonoGame

MonoGame是一個Microsoft XNA 4.x Framework的開源跨平臺實現。此前在Android開源項目系列文章(一)中我們也進行了詳細的介紹。

MonoGame支持平臺:


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 允許你通過一行代碼把下拉刷新添加至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 是一個完全基於 ARC 的網絡工具包。支持把上一次請求進行緩存。MKNetWorkKit吸取了ASIHttpRequest與AFNetWorking的優點,並加入了自己的功能。
最新的代碼並未在完全在Mac通過測試,iOS上的測試已經完成。包括Digg在內的多款app使用了該項目。關於更詳細的信息和教程,你可以到MKNetWorkKit相關博客上查看。http://blog.mugunthkumar.com/products/ios-framework-introducing-mknetworkkit/
MKNetworkKit 是一個完全基於 ARC 的網絡工具包。支持把上一次請求進行緩存。MKNetWorkKit吸取了ASIHttpRequest與AFNetWorking的優點,並加入了自己的功能。
最新的代碼並未在完全在Mac通過測試,iOS上的測試已經完成。包括Digg在內的多款app使用了該項目。關於更詳細的信息和教程,你可以到MKNetWorkKit相關博客上查看。http://blog.mugunthkumar.com/products/ios-framework-introducing-mknetworkkit/

TTTAttributedLabel是一個文字視圖開源組件,是UILabel的替代元件,可以以簡單的方式展現渲染的屬性字符串。另外,還支持鏈接植入,不管是手動還是使用UIDataDetectorTypes自動把電話號碼、事件、地址以及其他信息變成鏈接。
支持NSAttributedString,兼容iOS 4.3以上系統,自動數據檢測,手動鏈接植入等。
還包括先進的段落樣式:
verticalAlignment
textInsets
firstLineIndent
leading
lineHeightMultiple
shadowRadius
highlightedShadowRadius / highlightedShadowOffset / highlightedShadowColor
truncationTokenString

MKNetworkKit 是一個完全基於 ARC 的網絡工具包。支持把上一次請求進行緩存。MKNetWorkKit吸取了ASIHttpRequest與AFNetWorking的優點,並加入了自己的功能。
最新的代碼並未在完全在Mac通過測試,iOS上的測試已經完成。包括Digg在內的多款app使用了該項目。關於更詳細的信息和教程,你可以到MKNetWorkKit相關博客上查看。http://blog.mugunthkumar.com/products/ios-framework-introducing-mknetworkkit/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章