Swift QR코드 라이브러리
Swift로 QR코드 생성
Swift는 CoreImage의 CIQRCodeGenerator 필터를 통해 내장 QR코드 생성 기능을 제공합니다. iOS 및 macOS 앱에 서드파티 의존성이 필요하지 않습니다.
설정
CoreImage는 iOS 및 macOS SDK에 포함되어 있습니다. 추가 설치가 필요하지 않습니다.
Built-in
import CoreImage // No installation needed — included in iOS & macOS SDKCoreImage로 QR코드 생성
Swift 내장 CIQRCodeGenerator를 사용한 코드 예제.
Basic QR Code with CoreImage
import CoreImage
import UIKit
func generateQRCode(from string: String) -> UIImage? {
let data = string.data(using: .ascii)
guard let filter = CIFilter(name: "CIQRCodeGenerator") else { return nil }
filter.setValue(data, forKey: "inputMessage")
filter.setValue("Q", forKey: "inputCorrectionLevel")
guard let ciImage = filter.outputImage else { return nil }
// Scale up for crisp rendering
let transform = CGAffineTransform(scaleX: 10, y: 10)
let scaledImage = ciImage.transformed(by: transform)
return UIImage(ciImage: scaledImage)
}
let qrImage = generateQRCode(from: "https://qrcode.fun")Colored QR Code
func generateColoredQRCode(from string: String,
foreground: UIColor = .black,
background: UIColor = .white) -> UIImage? {
let data = string.data(using: .ascii)
guard let qrFilter = CIFilter(name: "CIQRCodeGenerator"),
let colorFilter = CIFilter(name: "CIFalseColor") else { return nil }
qrFilter.setValue(data, forKey: "inputMessage")
qrFilter.setValue("H", forKey: "inputCorrectionLevel")
colorFilter.setValue(qrFilter.outputImage, forKey: "inputImage")
colorFilter.setValue(CIColor(color: foreground), forKey: "inputColor0")
colorFilter.setValue(CIColor(color: background), forKey: "inputColor1")
guard let output = colorFilter.outputImage else { return nil }
let transform = CGAffineTransform(scaleX: 10, y: 10)
return UIImage(ciImage: output.transformed(by: transform))
}QRCode.fun API
Swift에서 API로 QR코드 생성
URLSession을 사용하여 Swift에서 QRCode.fun API를 호출하여 커스텀 색상과 로고가 포함된 스타일 QR코드를 생성하세요.
Swift API 통합
import Foundation
func generateQRCodeViaAPI(data: String) async throws -> Data {
let url = URL(string: "https://qrcode.fun/api/generate-qr-styled")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let payload: [String: Any] = [
"data": data,
"width": 300,
"height": 300,
"type": "png",
"margin": 10,
"dotsOptions": ["color": "#1A2B3C", "type": "rounded"],
"cornersSquareOptions": ["color": "#8564C3", "type": "extra-rounded"],
"backgroundOptions": ["color": "#FFFFFF"]
]
request.httpBody = try JSONSerialization.data(withJSONObject: payload)
let (responseData, _) = try await URLSession.shared.data(for: request)
return responseData // Parse JSON to get base64 image
}
// Usage
let imageData = try await generateQRCodeViaAPI(data: "https://qrcode.fun")QR코드 라이브 미리보기
지금 바로 Swift로 QR코드를 생성해 보세요.
QR 미리보기
CoreImage vs API
CoreImage 직접 사용과 QRCode.fun API 비교.
| 기능 | CoreImage | QRCode.fun API |
|---|---|---|
| 설정 복잡도 | 내장, 설치 불필요 | URLSession을 통한 HTTP 요청 |
| 커스터마이징 | 기본 (CIFilter로 색상 적용) | 전체 스타일링: 색상, 모양, 로고 |
| 오프라인 지원 | 예 | 인터넷 필요 |
| 유지보수 | iOS/macOS SDK의 일부 | 항상 최신 상태 |
| 출력 형식 | CIImage → UIImage/NSImage | PNG, SVG |
Swift QR코드 사용 사례
Swift 애플리케이션에서 QR코드의 일반적인 시나리오.
iOS 앱
iPhone과 iPad 앱에서 링크 공유, 연락처, Wi-Fi 자격 증명, 앱 딥 링크를 위한 QR코드를 생성합니다.
SwiftUI 뷰
커스텀 스타일링과 애니메이션이 포함된 재사용 가능한 SwiftUI 컴포넌트를 만들어 QR코드를 렌더링합니다.
macOS 앱
명함, 라벨, 문서 관리를 위한 QR코드를 생성하는 macOS 도구를 구축합니다.
Apple Watch
Apple Watch에서 탑승권, 티켓, 포인트 카드에 빠르게 접근하기 위한 QR코드를 표시합니다.
자주 묻는 질문
Swift로 QR코드 생성에 관한 일반적인 질문.
아니요. CoreImage의 CIQRCodeGenerator 필터가 iOS와 macOS에 내장되어 있습니다. 의존성 없이 기본 QR코드를 생성할 수 있습니다.