Flutter walkthrough
Introduction
This page acts as dedicated support for integrating the Captur SDK into a Flutter application.
Many of the principles in the iOS/Android walkthrough will supplement the walkthrough here.
Native Camera Implementation
The SDK can use both the default camera and 'Ultrawide' camera on supported devices.
Using the reference implementation captur-micromobility-demo we can highlight how to call both cameras for Android and iOS.
iOS
The below example provides a basic implementation of the two camera modes.
import CapturMicromobilityEvents
// Default camera flow
struct VerificationScreen: View {
@Environment(\.presentationMode) var presentationMode
@EnvironmentObject var verificationViewModel: VerificationViewModel
@State var isFlashOn: Bool = false
@State var isZoomedIn: Bool = false
var body: some View {
ZStack {
CapturCamera(
capturCameraHandler: verificationViewModel.manager,
isFlashOn: $isFlashOn,
isZoomedIn: $isZoomedIn
)
}
}
}
// Ultrawide camera flow
struct VerificationScreen: View {
@Environment(\.presentationMode) var presentationMode
@EnvironmentObject var verificationViewModel: VerificationViewModel
@State var isFlashOn: Bool = false
var body: some View {
ZStack {
CapturUltraWideCamera(
capturCameraHandler: verificationViewModel.manager,
isFlashOn: $isFlashOn
)
}
}
}
Android
The implementation for Android is similar to iOS but with a new parameter 'ultraWideState'.
import com.captur.capturmicromobility.camera.CapturCameraPreview
import com.captur.capturmicromobility.camera.CapturUltraWideCamera
// Default camera preview
verificationViewModel.capturCameraManager.let {
CapturCameraPreview(
system = it,
flashLightOn = isFlashOn, // Bool: Toggle to enable/disable flash
zoomState = isZoomedIn, // Bool: Toggle to enable/disable zoom
)
}
// Ultrawide camera preview
verificationViewModel.capturCameraManager.let {
CapturUltraWideCamera(
system = it,
flashLightOn = isFlashOn, // Bool: Toggle to enable/disable flash
ultraWideState = isUltraWide // Bool: Enable ultrawide camera on supported devices
)
}
Updated 24 days ago