To use QuickPose in a SwiftUI application, use QuickPoseCameraView to handle the camera feed and QuickPoseOverlayView to display the processed results.
Initialize QuickPose with your registered SDK key. Remember to call .start() in .onAppear and .stop() in .onDisappear to manage the lifecycle.
import SwiftUI
import QuickPoseCore
import QuickPoseSwiftUI
struct QuickPoseBasicView: View {
private var quickPose = QuickPose(sdkKey: "YOUR SDK KEY HERE") // register for your free key at https://dev.quickpose.ai
@State private var overlayImage: UIImage?
var body: some View {
GeometryReader { geometry in
ZStack(alignment: .top) {
QuickPoseCameraView(useFrontCamera: true, delegate: quickPose)
QuickPoseOverlayView(overlayImage: $overlayImage)
}
.frame(width: geometry.size.width)
.edgesIgnoringSafeArea(.all)
.onAppear {
quickPose.start(features: [.overlay(.userLeftArm)], onFrame: { status, image, features, feedback, landmarks in
if case .success(_) = status {
overlayImage = image
}
})
}.onDisappear {
quickPose.stop()
}
}
}
}