Loading...
Loading...
Design, implement, and review Swift APIs and Apple-platform code. Use when working on .swift files, Swift types, Foundation or AVFoundation APIs, DispatchQueue, async/await, Task, actors, MainActor, thread-affine state, or Swift-backed React Native Nitro Module implementations.
npx skill4agent add margelo/react-native-skills swiftbuild-nitro-modulesenumbarcodebarcodeTypeScannedBarcodeif let// Avoid: the valid combinations are implicit and easy to misuse.
struct ScannedData {
let position: Point
let text: String?
let barcode: String?
let barcodeType: BarcodeType?
let face: Rect?
}
// Prefer: each state exposes the fields that are valid for that state.
protocol ScannedData {
var position: Point { get }
}
struct ScannedText: ScannedData {
let position: Point
let text: String
}
struct ScannedBarcode: ScannedData {
let position: Point
let barcode: String
let barcodeType: BarcodeType
}
struct ScannedFace: ScannedData {
let position: Point
let face: Rect
}TaskDispatchQueueasyncawaitTaskDispatchQueueDispatchQueue.mainTaskDispatchQueueDispatchQueue.asyncAfterTask.sleepThread.sleepTask { @MainActor in ... }asyncawaitDispatchQueue.main.asyncDispatchQueue.main.async@MainActorPromise.parallel(.main)Task { @MainActor }DispatchQueue.main.asyncMainActor.assumeIsolatedThread.isMainThread.syncDispatchQueue.syncDispatchQueue.main.syncDispatchQueue.asyncPromiseNSLockMainActorArrayDictionaryPromise<T>Promise.parallel(queue)// Avoid: synchronous queue hop hidden in a getter.
var status: SessionStatus {
queue.sync { session.status }
}
// Prefer: make the async boundary explicit.
func getStatus() throws -> Promise<SessionStatus> {
return Promise.parallel(queue) {
return self.session.status
}
}finalStringArrayDictionaryguardHybridDataScanner.swiftHybridDataScannerUIViewControllerExtensions/UIViewController+topPresentedViewController.swiftExtensions/CGPoint+Point.swiftExtensions/Barcode+toScannedCode.swiftinternalpackageHybrid*Type+operation.swiftHybrid*Bundle.main.object(forInfoDictionaryKey:)AVCaptureDevice+CameraAuthorization.swiftBundle+CameraUsageDescription.swiftHybrid*Factory.swiftNative*OptionsHybrid*DataScannerViewControllerUtils.swifttargetFormats.flatMap { $0.toVNBarcodeFormat() }flatMap { format in format.toVNBarcodeFormat() }$0mapflatMapreduceSet(...)IntStringDoubleAnyCGPointCGRectBarcodeFormat.from(format:)BarcodeFormat(nativeFormat:)Int.toBarcodeFormat()ArrayCollection[SomeDomainType]mapPromise.parallel(queue)Promise.asyncasyncawaitPromise<T>Promise.parallelPromise.asyncPromise.resolvedPromise.rejectedPromise.async.sync