iOS開發-經常使用第三方開源框架介紹(1)

轉載:http://blog.csdn.net/xiaoyuertongxue/article/details/46982879java

  1. 圖片瀏覽控件MWPhotoBrowser 實現了一個照片瀏覽器相似 iOS 自帶的相冊應用,可顯示來自手機的圖片或者是網絡圖片,可自動從網絡下載圖片並進行緩存。可對圖片進行縮放等操做。 
    下載:https://github.com/mwaterfall/MWPhotoBrowser 
    目前比較活躍的社區仍舊是Github,除此之外也有一些不錯的庫散落在Google Code、SourceForge等地方。因爲Github社區太過主流,這裏主要介紹一下Github裏面流行的iOS庫。 首先整理了一份Github上排名靠前的iOS庫(大概600個repos) 除了逛一下每日/每個月流行以外,也能夠到這裏來看一下整個iOS Repos的排名。 下面是一些比較流行的第三方庫: HTTP 相比較之下,AFNetworking是目前最優秀的一個了:輕量、易用、使用者多、開發者有在積極維護。在AFN出現以前,這個角色是由ASIHTTPRequest扮演的,只是到如今年久失修了。關於AFN和ASI的對比,這裏有一篇不錯的文章http://www.infoq.com/cn/articles/afn_vs_asi。除此以外,MKNetworkKit和RestKit也有必定的使用者。 Socket CocoaAsyncSocket無疑是目前封裝得最完善的Socket庫了:支持異步TCP/UDP,支持GCD,Objective-C接口封裝。。目前沒有發現能夠與之相比的同類產品。。 JSON JSONKit算是第三方中最優秀的一個了:性能很高,文件少。在JSONKit以前,SBJson很是很是流行,可是SBJson性可以差,只是因爲歷史緣由仍然存在在某些工程裏面。若是工程只須要支持iOS5以上的系統,那就能夠放棄那些第三方Json庫了,直接用系統提供的NSJSONSerialization,性能比第三方的好,又是官方API。。 XMPP 如今作個實時聊天,XMPP協議算是很成熟的方案了。XMPPFramework一個很不錯的選擇,能夠直接和OpenFire服務器打交道。項目不大人手很少的話,能夠看看這個。 基礎工具類 SSToolkit算是一個不錯的工具包,提供各類好比編碼、加密、字符串處理等等東西,還提供了一些不錯的自定義控件,而且文檔很是齊全。 框架 過去有不少人再用three20,這個東西太大過重,文檔又少,到頭來連Facebook都中止維護了。做爲替代品nimbus如今流行了開來,關鍵在於它文檔齊全。國內有個MVC框架叫BeeFramework,號稱是頂級框架而且功能超過nimbus,有興趣的能夠看一下。 ReactiveCocoa把響應式編程這種上流的東西帶了過來,值得試一試。。 數據存儲 仍是挺多人(好比我)喜歡直接跟SQLite打交道的,這方面fmdb封裝的很不錯。若是用CoreData來作存儲的,能夠用一下MagicalRecord。 圖像處理 GPUImage無疑是這方面的集大成者了。用OpenGL ES2.0來實時處理圖片和視頻流,性能和功能都是頂尖的。 開發和調試工具 PonyDebugger看上去是一個不錯的調試工具,能夠在dian腦瀏覽器上遠程調試iOS程序、查看試圖層次、網絡等等。CocoaLumberjack是個Log工具,號稱是能夠提供企業級Log,使用者也挺多。 爲了瞭解一下目前第三方庫的普及程度,下面列舉一些知名App對第三方庫的依賴。 ios


網易新聞  
AppleReachability 
ASIHTTPRequest 
EGOTableViewPullRefresh 
GTMNSString+HTML 
MGTemplateEngine 
MPOAuth 
RegexKitLite 
SDWebImage 
SSZipArchive 
wax Garageband MurmurHash 
libpng 
zlib 
SBJson (json-framework) iWork三套件 MOKit 
Boost C++ Library 
protobuf 
OpenGL Mathematics 
SQLite 
cephes math library Pinterest AFNetworking 
AFHttpClientLogger 
Facebook SDK 
iRate 
MAKVONotificationCenter 
SDWebImage 
SFHFKeychainUtils 
SSPullToRefresh 
SVProgressHUD 
TTTAttributedLabel 
TTTLocalizedPluralString 
多看閱讀  
fmdb 
ASIHTTPRequest 
FreeType 
JSONKit 
Objective-Zip 
Skia (Google) 
MBProgressHUD 
淘寶 
MAZeroingWeakRef 
MBProgressHUD 
ABContactHelper 
ASIHTTPRequest 
CocoaLumberjack 
EGOTableViewPullRefresh 
fmdb 
GTMBase64 
JSONKit 
SBJson (json-framework) 
RTLabel 
SDWebImage 
SVPullToRefresh 
three20 
微信  
cocos2d 
EGOTableViewPullRefresh 
Facebook iOS SDK 
JSONKit 
SBJson 
ziparchive QQ ASIHTTPRequest FMDB CocoaAsyncSocket JSONKit MBProgressHUD OpenUDID SBJson SVPullToRefresh 百度地圖  
AFNetworking 
GTMBase64 
JSONKit 
MBProgressHUD 
RNCachingURLProtocol 
SDWebImage 
微博 
ABContactHelper 
AFNetworking 
ASIHTTPRequest 
DACircularProgressView 
DDProgressView 
DTFoundation 
fmdb 
JSONKit 
SBJson 
MBProgressHUD 
MTStatusBarOverlay 
OpenUDID 
SFHFKeychainUtils 人人 cocoaasyncsocket 
ZipArchive 
MBProgressHUD 
JSONKit 
GTMBase64 
MKNetworkKit 
HPGrowingTextView 
zxing 
能夠看到,這些大型的App的依賴都很混亂,因此稍微解釋一下。這些大公司都有一個iOS團隊來協同開發,團隊成員的水平也良莠不齊。有時因爲歷史緣由,例如某個App的某個組件依賴了ASIHttpRequest,但以後的新人改用了AFNetworking,就形成上面這種比較混亂的庫依賴關係。這就形成難以維護、代碼冗餘等問題了。因此,引入一個第三方庫必定要慎重考慮,若是可能,儘可能本身開發和實現相應的功能,第三方庫儘可能只做爲參考。 小團隊或者我的開發者能夠沒必要過多考慮,開發速度優先。 —————————————————————————————————————————————————————————————– 2014年8月7號新增 系統基礎庫 Category/Util 
sstoolkit 一套Category類型的庫,附帶不少自定義控件 功能不錯~ 
BlocksKit 將Block風格帶入UIKit和Founcation 
cocoa-helpers 一些Cocoa的擴展 2年前的工程 
CoconutKit 一系列擴展和一些自定組件 
STUtils 一系列擴展包 
PSFoundation 一系列擴展 和功能加強 
ConciseKit 一系列宏定義 挺有意思 
DTFoundation 又一系列擴展。。。 
BBBootstrap 一些常見功能的擴展庫 
cooliris-toolkit cooliris出品的基礎工具庫,從GoogleCode clone過來 
BaseKit 一套基礎工具庫 
NSObject-Utility-Categories 如題 
NSArray-Utilities 如題 
aqtoolkit 一些經常使用的東西 
DLIntrospection 一些NSObject的擴展 
NSDate-Extensions 如題日期 
ALActionBlocks 在UIControl上添加的Block事件 
jrswizzle 主要是swizzling 
moriarty 一些還算有用的功能 
QSUtilities 一些基礎庫 (Instagram有用到) 
libextobjc 一堆oc的擴展 
PrettyTimestamp 友好時間的擴展 
ios-jail-break-detector 檢測是否越獄 有上線 
crackify 檢測App是否被破解 
NSBundle-OBCodeSigningInfo 檢查當前簽名、Sandbox狀態 MacOSX 
UIView-AnimatedProperty 爲UIView添加動畫效果的property,有用到swizzle 
Block-KVO Block風格的KVO~ 
MTDates 一些Data的category 
CocoaSecurity 常見的哈希、加密解密算法 
sskeychain 訪問keychain 支持iOS Mac 
ABContactHelper 訪問聯繫人 
UISS 用JSON的風格設置UIKit樣式 
Underscore.m 仿JS的underscore.js來寫的,用於訪問和處理數據 
TICoreDataSync 在不一樣設備間對CoreData進行同步 (iPhone iPad Mac) 
SoloComponents-iOS 幾個輕量的組件,沒什麼用,2年沒更新 
MAObjCRuntime 將運行時包裝成ObjC 
Objective-C-Generics 經過宏定義勉強實現的範型 
TBMacros 一些經常使用的宏定義 
NSString-Ruby 爲Ruby程序員帶來的字符串相關功能 
ObjectiveRecord CoreData包裝的活動記錄 有RoR風格的API 
FastImageCache 滑動時快速顯示圖片的庫,Path開發 基礎功能 
mediaextract 純C的一些經常使用媒體文件的解析讀取 
objection 一個估計是java ee寫多了的人搞的。。註解依賴注入xx工廠之類的 
Typhoon IoC容器啊~~ 
HTKit 一堆亂七八糟的東西 
StringScore 模糊匹配字符串 查找某兩個字符串的類似程度 
RegexKitLite 正則表達式庫 (從SF.net mirror過來) 
FormatterKit 一個NSString的格式化工具 
TMCache 一個內存Cache 
EGOCache EGOImage裏面的 Cache功能 
HJCache 一個緩存網絡內容等的Cache 
RNCryptor 加密解密相關 貌似更上流, note:去看一下他博客 
ssziparchive zip壓縮 zip解壓~ 
ZipKit 一個ZipKit 從bitbucket Mirror過來 
ZipKit 如同ZipKit 改成ARC了 
zipzap Zip文件處理 底層爲libz 
MTMigration 版本升時執行一次 
MTControl jQuery風格touch事件綁定 
storage 快速、線程安全的I/O存儲操做 
CHCSVParser CVS文件解析 
YLMoment 日期的解析,格式化等,支持多語言 
CMUnistrokeGestureRecognizer 各類奇怪的手勢檢測 
EKAlgorithms.git 常見算法的ObjC實現,包括排序、查找、數組、字符串、經常使用數據結構.. 框架/封裝 
three20 一個曾經用得普遍的龐大的iOS開發框架 已再也不維護 
nimbus three20替代品 又一個龐大的框架 
BeeFramework 一個基於MVC的框架, 比較大.. 
OmniGroup 一套很龐大的庫(OmniGroup) 支持Mac和iOS 更新迅速 
ReactiveCocoa 一套響應式編程的框架(Functional Reactive Programming) 支持Mac 
WebViewJavascriptBridge WebView和Cocoa之間的事件傳遞 
OCUDL 自定義literals 有點意思~~ 
Kiwi 一個Behavior驅動編程框架? (BDD)? 
Mantle 一個Model層, 替代CoreData 能夠生成Model對象~ Github官方出品.. 
MagicalRecord CoreData的包裝 簡化代碼 
fmdb SQLite的封裝 
KZPropertyMapper 一個Model的封裝,類JSON 
BlockInjection 爲某個方法注入一個Block 相似AOP 
NSObject-ObjectMap JSON和XML包裝到Object 
Ejecta 經過OpenGL OpenAL來實現 WebCanvas JS等,很龐大~ 
FCModel 爲SQL程序員包裝一下CoreData 功能/封裝 
iOS-System-Services 獲取各類設備信息 包括硬件、網絡、內存、進程等等 
MKStoreKit iAP用的庫 
CargoBay 一個包裝iAP StoreKit的庫 
RMStore 很輕量的iAP包裝 
QuincyKit 處理crach信息的庫 只有上架應用才能用 支持Mac 
OpenUDID 系統UDID替代方案 
UIDevice-with-UniqueIdentifier-for-iOS-5 另外一個UUID解決方案 但iOS7不能用了 
uidevice-extension 一系列UIDevice的擴展 有PrivateAPI 最新的工程在cookbook-code裏 
InAppSettingsKit 包裝了設置、URLScheme、Mail、Icon等東西 
DTWebArchive 容許訪問剪貼板中的WebArchive格式富文本 
routable-ios inApp的URL定義 在App內打開自定義URL (解耦) 
JLRoutes 複雜的URL Scheme解析和路由 
Emoji 訪問Emoji圖片的功能 
PDKeychainBindingsController 以相似UserDefault的方式訪問Keychain 
CoreTextWrapper 一個CoreText庫的包裝 
Slash 對AttributeString的封裝 
iHasApp 檢測某個App是否安裝,集成了常見的URL Scheme 網絡 基礎 
AFNetworking 很棒的HTTP網絡通訊庫 
asi-http-request 一個HTTP庫 一樣很知名 性能好,穩定 但已再也不維護 
MKNetworkKit 一個HTTP庫 支持Mac 一樣也不錯 
STHTTPRequest 一個很是簡單的http庫,包裝了NSURLConnection 
RestKit 一個HTTP庫 用來與RESTful的服務進行交互 
AFIncrementalStore 用CoreData和AFNetworking 將HTTP數據持久化 
CocoaAsyncSocket TCP/UDP包裝庫 支持Mac 很棒 
Reachability 判斷設備網絡狀況 和蘋果的很像 用ARC、GCD 
SDReachability 判斷設備網絡狀況 和蘋果的很像,更友好? 
socket.IO-objc 支持HTTP 長輪詢 socket.io 
DTBonjour Bonjour和Wifi 
XMPPFramework XMPP客戶端的庫~ 支持Mac 
CocoaHTTPServer 一個輕量的HTTP Server 支持Mac 
SocketRocket WebSocket客戶端~ 
MailCore IMAP SMTP郵件協議 JSON 
JSONKit 性能很是好 (只比Apple原生的差一點) 
json-framework SBJson 曾經用得很普遍的JSON 性能差 
TouchJSON 又一個JSON庫 
yajl-objc 一個JSON庫 能夠支持流解析 支持Mac 
JSONModel 一個構建JSON Model的工具和庫 XML/Html 
MWFeedParser Feed/Atom解析 
RSSKit RSS Atom解析 
ElementParser 提供Html和XML的解析 
hpple 提供Html/XML解析 
Objective-C-HMTL-Parser 一個很簡單的HTML解析 包裝了下libxml 
RaptureXML 一個簡單的XML解析器 包裝了libxml 
KissXML 解析XML的庫 包裝了libxml 
TBXML 快速解析xml的庫 
xmldocument 又一個解析XML的庫 
XMLDictionary 蠻好用的一個XML轉NSDictionary的類~ 
XML-to-NSDictionary XML轉NSDictionary 
MMMarkdown 一個渲染Markdown到HTML的小引擎 
Ashton 在NSAttrbuteString和Html之間轉換 
XMLParser XML解析成json~ 功能性 
EGOImageLoading 下載使用網絡圖片的庫 
SDWebImage 異步加載網絡圖片 (UIImage Category) 
TCBlobDownload 下載大文件/ 斷點續傳 
GroundControl 一個經過遠程plist改變配置的庫 
appirater 提醒用戶稍後到AppStore給你評分的功能 
iRate 相似appirater 提醒用戶稍後到AppStore評分 支持Mac 
ShareKit 分享到國外的一些社交網站 的功能 用的的人挺多 
Harpy 新版本更新提醒 
iVersion 新版本更新提醒 功能提示 
DataKit 以相似CoreData的Model 來獲取網絡資源 
SDURLCache URL緩存 
objective-git libgit的包裝 挺龐大 
nsrails RoR風格的網絡交互API SDK 
facebook-ios-sdk Facebook的SDK 
MGTwitterEngine 一套Twtter庫 
Twitter-OAuth-iPhone Twitter的OAuth功能 
Foursquare-API-v2 Foursquare的庫 
objectiveflickr Flicker API 
octokit.objc Github的API 
ParcelKit Dropbox封裝CoreData 
cocoalibspotify spotify官方SDK 
GDFileManagerKit 訪問 dropbox GDrive之類的雲存儲 音頻 
iOSSystemSoundsLibrary 列出和播放iOS系統聲音~ 
novocaine 一個聲音庫 錄音放音 頁面上有CoreAudio的教程連接 
TheAmazingAudioEngine 一個聲音庫 包裝了CoreAudio 
AudioStreamer 音頻流播放庫 支持Mac 
SimpleAudioEngine 一個簡單的播放聲音的庫 
DOUAudioStreamer 豆瓣的音頻流播放 
audiograph 一個AU的教程 & 示例工程~ 
NVDSP 一個iOS上的DSP處理 
Blip-Synth 一個Blip聲音合成器 
PGMidi 一個Midi庫 
sc_listener 檢測系統聲音等級的庫 
ObjectAL-for-iPhone 一個OpenAL的包裝庫 比較好用 
SoundBankPlayer 一個仿SoundFout的庫 但更簡單 
Finch 對底層的OpenAL包裝 
SoundManager 很簡單的Sound播放管理 
OrigamiEngine 音樂播放引擎 支持 flac, cue, mp3, m4a, m3u 
libpd 一個用PD來創造音樂的庫? 純C 
pd-for-ios 同libpd 
RCTMidiLib 一個Pad鏈接Midi設備通訊的包裝 
octave 一個免費的音效庫 包括48個UI音效 
RBDMuteSwitch 在iOS5上檢測是否靜音 
sfArkLib 轉換sfArk和sf2的庫 很簡單 
sfArkXTm 簡單解壓sfArk的一個cpp 
unsfark 和上面sfArkXTm同樣,是老一點的純C版本 
MuseScore 一個跨平臺的音樂軟件~ not iOS 
OpenSFZ 一個SF2的處理庫(Github上有詳細說明) An Open SFZ player & SF2 based on SFZero 
alsaplayer 一個Linux下PCM庫 有sf2 midi等處理過程 遊戲 
cocos2d-iphone 2D遊戲引擎 (SpriteKit後來居上了..) 
cocos2d-iphone-extensions cocos2d的擴展 
smooth-drawing cocos2d中畫出平滑的曲線 
tiny-wings 仿TinyWings的Demo 用Cocos2D 
Tiny-Wings-Remake-on-Android 如題. 
tweejump 是小鳥就跳100層 Game 
wizardwar 一個很完整的2D小遊戲,支持對戰,已在AppStore上架 
Sparrow-Framework 開源遊戲引擎 2D 1.0版 
Sparrow-Framework 開源遊戲引擎 2D 2.0版 圖像 GPU OpenGL 
GPUImage 基於GPU的實時圖像視頻處理 
XBImageFilters 一個GPU實時處理的庫 相似GPUImage 
CeedGL 一個OpenGL的包裝 用起來更方便 
rend-ios 一個OpenGL的輕量包裝 接近UIKit 
GLView 在UIView的包裝 方便使用OpenGL 
sift-gpu-iphone 一個包裝GL用的,不知道幹毛的 
ShaderManager 如題 一個Manager 管理建立Shader 
GLImageProcessing 演示如何用GPU處理圖片 
FRD3DBarChart 用OpenGL繪製的3D柱形圖 
EarthView 顯示3D地形圖 用OpenGL 
CoreAR 一個挺有意思的AR 
VRToolKit 一個虛擬現實的庫 圖像處理 
NYXImagesKit 一套圖像處理的庫 加在UIImage上 
ios-image-filters UIImage擴展 相似PS的功能 用CoreImage 
vImageCategory UIImage擴展 簡單的一些處理 
MGImageUtilities 幾個簡單的圖片處理 UIImage 
UIImageAdjust 一些UIImage的擴展 如亮度 模糊等 
CKImageAdditions 一些UIImage的不錯功能~ 
UIImage-BlurredFrame 僅模糊圖片中的一塊區域~ 
LBBlurredImage UIImage擴展 能夠模糊 不知道性能如何 
FilterKit 爲拍照添加濾鏡 基於GPUImage 
TCam 用CIFIlter實現的相似Instagram的類 
CLImageEditor 一個功能齊全的圖像處理(濾鏡/曲線/裁減/旋轉/等等~) 
PKCoreTechniques CA和CG的特性演示 
UIImage-Categories UIImage的一些擴展 
uiimage-dsp UIImage模糊的一些方法 
UIImage-Sprite-Additions UIImage取Sprite~ 
iOS-Scratch-n-See 相似結冰玻璃用手畫開的效果~ 
OBGradientView 一個漸變色的CALayer 比系統的好用些 
ANImageBitmapRep 一些Bitmap處理的方法 
KGNoise 產生帶噪音的Image 支持Mac 
KGNoiseColorTester 上面KGNoise的演示 
SQRiskCursor 一個用CA和UIControl自定義控件的例子 
AmazeKit 聽說是爲PNG加速 或本身畫 主要爲控件提高性能的 
UIImage-PDF 如題 UIImage來顯示PDF 
JMNoise 給UIView添加Noise噪音的 
SWSnapshotStackView 圖片加上Stack外框 
RMShapedImageView 一個UIImageView的子類 能忽略透明地方的點擊 
MOOMaskedIconView 一個經過Mask顯示Icon的庫 只要一個Mask 能夠生成不少風格的Icon 相似Tabbar 
FTAssetRenderer 運行時的圖像Mask生成? 
wolfpack 圖像處理庫CI CG 
DSGraphicsKit 支持圖片常見處理 視圖控制3D等 
uiimage-from-animated-gif 顯示gif 
cam 一個AVFoundation的封裝、照相等功能 
Filtrr 幾個Filter 速度也不行 
ZXingObjC ZXing 二維碼/條形碼處理 顏色 
uicolor-utilities UIColor擴展和色板 
color 一系列UIColor擴展 
ColorUtils 一個UIColor擴展 
ColorConverter RGB和HSL轉換 
InfColorPicker 一個色彩選擇器 
RSColorPicker 一個不錯的色彩選擇器 有放大鏡 
colorpicker 一個很強大的ColorPicker 包裝了挺多東西 
ColorPicker 功能很棒的一個取色 
ILColorPicker 一個還算標準的ColorPicker 
NPColorPicker 一個HSV三角取色器 
KZColorPicker 又一個HSV圓盤取色器 
Color-Picker-for-iOS 一個簡單的單色Picker 有一個滑塊 
LEColorPicker 一個ColorPicker能夠取到圖片的主色調等 
UIColor-converter 一些UIColor的工具~~ 
SUColor 提供2K多的日本色 
Colours-for-iOS 提供很多經常使用色 和幾個方法 
ColorArt 相似iTunes的 取一幅圖畫的主要背景顏色等 (這是個Mac功能) 
iOS7Colors iOS7的幾種經常使用顏色 繪圖庫 
iOSPlot 畫餅圖/折線圖的庫 用CA 
PNChart 扁平風格的折線圖/柱形圖 
TEAChart 扁平風格的餅圖/柱形圖 
ios-linechart 簡單好用的餅圖/折線圖 
JYRadarChart 雷達圖(螂蛛網圖), 風格多樣 
Core-Animation-Pie-Chart 用CA畫餅圖 示例 
MSSimpleGauge 扇形儀表盤 
FBDigitalFont LED液晶效果熒光字體,用CG實現 
FBGlowLabel LED液晶效果熒光字體,UILabel 
ADGraphView 一個CG繪畫庫 股piao曲線演示 
SVGKit 一個用CA來呈現SVG圖片的庫 
Smooth-Line-View 用QuartZ畫出平滑的曲線 
Smooth-Line-View 用上面的庫搭建的比較完整的畫板功能 有取色器等 
SignatureDemo 一個QuartZ 觸摸畫平滑曲線的Demo~~~ 
DynamicGraphView 動態折線圖 
XYPieChart 餅圖~有動畫 
Animated-Paths 動畫畫出文字和圖形的輪廓~ 動畫/效果 CA 
CA360 一套完整的CA動畫Demo 
Core-Animation-Fun-House 一套CA動畫展現Demo 
Core-Animation-Demos 一套CA動畫Demo 
EnterTheMatrix CA動畫演示Demo 
ftutils 一套CA的Util庫 有一些經常使用動畫 
Dazzle 用CA實現的各類有趣的粒子效果 
AGGeometryKit CA和3D效果等 
RBBAnimation 基於block的CA動畫 動畫曲線 
NSBKeyframeAnimation 那些jQuery帶的動畫速率曲線 
CAAnimation-EasingEquations 一些CA沒有的動畫曲線 
UIView-EasingFunctions UIView的動畫曲線~~ 
PhysicsAnimation 物理動畫,用Chipmunk實現的重力效果等 
DPMeterView 有重力感應的2D圖形動畫(例如瓶子的水) 貌似挺有意思~~ 
Parallax iOS7的景深背景動畫效果 通常.. 
MTAnimation 25種動畫曲線

git

相關文章
相關標籤/搜索