標籤:http io ar os 使用 sp strong on 資料
GitHub上有很多不錯的iOS開源項目,個人認為不錯的,有這麼幾個:
1. ReactiveCocoa:ReactiveCocoa/ReactiveCocoa · GitHub:
GitHub自家的函數式響應式編程範式的Objective-C實現,名字聽著很高大上,學習曲線確實也比較陡,但是絕對會改變你對iOS編程的認知,首推之。
2. Mantle:Mantle/Mantle · GitHub:
又是GitHub自家的產物,輕量級建模的首選,也可以很好的配合CoreData工作。
3. AFNetworking:AFNetworking/AFNetworking · GitHub:
iOS7之前,蘋果內建的網路程式庫有多難用!matt大神的AFNetworking絕對可以解放你。使用蘋果的NSURLRequest及iOS7的NSURLSession,清晰的架構,足夠的文檔,可以認為是第三方開源庫的楷模了。
4. BlocksKit: pandamonia/BlocksKit 路 GitHub
本人相當偏愛Functional Programming,Objective-C中的block絕對滿足我的口味。但想用好block也不是很容易,如果對block有愛,就請使用這個庫吧。
5. Nimbus:jverkoey/nimbus · GitHub
第一次關注nimbus是因為Facebook的Three20開源庫。可惜Three20庫已死,主要作者跳出來,寫了nimbus。
6. pop: facebook/pop · GitHub
facebook出品的paper,動畫效果太好了,趕超apple的原生app一大截。pop就是paper的動畫庫!
7. GPUImage: BradLarson/GPUImage ?? GitHub
iOS7出來時,很多好看的效果,其實都是對映像的各種處理(比如模糊效果)。影像處理看來以後也是iOS開發的必備技能之一了。而GPUImage,就是能快速處理各種映像效果的利器!
==========================================
好吧,我承認第一次知乎的回答有點驚喜,沒想到這麼多人點贊 ^_^
大部分iOS的第三方庫都是在蘋果的基礎架構之上的產物,所以基礎很重要,有時間看看WWDC的曆年視頻,是不錯的選擇。
最近還是在深入學習ReactiveCocoa,看ReactiveCocoa的源碼。對響應式編程還是有很多期待的,有時間也要重溫函數式編程(比如Haskell),或者把響應式編程的公開課(Coursera.org)看完。編程範式的選擇可以說是相當重要的。未來是多核+並發的時代,函數式編程無疑是更好的選擇。
iOS的UI也很重要,但是如果理解apple的CoreAnimation及CoreGraphics架構,大部分UI基本是沒問題的。當前,iOS7的各種炫酷效果,也需要對映像的處理有一定理解。說到圖形學,OpenCV是一個不錯的選擇,而OpenGL也是另一個不錯的方向(推薦的公開課:Interactive 3D Graphics Course With Three.js & WebGL)。
當然最重要的,還是電腦的各種基礎知識了吧,知其然,知其所以然,才是正道~
首先,學習這類開源項目的主要目的是為了實現產品汪需求,如果不是這個目的,完全可以看Explore GitHub,當前最火的開源項目都在這裡,當然你需要過濾一下語言。
好了,介紹幾個希望能協助到你。
普通的iOS開發項目基本就是網路、本機存放區+一些狂拽炫酷的動畫,想想看是不是?
-------------------- 割 ---------------------
網路
- AFNetworking
- JSONKit
- Reachability
- SVPullToRefresh
(替代 EGOTableViewPullRefresh和 LoadMoreTableFooterView)
網路請求首選AFNetworking,無數個項目證明,只選對的。
解析JSON資料推薦JSONKit,而且優勢相當的明顯,解析速度拉SBJson好幾條長安街。
以前發現過好多次由於SBJson引起的crash,如果還在用SBJson,那請繼續。
Reachability也要用起來,時不時檢查一下網路狀況,然後配合MBProgressHUD告知使用者「親,你丫現在沒網啦,別特麼戳了。」
<del> EGOTableViewPullRefresh是用來下拉重新整理的啦,同時配合</del>
<del>上LoadMoreTableFooterView(載入更多)就齊活了。</del>
使用SVPullToRefresh處理重新整理。
-------------------- 割 ---------------------
本機存放區
- FMDB
- Core Data
- SDWebImage
- TMCache
第一次開發中引入資料庫的時候使用過FMDB,其實蠻強大的,只不過需要寫sql語句,select * from user(從user表中篩選出全部資料)。
後來慢慢的拋棄了它,一點也不物件導向。好吧,其實我是想說還是CoreData好用,至少你不會因為不會寫sql而沒法儲存資料。(接手過的項目竟然還有全部存NSUserDefault的,真是沒脾氣了)
看過一篇對比CoreData和FMDB查詢大資料效能的文章,FMDB贏了,不過還是推薦用CoreData。
至於SDWebImage,同樣也是早期使用過,和SBJson一樣,會有crash,儘管用它來緩衝圖片很方便,但是我們有更好的解決方案,同樣不推薦。
年前的項目中CTO推薦了我們TMCache,tumblr團隊使用的一個快取項目(科普時間:tumblr是國外的輕部落格服務,隨後國內就出現了點點等同期產品),有時間可以去瞭解一下,目前應用的不是特別多,當然啦,對我來說。
-------------------- 割 ---------------------
動畫效果
上面說到的沒網了提示使用者的MBProgressHUD,用起來吧,當然還有很多轉菊花(loading)的開源項目,同樣是我使用最多的。
pop是facebook paper使用的動畫效果,開源了出來,很贊啊,不過應用到項目中的可能性很低。。。太特麼炫酷了。
-------------------- 割 ---------------------
其他
第三方庫管理工具,CocoaPods,有時間可以學習一下。 CocoaPods GitHub
Github repos (iOS) 這是一個收集了很多iOS開源項目的頁面,給作者贊一個。
轉摘自知乎:http://www.zhihu.com/question/22914651
感謝吳輝斌、範文斌兩位開發人員的分享。
iOS上值得推薦的開源項目