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)。
固然最重要的,仍是计算机的各类基础知识了吧,知其然,知其因此然,才是正道~html
首先,学习这类开源项目的主要目的是为了实现产品汪需求,若是不是这个目的,彻底能够看Explore GitHub,当前最火的开源项目都在这里,固然你须要过滤一下语言。
好了,介绍几个但愿能帮助到你。
普通的iOS开发项目基本就是网络、本地存储+一些狂拽炫酷的动画,想一想看是否是?
-------------------- 割 ---------------------
网络react
(替代 EGOTableViewPullRefresh和 LoadMoreTableFooterView)
网络请求首选AFNetworking,无数个项目证实,只选对的。
解析JSON数据推荐JSONKit,并且优点至关的明显,解析速度拉SBJson好几条长安街。
之前发现过好屡次因为SBJson引发的crash,若是还在用SBJson,那请继续。
Reachability也要用起来,时不时检查一下网络情况,而后配合MBProgressHUD告知用户「亲,你丫如今没网啦,别特么戳了。」
<del> EGOTableViewPullRefresh是用来下拉刷新的啦,同时配合</del>
<del>上LoadMoreTableFooterView(加载更多)就齐活了。</del>
使用SVPullToRefresh处理刷新。
-------------------- 割 ---------------------
本地存储ios
第一次开发中引入数据库的时候使用过FMDB,其实蛮强大的,只不过须要写sql语句,select * from user(从user表中筛选出所有数据)。
后来慢慢的抛弃了它,一点也不面向对象。好吧,其实我是想说仍是CoreData好用,至少你不会由于不会写sql而无法保存数据。(接手过的项目居然还有所有存NSUserDefault的,真是没脾气了)
看过一篇对比CoreData和FMDB查询大数据性能的文章,FMDB赢了,不过仍是推荐用CoreData。
至于SDWebImage,一样也是早期使用过,和SBJson同样,会有crash,尽管用它来缓存图片很方便,可是咱们有更好的解决方案,一样不推荐。
年前的项目中CTO推荐了咱们TMCache,tumblr团队使用的一个缓存项目(科普时间:tumblr是国外的轻博客服务,随后国内就出现了点点等同期产品),有时间能够去了解一下,目前应用的不是特别多,固然啦,对我来讲。
-------------------- 割 ---------------------
动画效果git
上面说到的没网了提示用户的MBProgressHUD,用起来吧,固然还有不少转菊花(loading)的开源项目,一样是我使用最多的。
pop是facebook paper使用的动画效果,开源了出来,很赞啊,不过应用到项目中的可能性很低。。。太特么炫酷了。
-------------------- 割 ---------------------
其余
第三方库管理工具,CocoaPods,有时间能够学习一下。 CocoaPods GitHub
Github repos (iOS) 这是一个收集了不少iOS开源项目的页面,给做者赞一个。github
转摘自知乎:http://www.zhihu.com/question/22914651sql
感谢吴辉斌、范文斌两位开发者的分享。数据库