swift:QRCodeReaderアプリを作ってみました
概要
yannickl/QRCodeReader.swiftライブラリを使ってQRCodeReaderアプリを作ってみました。
今回使ったライブラリは、QRコードを読み取った後ハングしているようでした。何か処理を追加する必要があるかもしれません。今後使うかどうかは、もう少し使ってから判断したいと思います。
インストール
Carthageというライブラリ管理ツールを使いました。 Swift - Carthageを使ってビルド時間を短縮しよう - Qiitaを参考に行いました。
プラグインモジュール作成
Carthageファイルを作成します。
$ cat Carthage github "yannickl/QRCodeReader.swift" >= 5.2.0
carthage updateを実行して、Githubからソースをダウンロードしてモジュールのビルドを行います。
$ carthage update *** Cloning QRCodeReader.swift *** Checking out QRCodeReader.swift at "5.2.1" *** xcodebuild output can be found in /var/folders/bm/gfw2hl4d3zv5f29zchj4p_z40000gn/T/carthage-xcodebuild.8s8ORm.log *** Building scheme "QRCodeReader" in QRCodeReader.swift.xcodeproj 2015-12-25 06:15:18.916 xcodebuild[884:18782] [MT] PluginLoading: Required plug-in compatibility UUID F41BD31E-2683-44B8-AE7F-5F09E919790E for plug-in at path '~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/VVDocumenter-Xcode.xcplugin' not present in DVTPlugInCompatibilityUUIDs ...
プラグインモジュールをプロジェクトに追加
Generalタブから、carthage updateコマンドでビルドしたモジュールをEmbedします。
Build Phasesタブでから、Runscriptを追加します。carthageはHomebrewでインストールしました。違う方法でインストールした場合には、carthageのパスを調べて入力してください。
アプリ作成
QRCodeReaderライブラリを使ってアプリを作ります。QRCodeReaderライブラリを起動するボタンを追加するだけです。
ボタンを追加します
StoryBoardを使ってUIButtonを追加します。ラベル名をscanにします。
ボタンをタップしたときのアクションを追加します。
ViewControllerに以下の処理を追加します。
import UIKit import AVFoundation import QRCodeReader class ViewController: UIViewController { // QRコード読取ライブラリのView Controllerのインスタンスを作成します // lazyキーワード:必要になった時にインスタンスが作成されます。 lazy var reader = QRCodeReaderViewController(metadataObjectTypes: [AVMetadataObjectTypeQRCode]) @IBAction func scanAction(sender: UIButton) { // reader.delegate = self // closure pattern reader.completionBlock = { (result: String?) in print(result) } // Presents the reader as modal form sheet reader.modalPresentationStyle = .FormSheet presentViewController(reader, animated: true, completion: nil) }
アプリ実行
QRコードをキャプチャするとConsoleにその内容が出力されます。確かにデータは取得出来ているようです。
Optional("apply-est@est.seamall.jp")