-
Three20是之前facebook为自己的iOS客户端写的框架。这个框架中提供了很多工具类,比如DebugTools,URL映射什么的可以方便开始开发出新的iOS程序。很多iOS客户端是基于这个框架写的比如淘宝的iPhone客户端。现在Facebook已经重写了客户端,也不在使用这个框架了。现在这个框架也很少有人维护了。
Nimbus是Three20后来的一个主要维护者jverkoey,觉得Three20文档太差,整个工程bug很多,导入麻烦等原因。重新开了一个项目,现在的这个项目文档很全,单元测试也很全,还有例子,导入也很方便。大部分功能,都是和Three20一样的。所以从Three20迁移到Nimbus上是很方便的。
-
被广泛使用的网络请求框架,同时支持Mac和iOS。这套网络框架是对CFNetwork API进行封装的。
-
AFNetWorking是对NSURLConnection, NSOperation进行封装的 。
-
也是从NSURLConnection层对网络请求进行封装的。它还支持直接将JSON映射到对象还做的对coredata的集成。
-
iOS中对ZIP格式进行压缩解压的框架。
-
这种效果:
-
第三方的单元测试框架。比Cocoa自带的强大。
-
对SQLite进行了封装。
-
小巧的JSON框架。根据作者自己的测试结果显示比iOS5开始的官方JSON库和SBJSON不管是编码还是解码都要快很多。
-
比较常用的下拉刷新组件。
-
一些有用的iOS组件合集。包括:
使用的组件多了,手工管理容易比较麻烦。Cocoapods是一个很好的管理依赖的工具。它可以使你的工程看起来结构清晰。
首先需要有Ruby Gem环境 (Mac自带ruby环境的,但是默认的gem源是被墙了的。可以换程淘宝的镜像:http://ruby.taobao.org/.但是淘宝的镜像上面不一定是最新的。如果想要确保最新的版本可以自己套上vpn。用官方的源下载)。
安装:
$ [sudo] gem install cocoapods
$ pod setup
在项目的根目录中建立一个Podfile的文件,里面的内容写
$ edit Podfile
platform :ios
pod 'JSONKit', '~> 1.4'
pod 'Reachability', '~> 3.0.0'
然后打开终端:
$cd <your project dir>
$pod install
终端中提示安装完成后会生成一个XXX.xcworkspace的文件。以后都用这个文件来打开工程。
要找一些库可以直接在cocoapods中搜索:
$pod search tabbar
更多使用方法可以参考cocoapods主页。
前面说了cocoapods会让你的项目结构看起来比较清晰。在生成的workspace中有两个项目,一个是你手动生成的。另一个叫pod它里面放着一些podfile中用到的库。这个pod的库在编译的时候会被编译成一个Pod.a的静态链接库。你自己的项目是依赖这个静态链接库的。
依赖更新方便,只要运行$pod update
那么根据podfile中的规则可以更新的库,就全部更新好了。
在用cocoapods管理依赖之前,我使用git的submodule来管理依赖的。 如果不用cocoapods的话git submodule也是一个很好的办法。这样你的依赖也是在git的树里面的。
最重要的是可以方便得改依赖中得代码。比如你发现了第三方库中得一个bug,或者想要某个功能实现,那么你可以直接改其中的代码。然后把自己fork出官方代码的一个分支,把修改提交带自己的git库中。然后可以在github上向官方代码提交一个pull request。
至于到底选哪个方式来管理依赖就看你喜好啦。总之,手动下载代码包,解压然后添加到自己的工程中的方法是不可取的。