This is a simple project to demonstrate the SwiftUI DataButton
struct and a Scanable
protocol.
DataButton($scanable)
provides a button to enable the camera to capture of value of scanable
provided scanable conforms to the
Scanable
protocol.
Sample implementations are provided to make Date
and Double
conform to the Scanable
protocol to scan dates and currency respectively.
The Scanable
protocol requires three functions:
mutating func value(from: String)
to transform the value of the Scanable
to reflect the detected text.
func recognizedDataTypes() -> Set<DataScannerViewController.RecognizedDataType>
to specify the kind of text or barcode that is to be detected and
func scanFormatted() -> String
to provide a textual representation of the detected value for the user.