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