精良的第三方 比較全面的
GitHub第三方資源庫整理(OC篇)
隨著
GitHub
star 的項目越來越多,而且之前也沒有整理,所以找起來特別麻煩,於是就有了這篇文章,一是方便我自己查找,都作了分類,而且都作了標註,對應找起來容易得多;二是分享出來,資源共享。這篇文章會持續更新,有好的GitHub
項目就會加進來,並且會把更新說明寫在文末。更直觀更方便的內容形式,請訪問本文的GitBook地址:GitHub第三方資源庫整理(OC篇)。
網絡
AFNetworking:mattt大神的網絡事件處理框架。
XMPPFramework:XMPP
,主要用於即時通訊。
CocoaAsyncSocket:異步socket
Reachability:用來檢查應用當前的網絡連接狀況,是蘋果Reachability類的直接替代品,支持ARC,支持block,使用GCD方法來通知網絡接口的變化。
SocketRocket:WebSocket協議是一種網絡協議,它的Web設計實現了瀏覽器與服務器的雙向通訊。通過使用WebSockets,你可以重復使用現有的工具建立網頁,就像大多數移動應用程序重復使用他們API中的HTTP協議一樣。
CocoaSPDY:Twitter出品
的一款關於HTTP
請求的框架。
OHHTTPStubs:測試篡改你app的網絡數據
、響應時間
、響應代碼
、和頭文件
,非常容易就摧毀你的網絡請求。
綜合
ReactiveCocoa:簡稱RAC,函數響應式編程框架。
YYKit:ibireme寫的一款綜合框架,包含YYModel、YYCache、YYImage、YYWebImage、YYText、YYKeyboardManager、YYDispatchQueuePool、YYAsyncLayer、YYCategories。
AsyncDisplayKit:facebook出品
,被應用於Paper
,是一款能夠保持界面流暢性的iOS開源框架,即使是最復雜的用戶界面,也可以讓其流暢運行並快速響應。
RestKit:旨在與RESTful web服務的交互變得更簡單快速,具有強大的特性:
- 簡單高層次的HTTP請求/響應系統;
- 框架支持切換服務器以及環境;
- Core Data支持;
- 對象映射系統;
- 生成數據庫文件;
- 可插入解析層。
NewsBlur:是一個個人的新聞閱讀器,將人們聚在一起談論世界。
動畫
動畫引擎
POP:facebook出品
,動畫引擎(推薦)。
Canvas:動畫引擎,最喜歡的就是它關聯Runtime Attribute
了,可以在SB添加KeyPath
直接加動畫。
JazzHands:作用於UIKit
的keyframe-based
動畫框架,具有良好的表現。
動畫引擎使用
Popping:使用pop動畫引擎做的動畫合集。
AGGeometryKit-POP:結合Pop的一個動畫框架,帶有力學動畫效果。
FastAnimationWithPOP:SB快速導入動畫,以前用過的,不過推薦使用Canvas。
轉場動畫
VCTransitionsLibrary:控制器之間的轉場動畫。
FDFullscreenPopGesture:全屏POP
的手勢動畫。
VVBlurPresentation:王巍寫的一款簡單過渡到另外一個控制器,但是保持原來控制器的視圖並模糊化,這對於一些提示比較有用。
LNPopupController:彈窗效果present
到另外一個控制器,就像Apple Music
app和Podcasts
app裏的效果一樣。
KMNavigationBarTransition:不需要寫任何代碼就可實現對不同風格導航的轉場動畫管理。
AnimatedTransitionGallery:許多種不同的轉場動畫風格。
其他動畫
RGCardViewLayout:City Guide App
的卡片滑動動畫效果。
iCarousel:卡片樣式的旋轉木馬動畫效果。
BCGenieEffect:實現了在Mac OS 中最小化或最大化窗口時的過渡效果。
自動布局
Masonry:自動布局,目前在用(推薦)。
PureLayout:自動布局,OC
、Swift
皆可用。
SDAutoLayout:自動布局代碼精簡化,支持Cell
和TableView
高度自適應。
OAStackView:UIStackView
iOS9之後的控件,對於自動布局這塊非常方便,OAStackView
就是兼容iOS7+系統的框架。
FDStackView:百度知道團隊出品
,兼容UIStackView iOS6+系統,FDStackView Part1、FDStackView Part2、FDStackView Part3這三篇文章是作者分析FDStackView
的設計實現過程(推薦)。
鍵盤交互管理
YYKeyboardManager:YYKit的組成部分,針對鍵盤管理(推薦)。
TPKeyboardAvoiding:鍵盤交互事件。
IQKeyboardManager:鍵盤交互管理。
加載指示、HUD
MBProgressHUD:加載進程指示框架,都知道。
SVProgressHUD:輕量的HUD
。
NJKWebViewProgress:顯示webView
交互進程的控件。
Shimmer:facebook出品,給APP的任何view添加shimmering
動畫效果,這個框架最初就是作為Paper加載動畫的。
PQFCustomLoaders:很有趣的自定義加載器。
DGActivityIndicatorView:很nice的加載指示器,有32種不要的加載指示風格。
數據處理
數據庫
realm-cocoa:Realm
是Core Data和SQLite的代替品,操作移動數據庫更加直接、快捷、耐用。
MagicalRecord:對於使用Core Data
做了非常好的封裝,用Core Data
值得一試。
fmdb:對SQLite
進行了封裝。
存儲
YTKKeyValueStore:唐巧寫的Key-Value方式存儲數據。
UICKeyChainStore:對Keychain
的封裝,讓你使用Keychain APIs
像NSUserDefaults
一樣簡單。
轉換
MJExtension:李明傑寫的一款JSON
轉Model
的框架。
Mantle:一款model層的框架,為什麽唱吧iOS 6.0選擇了Mantle。
JSONModel:一個解析服務器返回的Json數據,然後快速創建JSON 數據模型。同Mantle
類似,不過JSONModel
使用較為簡單,但Mantle
似乎更為強大,看個人選擇。
Underscore.m:一個小型實用工具庫,可以幫助開發者更方便地處理Objective-C中常見的數據結構
解析
JSONKit:主要用於JSON
數據處理解析。
Ono:mattt大神寫的一款關於處理XML
、HTML
的框
架。
hpple:解析XML/HTML的框架。
Categories
iOS-Categories:非常有用的objective-c Categories,涉及到Foundation
、UIKit
、CoreData
、QuartCore
、CoreLocation
、MapKit
等。
octave:UI 操作音效,UIControl
的category。
LTNavigationBar:動態改變UINavigationBar
的顯示狀態,類似手機QQ中QQ空間的導航效果。
FlatUIKit:扁平化的UI視圖集合。
UIKit
UI視圖
JSQMessagesViewController:一款優雅的關於聊天信息的UI框架。
SDCycleScrollView:無限循環圖片輪播器。
CoreLock:高仿支付寶手勢密碼。
日歷視圖
JTCalendar:自定義的日歷視圖。
GLCalendarView:同上,一款日歷視圖。
圖表、繪圖
PNChart:周凱文
寫的一款很好的圖表框架。
core-plot:也是一款2D的繪圖框架。
引導頁、狀態頁
Onboard:只需少量代碼就可創建非常nice的引導頁。
DZNEmptyDataSet:沒有請求到網絡數據或者請求失敗的視圖展示,就好像web
的404頁面一樣。
View
CRPixellatedView:UIView的子類,做像素化的動畫處理。
SwipeView:水平分頁滑動視圖。
Alert、Sheet
MMPopupView:高度可定制的alert、sheet。
TSMessages:提示信息、通知信息控件。
RKDropdownAlert:基於facebook的app
Slingshot
的alert,靈感取自於SVProgressHUD
的一個提示框架。
SCLAlertView:具有非常贊的動畫的Alert View
。
CMPopTipView:是一個開源的泡泡風格文本提示框控件。
TableView
FXForms:非常容易創建table數據形式,用於設置頁面非常理想。
VVeboTableViewDemo:VVebo剝離的TableView繪制,對TableView
進行流暢度優化。
RETableViewManager:數據驅動tableView
進行內容管理。
TextView
SlackTextViewController:文本輸入視圖,對於消息編輯非常有用,類似於微信發送消息的那個輸入框。
Menu
RESideMenu:左右側視圖視差效果menu
,不過很久沒有commit
了。
AwesomeMenu:Path2.0
裏面的menu
效果。
Button
VBFPopFlatButton:使用pop
做的不同狀態具有平緩過渡動畫效果的扁平化button。
BEMCheckBox:一款可自定義的具有非常nice動畫效果的checkbox
。
TextField
JVFloatLabeledTextField:編輯就會出現浮動的提示label
,效果不錯。
Label
TTTAttributedLabel
RQShineLabel:類似於Secret
的文字閃爍動畫。
Font、Color
FontAwesomeKit:字體框架,支持Font-Awesome
、Foundation icons
、Zocial
、ionicons
。
Chameleon:類似顏色板一樣,具有很多超贊的顏色可供直接使用。
Colours:和Chameleon
功能類似。
DKNightVersion:對顏色的管理,融合了白天和黑夜的主題效果。
Cell
SWTableViewCell:滑動Cell
的內容視圖,出現功能按鈕。(推薦)
MGSwipeTableCell:功能同上。
UITableView-FDTemplateLayoutCell:sunnyxx
寫的,自動計算cell動態高度。
CoreText、AttributeText
DTCoreText:允許使用HTML
代碼的Core Text框架。
YYText:非常強大的富文本顯示和編輯框架。(推薦)
Image
GPUImage:GPUImage 是ios下一個開源的基於GPU的圖像處理庫,提供各種各樣的圖像處理濾鏡,並且支持照相機和攝像機的實時濾鏡。
圖片加載、緩存
SDWebImage:異步圖片下載處理,支持緩存,我相信大部分開發者都用過。
PINRemoteImage:對圖片下載、加載、緩存的管理,線程安全且快速,對於網絡圖片具有很好的表現力。
Haneke:輕量的圖片緩存框架。
AsyncImageView:異步圖片處理的一個簡單Extension。
Concorde:下載和解碼JPEGs
格式圖片。
GIF
FLAnimatedImage:Gif引擎框架。
YLGIFImage:異步Gif解碼,播放Gif圖片,占用內存少。
Camera、視頻
XCDYouTubeKit:YouTube
視頻播放框架。
ZFPlayer:基於AVPlayer
支持橫屏、豎屏的視頻播放器。
kxmovie:使用ffmpeg
制作的一款視頻播放器。
PBJVision:一款camera
的引擎,支持錄屏
、慢動作
、獲取圖片
等特性,且camera
可自定義。
MWPhotoBrowser:一款優雅的圖片、視頻資源瀏覽器。
瀑布流
CHTCollectionViewWaterfallLayout:UICollectionView的瀑布流。
Objective-C與JS交互
JSPatch:JSPath
充當Objective-C
與
JavaScript
交互的橋梁。
WebViewJavascriptBridge:Objective-C
與
javascript
交互通信過程中,和JSPath
一樣充當橋梁。
地圖、地理位置信息、LBS
LocationManager:非常容易獲取設備當前地理位置信息的框架。
ReactiveCocoa
ReactiveCocoa:簡稱RAC。
MVVMReactiveCocoa:使用ReactiveCocoa結合MVVM模式做的一個Demo。
Runtime
RuntimeBrowser:有關運行時操作的工具,你有權使用運行時所有的類。
iOS-Runtime-Headers:使用RuntimeBrowser
導出的iOSframework
的頭文件。
Block
BlocksKit :對於使用Block
來說更加方便、高效,不過好久沒有commit
了。
KVO
KVOController:facebook出品
,它是一個簡單安全的 KVO工具,構建了一個基於 Cocoa 的 time-tested key-value 監控實現,提供簡單方便、線程安全的 API。
AOP、Method Swizzling
Aspects:一個簡潔高效的用於使iOS支持AOP面向切面編程的庫。
路由器、Deep Link
JLRoutes:引入路由器的概念handle complex URL schemes
、deep link
(推薦)。
DeepLinkKit、routable-ios、HHRouter:功能同上。
測試
Kiwi:iOS的BDD框架。
specta:輕量的TDD/BDD測試框架。
KIF:全稱是Keep It Functional,來自Square
,是一款專為iOS設計的移動應用測試框架
日誌
CocoaLumberjack:是Mac和iOS上一個集快捷、簡單、強大和靈活於一身的日誌框架。
工具、Xcode插件
工具
Alcatraz:Xcode插件管理神器,當然還有些其他的包管理功能。
FLEX:一款很好的調試工具,同樣是Flipboard
出品。
PonyDebugger:原生app使用Chrome
開發工具進行遠程的網路和數據debug
。
xctool:facebook出品
的取代Apple‘s xcodebuild
,讓編譯和測試更簡單。
Tweaks:facebook出品
的快速原型開發工具,能在應用上實時調整參數並測試效果。
EarlGrey:google出品
的UI自動測試工具。
GitUp:用於Git交互。
插件
injectionforxcode:運行中的程序,然後在Xcode中動態插入代碼,你可以實時看到編譯器中的變動。
CATweaker:創建CAMediaTimingFunction
曲線的一個幫助工具,該插件可以實時觀看你創建的曲線,而且可調整。
KSImageNamed-Xcode:自動call
imageNamed:獲取圖片資源名字填充,且相應圖片在左側可見。
XAlign:自動代碼對齊插件。
VVDocumenter-Xcode:王巍
寫的一款編寫文本的插件,用於註釋非常方便。
SCXcodeSwitchExpander:自動填充Switch
語句的枚舉case值。
RTImageAssets:給定一張@3x
的圖片,自動生成其他像素的圖片,也可以給定一張@2x
的圖自動片生成@3x
的圖片。
ESJsonFormat-Xcode:將JSON格式化輸出為模型的屬性插件。
FuzzyAutocompletePlugin:代碼索引、自動補全代碼的插件。
ColorSense-for-Xcode:主要針對RGB顏色值,可實時查看RGB顏色。
API、SDK
facebook-ios-sdk:facebook的sdk,使用它可以集成facebook的一些API。
octokit.objc:GitHub
API。
其他
PKRevealController:是一個iOS平臺上的視圖控制器集合,通過展現多個視圖控制器來進行控制器之間的切換,設置簡單,高度靈活。
nimbus:旨在落實Three20,但是提供文檔放在第一位,其次才是功能。
Chameleon:就像是一個港口,有iPhone
、iPad
、Mac
幾個分支,用於處理不同平臺。
iOS-Artwork-Extractor:可以把所有圖片和emoji符號提取出來,並導入png文件。
Bolts-ObjC:集成多任務處理的,和GCD、NSOperation的作用有點類似。
資料
iOSInterviewQuestions:ios面試題集錦。
open-source-ios-apps:關於iOS開發一些開源的資源集錦,涉及iOS開發的各個方面。
trip-to-iOS:iOS學習資料整理。
精良的第三方 比較全面的