【编者按】本文作者为 Matthew Maher,主要手把手地介绍如何用 Swift 构建简单的条形码检测器。文章系 OneAPM 工程师编译整理。
超市收银员对货物进行扫码,机场内录入行李或检查乘客,或是在大型零售商的存货管理等活动中,条形码扫码器都是一个简单而实用的工具。事实上,条形码扫码器还帮助消费者实现了智能购物,货物分类等用途。这次,我们将为iPhone开发一个扫码器。
我们很幸运,苹果公司让条形码扫描过程的实现变得很简单。我们将会深入AV Foundation框架开发一个简单的能够扫描CD条形码的app,然后获得专辑的关键信息,最后在app的界面中打印出来。阅读条形码很酷炫也很重要,我们会根据读到的条形码采取进一步的操作。
不用多说,能扫码的设备必须要有一个摄像头。从这里开始,让我们拿一个配备有摄像头的iOS设备开始干活吧!
简介 CDbarcodes
我们今天开发的这个app名叫CDBarcodes——通俗易懂,即条形码扫描对象是CD。当我们的设备检测到一个条形码时,会拾取这个货码然后发送到Discogs的数据库,获得其专辑名称、艺人姓名以及发布年份。Discogs的音乐数据库十分强大,因此我们很有可能找到一些实用信息。
下载CDBarcodes的初始项目。
除了一个不错的数据库,Discogs还有一个实用的API来帮助查询。我们涉及的仅仅是Discogs提供给开发者的一小部分功能,不过这已经足够使我们的app跑起来了。
Discogs
进入Discogs网站。首先我们必须注册一个Discogs账号并登录。在这之后,下拉到页面最底端。在页尾最左栏点击API。
在Discogs的API界面左侧的数据库区域点击搜索(Search)。
这是我们查询的端点。我们将会从“title”和“year”这两个参数上获得专辑信息。
现在,我们将这个URL记录在CDBarcodes中以便后面的查询。在Constants.swift
中添加DISCOGS_AUTH_URL
并赋值https://api.discogs.com/database/search?q=
作为常量。
let DISCOGS_KEY = "your-discogs-key"
现在我们能够在整个app里面通过DISCOGS_AUTH_URL
调用URL。
回到Discogs的API页面,选择创建一个新的app,并获得一些认证信息。在页面顶端的导航栏中,找到“Create an App”,点击该按钮。
在应用名称栏里输入“CDBarcodes Your Name”,或是其他合适的名字。描述可以使用下面的文字:
“这是一个iOS应用,旨在在读取CD的条形码后显示专辑信息。”
然后,点击“Create Application”(即创建应用)按钮。
在结束页面,会看到允许我们使用条形码的认证信息。
复制“Consumer Key”(用户秘钥)到Constants.swift
的DISCOGS_KEY
里面。
有了这个URL,我们可以很方便的在整个CDBarcodes应用里使用这些参数。
CocoaPods
我们使用功能强大的依赖管理器(dependency manager)CocoaPods来与Discogs的API进行交互。有关CocoaPods的安装和其他信息,可以参照CocoaPods官网。
经由CocoaPods,在网络端我们将会使用Alamofire,并借助SwiftyJSON来处理Discogs返回的JSON。
现在开始在CDBarcodes实战吧!
安装好CocoaPods,打开终端界面ÿ