iOS开发004 怎样在Swift中使用CocoaPods

012.jpg

本文由yake_099(博客)翻译自raywenderlich,作者:Joshua Greene

原文:How to Use CocoaPods with Swift


最近关于CocoaPods有很多的议论。你可能从别的开发者那里听到过,或者在Github的目录中看到过。如果你之前从来没有用过,你可能会问,"CocoaPods到底是什么?"

它不是神秘的亚马逊区域的部落人用手捡出来的生可可的豆荚,肯定不是!让CocoaPods website来回答可能是最好的:

CocoaPods是Cocoa项目的依赖管理工具。它有上千个能帮你优雅地扩充自己项目的库。

优雅地扩展项目听起来很令人好奇,但是什么是依赖管理工具呢?你为什么会需要它呢?

无论你正在创建一个什么样的app,你都有可能会用到别的开发者的代码,无论是以框架的形式还是库的形式。你可能很熟悉UIKit和Foundation,这两个都是苹果提供的框架。

在这个教程中,你将会:

  • 了解为什么要和第三方库做朋友

  • 安装CocoaPods

  • 在一个starter项目中使用CocoaPods

  • 安装使用并修改依赖关系文件来提高用户体验

  • 了解语义化版本控制

为什么库是你的朋友

尽管你并不一定非要使用第三方库和框架,但是它们确实能节省你很多的时间,可以让你集中注意力在优化自己的app上,而不是敲无数行的你本不需要写的代码。

你可以不通过依赖管理工具来使用第三方库和框架,我们网站提供了关于这种使用方式的实践性的教程。例如,这是我们的Alamofire教程SwiftyJSON教程

不使用依赖管理工具,你可以简单地通过手动方式将每个库添加到你的工程里面。然而,这个方法有几个缺点:

  • 更新一个库到新的版本可能会很麻烦,尤其是一个库依赖于另外一个库的情况,那么就必须将这几个库全部更新。

  • 在项目中添加三方库可能会需要在代码中做一些本地的修改,这使得之后更新版本更加困难。

  • 判断你的app中用到的库的当前版本也是一件困难的事,尤其是当你没有提前记录下来的时候。

  • 如果没有一个中央位置来查看所有可用库的话,查找新库也是一件很困难的事。

CocoaPods帮你克服以上问题甚至更多别的问题。它抓取库代码,解决库之间的依赖性问题,帮你查找并发现新的库,甚至以最简便的方式为你的项目配置正确的环境。

前提

这篇教程要求你熟悉基础的iOS和Swift开发。如果你完全不了解iOS或者Swift,那么在看这篇教程之前,你最好看下我们网站上一些其他文章或者视频教程,然后再回来看这篇。或者是深入来学习iOS Apprentice

这篇教程也包含了使用了Core Graphics的一些类。了解Core Graphics是一件有利的事,但不是必须的。如果你想学习更多关于Core Graphics的知识,请阅读我们的Modern Core Graphics With Swift系列。

这篇教程要求Xcode 6.3和Swift 1.2.

开始

首先你需要安装CocoaPods。幸运的是,CocoaPods被建立在Ruby上,而最近的Mac OS X版本带有Ruby。这自从OS X 10.7之后就实现了。

打开终端并且输入以下命令行:

1
sudo gem install cocoapods

当要求的时候输入你的密码。终端的输出结果看起来应该是这样的:

011.png

你必须使用sudo来安装CocoaPods,但是安装后就无需再使用了。

最后,在终端输入以下命令行来完成设置:

1
pod setup --verbose

这个过程可能需要几分钟的时间,因为它将CocoaPods Master Specs repository克隆到了你电脑上的~/.cocoapods/目录下。

verbose选项记录下了进程运行时的进展,能让你看到进程而不是一个僵在那里的屏幕。

太好了,现在你开始设置来使用CocoaPods了。

012.png

代码时间!

为客户Ice Cream Shop, Inc.开发一款App

你的首要客户是Ice Cream Shop, Inc。他们的冰淇淋太受欢迎了以至于不能在柜台接收用户订单了。他们雇佣你来做一个漂亮的iOS应用,那样就能让用户在他们的iPhone上下订单了。

你开始开发app了,并且进展得还不错。在这里下载开始程序

打开IceCreamShop.xcodeproj,然后运行,你会看到一个非常好吃的香草冰淇淋。

icecreamshop_starter-282x500.png

用户应该能从这个屏幕中选择冰淇淋的口味,但是还不太可能,因为你还没有完成这个功能。

从Views/Storyboards&Nibs中打开Main.storyboard来看app的布局。现在我们来快速整体地看一下这个app的核心,"选择你的口味"那一屏:

storyboard_annotated-427x500.png

  • PickFlavorViewController处理用户交互,例如,用户选择了冰淇淋的一种口味。

  • PickFlavorDataSource是collection view所展示的不同冰淇淋口味的数据源。

  • IceCreamView是一个自定义的view,可以用来展示冰淇淋圆锥形的蛋卷,并且它以Flavor model来支撑。

  • ScoopCell是一个自定义的collectionviewcell,它包含了一个ScoopView,这个view也是以Flavor model来支撑的。

由于每个冰淇淋店一般都会有一些招牌口味,每个也有他们本地的风味。因此,Flavor的实例中包含的数据需要通过web service来提供。

然而,这还没有回答问题,"为什么用户不能选择一个冰淇淋口味?"

在Controllers这个分组下面,打开PickFlavorViewController.swift,你会看到一个备用的方法:

1
2
private func loadFlavors() {
   // Implement this}

哈哈,这里面没有口味,你需要实现它。

你可以使用NSURLConnection或NSURLSession并用你自己写的网络类,这儿还有一个更简单的办法:Alamofire,一个开源的网络库。

你可能想就这么把它下载下来并将文件拖拽到工程里面。然而,那是很麻烦的方法。CocoaPods提供了更加优雅和灵活的解决方法。

所以,闲话少说...

lets_do_this.jpg

安装你的第一个依赖管理工具

首先你要关掉Xcode

是的,你说的对,该创建Podfile了,在那儿你要定义工程的依赖管理。

打开终端,用 cd 命令进入包含你IceCreamShop项目的那个目录下:

1
cd ~/Path/To/Folder/Containing/IceCreamShop

接下来,输入下面的命令:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值