Skip to content

Latest commit

 

History

History
118 lines (67 loc) · 4.76 KB

07.主流开发框架介绍.md

File metadata and controls

118 lines (67 loc) · 4.76 KB

主流开发框架介绍

  • Three20/Nimbus

    Three20是之前facebook为自己的iOS客户端写的框架。这个框架中提供了很多工具类,比如DebugTools,URL映射什么的可以方便开始开发出新的iOS程序。很多iOS客户端是基于这个框架写的比如淘宝的iPhone客户端。现在Facebook已经重写了客户端,也不在使用这个框架了。现在这个框架也很少有人维护了。

    Nimbus是Three20后来的一个主要维护者jverkoey,觉得Three20文档太差,整个工程bug很多,导入麻烦等原因。重新开了一个项目,现在的这个项目文档很全,单元测试也很全,还有例子,导入也很方便。大部分功能,都是和Three20一样的。所以从Three20迁移到Nimbus上是很方便的。

  • ASIHttpRequest

    被广泛使用的网络请求框架,同时支持Mac和iOS。这套网络框架是对CFNetwork API进行封装的。

  • AFNetworking

    AFNetWorking是对NSURLConnection, NSOperation进行封装的 。

  • RestKit

    也是从NSURLConnection层对网络请求进行封装的。它还支持直接将JSON映射到对象还做的对coredata的集成。

  • SSZipArchive

    iOS中对ZIP格式进行压缩解压的框架。

  • MBProgressHUD

    这种效果:

    MBProgressHUD

  • GHUnit

    第三方的单元测试框架。比Cocoa自带的强大。

  • fmdb

    对SQLite进行了封装。

  • JSONKit

    小巧的JSON框架。根据作者自己的测试结果显示比iOS5开始的官方JSON库和SBJSON不管是编码还是解码都要快很多。

  • EGOTableViewPullRefresh

    比较常用的下拉刷新组件。

  • SSToolKit

    一些有用的iOS组件合集。包括:

用Cocoapods管理依赖

使用的组件多了,手工管理容易比较麻烦。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的文件。以后都用这个文件来打开工程。

screenshot

要找一些库可以直接在cocoapods中搜索:

$pod search tabbar

更多使用方法可以参考cocoapods主页

cocoapods的优点

前面说了cocoapods会让你的项目结构看起来比较清晰。在生成的workspace中有两个项目,一个是你手动生成的。另一个叫pod它里面放着一些podfile中用到的库。这个pod的库在编译的时候会被编译成一个Pod.a的静态链接库。你自己的项目是依赖这个静态链接库的。

依赖更新方便,只要运行$pod update那么根据podfile中的规则可以更新的库,就全部更新好了。

cocoapods的缺点

在用cocoapods管理依赖之前,我使用git的submodule来管理依赖的。 如果不用cocoapods的话git submodule也是一个很好的办法。这样你的依赖也是在git的树里面的。

最重要的是可以方便得改依赖中得代码。比如你发现了第三方库中得一个bug,或者想要某个功能实现,那么你可以直接改其中的代码。然后把自己fork出官方代码的一个分支,把修改提交带自己的git库中。然后可以在github上向官方代码提交一个pull request。

至于到底选哪个方式来管理依赖就看你喜好啦。总之,手动下载代码包,解压然后添加到自己的工程中的方法是不可取的。