Skip to content

Swift SDK

Revieve — a thin, typed client for analyzeImage. Source lives in sdks/swift/.

In Package.swift:

.package(url: "https://github.com/revieve/revieve-sdk-swift", from: "0.1.0")

In Xcode: File → Add Package Dependencies… and paste the same URL.

Targets iOS 15+, macOS 12+, visionOS 1+.

import Revieve
let revieve = try SkinAnalysisClient(partnerId: "jmlv6b2qtS")
let result = try await revieve.analyzeImage(
.init(
image: imageData,
components: [.wrinkles, .redness, .skin_age],
gender: .unknown,
skintone: 0
)
)
print(result.message, result.results.count)
do {
let result = try await revieve.analyzeImage(.init(image: imageData))
render(result)
} catch let error as RevieveError {
if case .analysis(let message, _) = error {
showToast(message)
log(error.firstErrorIdx)
} else {
throw error
}
}

Pass a custom URLSession for mocking. Combined with URLProtocol-based fakes this gives full control over the request/response cycle.

let mockConfig = URLSessionConfiguration.ephemeral
mockConfig.protocolClasses = [MockURLProtocol.self]
let session = URLSession(configuration: mockConfig)
let revieve = try SkinAnalysisClient(
partnerId: "test",
baseURL: URL(string: "https://example.invalid/api/3/")!,
session: session
)