本部分來至知乎吳輝斌的回答
作者:吳輝斌鏈接:https://www.zhihu.com/question/22914651/answer/25089054
GitHub上有很多不錯的iOS開源項目淆衷,個人認(rèn)為不錯的,有這么幾個:
- ReactiveCocoa:ReactiveCocoa/ReactiveCocoa · GitHub:
GitHub自家的函數(shù)式響應(yīng)式編程范式的Objective-C實現(xiàn)培己,名字聽著很高大上炕横,學(xué)習(xí)曲線確實也比較陡,但是絕對會改變你對iOS編程的認(rèn)知老厌,首推之瘟则。 - Mantle:Mantle/Mantle · GitHub:
又是GitHub自家的產(chǎn)物,輕量級建模的首選枝秤,也可以很好的配合CoreData工作醋拧。 - AFNetworking:AFNetworking/AFNetworking · GitHub::
iOS7之前,蘋果自帶的網(wǎng)絡(luò)庫有多難用淀弹!matt大神的AFNetworking絕對可以解放你丹壕。使用蘋果的NSURLRequest及iOS7的NSURLSession,清晰的架構(gòu)薇溃,足夠的文檔菌赖,可以認(rèn)為是第三方開源庫的楷模了。 - BlocksKit: pandamonia/BlocksKit 路 GitHub
本人相當(dāng)偏愛Functional Programming沐序,Objective-C中的block絕對滿足我的口味琉用。但想用好block也不是很容易,如果對block有愛策幼,就請使用這個庫吧邑时。 - Nimbus:jverkoey/nimbus · GitHub
第一次關(guān)注nimbus是因為Facebook的Three20開源庫√亟悖可惜Three20庫已死晶丘,主要作者跳出來,寫了nimbus唐含。 - pop: facebook/pop · GitHub
facebook出品的paper铣口,動畫效果太好了,趕超apple的原生app一大截觉壶。pop就是paper的動畫庫脑题! - GPUImage: BradLarson/GPUImage ?? GitHub
iOS7出來時,很多好看的效果铜靶,其實都是對圖像的各種處理(比如模糊效果)叔遂。圖像處理看來以后也是iOS開發(fā)的必備技能之一了他炊。而GPUImage,就是能快速處理各種圖像效果的利器已艰!
以下部分來至知乎知乎用戶的回答
作者:知乎用戶鏈接:https://www.zhihu.com/question/22914651/answer/25137141
網(wǎng)絡(luò)
AFNetworking
?JSONKit(推薦使用YYModel)
Reachability
SVPullToRefresh**
(替代 EGOTableViewPullRefresh**和 LoadMoreTableFooterView**)
網(wǎng)絡(luò)請求首選AFNetworking痊末,無數(shù)個項目證明,只選對的哩掺。
Reachability也要用起來凿叠,時不時檢查一下網(wǎng)絡(luò)狀況,然后配合MBProgressHUD告知用戶「親嚼吞,你丫現(xiàn)在沒網(wǎng)啦盒件,別特么戳了。
使用SVPullToRefresh**處理刷新舱禽。
-------------------- 割 ---------------------
數(shù)據(jù)解析(JSON)
YYModel (推薦)
Mantle
MJExtension**
jsonmodel
推薦使用YYModel炒刁,解析效率可以查看下圖(iPhone6上基于解析Github用戶10000測試)
可以看到Y(jié)YModel幾乎接近手動解析JSON數(shù)據(jù),同時還提供了很多便利的方法誊稚。(例如接口返回一個名字叫做id的字段翔始,id。里伯。城瞎。厲害了word哥)
本地存儲
FMDB
Core Data
?SDWebImage (推薦 FlyImage )
?TMCache(由于TMCache已經(jīng)不在維護,建議大家使用PINCache疾瓮,感謝 @曾源IvanIsStrong指正全谤,參閱tumblr官方文章)
PINCache
FlyImage (集SDWebImage, FastImageCache and AFNetworking**優(yōu)點與一身)
FlyImage在iPhone6 Plus上處理『當(dāng)圖片滾動時』場景所消耗的內(nèi)存,可以看到幾乎和UIKit占用的相當(dāng)爷贫,SDWebImage可以下課啦哈哈认然。
這張圖是FlyImage處理170張小圖時的內(nèi)存表現(xiàn),同樣完爆SDWebImage漫萄,并且從幀率上可以看出SDWebImage已經(jīng)卡到爆炸了卷员。我正計劃換掉SDWebImage,另外對于FlyImage處理GIF時的表現(xiàn)暫不清楚腾务,所以有大量GIF圖需要處理的同學(xué)仍需自行測試毕骡。
第一次開發(fā)中引入數(shù)據(jù)庫的時候使用過FMDB,其實蠻強大的岩瘦,只不過需要寫sql語句未巫,select * from user(從user表中篩選出全部數(shù)據(jù))。
后來慢慢的拋棄了它启昧,一點也不面向?qū)ο笮鸱病:冒桑鋵嵨沂窍胝f還是CoreData好用密末,至少你不會因為不會寫sql而沒法保存數(shù)據(jù)握爷。(接手過的項目竟然還有全部存NSUserDefault的跛璧,真是沒脾氣了)
看過一篇對比CoreData和FMDB查詢大數(shù)據(jù)性能的文章,F(xiàn)MDB贏了新啼,不過還是推薦用CoreData追城。
------------- 割 ---------------
動畫效果
MBProgressHUD
SVProgressHUD (推薦)
pop
上面說到的沒網(wǎng)了提示用戶的MBProgressHUD,用起來吧燥撞,當(dāng)然還有很多轉(zhuǎn)菊花(loading)的開源項目座柱,同樣是我使用最多的。
pop是facebook paper使用的動畫效果物舒,開源了出來色洞,很贊啊,不過應(yīng)用到項目中的可能性很低茶鉴。。景用。太特么炫酷了涵叮。
--------------- 割 ---------------
其他
第三方庫管理工具,CocoaPods伞插,有時間可以學(xué)習(xí)一下割粮。 CocoaPods GitHubGithub repos (iOS) 這是一個收集了很多iOS開源項目的頁面,給作者贊一個媚污。
Carthage 另外一款包管理器舀瓢,可以嘗試。
有不完善的地方歡迎指出耗美,我會及時補充上來京髓。
持續(xù)更新中。商架。堰怨。