simple_native 0.1.3 copy "simple_native: ^0.1.3" to clipboard
simple_native: ^0.1.3 copied to clipboard

A comprehensive Flutter plugin for accessing native device features including Camera (Photos, QR & Barcode), Location, Device Information, and Biometric Authentication.

0.1.3 #

  • AI & Document Scanning (Android):
    • Added classifyModelPath parameter to SimpleCameraView to support two-stage AI workflows (e.g., Corner Detection + Classification).
    • Implemented document corner validation, perspective warping, and second-stage classification within the native Android camera pipeline.
    • Added support for returning warped_image_bytes in the detection payload for valid document scans.

0.1.2 #

  • AI Standalone Execution (SimpleAI):
    • Tách luồng chạy AI ra độc lập (Standalone inference API), cho phép sử dụng loadModel, runModelOnImage, và runModelOnBytes để nhận diện đối tượng hoặc góc ảnh mà không cần khởi tạo camera.
  • Fix Duplicate Symbols (iOS):
    • Di chuyển Liveness Detection (nhận diện nháy mắt, mỉm cười, quay đầu) trên iOS từ Google MediaPipe sang Google ML Kit Face Detection để giải quyết triệt để lỗi xung đột thư viện duplicate symbols (TFLiteC & GTMSessionFetcher).
    • Giảm dung lượng build iOS do loại bỏ thư viện MediaPipe.
    • Đảm bảo tính nhất quán thuật toán Liveness giữa hai nền tảng Android và iOS.

0.1.1 #

  • TFLite & Object Detection:
    • Added support for YOLOv8 TFLite model output format (e.g. [1, 12, 8400]).
    • Added processIntervalMs parameter to SimpleCameraView to throttle AI frame processing frequency, reducing CPU load.
    • Improved object cropping with expanded bounding box margins (8% horizontal, 5% vertical) to ensure full object visibility.

0.1.0 #

  • AI Liveness (Android & iOS):
    • Implemented AI Liveness using Google MediaPipe Tasks Vision.
    • Added LivenessThresholdConfig for detailed configuration in Flutter SimpleCameraView.
    • Split head rotation thresholds into independent directional configs (yawThreshold and pitchThreshold for horizontal/vertical).
    • Improved head up/down detection logic.

0.0.22 #

  • TFLite & Object Detection (Android & iOS):
    • Added TFLite & Google ML Kit Object Detection support with custom TFLite model integration (customModelPath).
    • Added objectDetection camera mode to SimpleCameraType and MlKitObjectCategory filtering enum.
    • Added loadModel, startModelInference, stopModelInference, pauseScanning, and onModelResult to SimpleCameraController.
    • Optimized Android camera frame pipeline with YUV420 to NV21 byte buffer reuse and FPS throttling for memory efficiency.
    • Ensured strict camera lifecycle thread safety on Android (openCamera on main looper).

0.0.20 #

  • Camera (QR & Barcode Scanning) - Android:
    • Fixed camera failure to open (infinite loading spinner) when repeatedly opening/closing the scanning screen by implementing a global camera instance manager and queue (activeInstance and pendingOpenRequests).
    • Fixed silent asynchronous errors by notifying the Flutter UI via MethodChannel in StateCallback.onError().
    • Resolved potential NullPointerExceptions in updatePreview(), createCameraPreview(), and setupImageReader() by adding strict null checks for cameraCaptureSessions and imageDimension.

0.0.19 #

  • Camera (QR & Barcode Scanning) - Android & iOS:
    • Android: Integrated ActivityLifecycleCallbacks to automatically pause and resume the camera in sync with the Activity state, preventing resource leaks.
    • Android: Implemented safe camera switching by waiting for the previous camera's onClosed callback before opening the new camera, eliminating CAMERA_IN_USE errors.
    • Android: Highly optimized screenshot capturing (getBitmap) by moving it to the main thread and triggering it only when a barcode/QR code is successfully detected, saving significant CPU/RAM cycles.
    • Android: Optimized image stream data copying to avoid JNI pixel-by-pixel reads, improving frame pipeline performance.
    • iOS: Prevented main thread UI freezing during camera disposal by running stopRunning() asynchronously in a background thread.
    • iOS: Resolved potential hanging on iOS Simulator during takePicture calls by immediately returning a FlutterError when the camera output is unavailable.
    • Android & iOS: Marked camera resources volatile and added safety guards and null checks to prevent multithreading race conditions.

0.0.18 #

  • Camera (QR & Barcode Scanning):
    • Fixed camera device state, closing, and opening sequence order on Android to prevent potential crashes and resource leaks during state transitions.

0.0.17 #

  • Camera (QR & Barcode Scanning):
    • Added scanWindow parameter to SimpleCameraView to restrict barcode/QR code scanning to a specific rectangular region of interest (ROI) on both Android and iOS.
    • Added setScanWindow method to SimpleCameraController to dynamically update the scan window at runtime.
    • Integrated layout builder in the example app to demonstrate scanning constraint within a yellow bordered box.

0.0.16 #

  • Camera (QR & Barcode Scanning):
    • Added support for simultaneous multi-code detection on both Android and iOS, returning a list of bounding box coordinates mapped to logical screen dimensions.
    • Added support for freezeOnResult parameter to pause/freeze camera preview upon detection.
    • Resolved frame-pipeline latency and coordinate shift issues on freeze-frame by capturing native snapshots (via .getBitmap() on Android and preview layer contexts on iOS) and rendering them as static overlays in Flutter.
    • Optimized Android camera preview scanning thread model (ImageReader background worker) to prevent lag.
    • Added native focus checks (Android's CONTROL_AF_STATE and iOS's isAdjustingFocus) to ensure the camera only freezes on sharp, clear frames.
    • Fixed iOS metadata delegate timeout bug to ensure same-QR codes are scanned correctly when pointing away and back.

0.0.15 #

  • Camera:
    • Synchronized camera loading behavior on iOS with Android by implementing the onCameraReady event.
    • The iOS camera view now correctly detects when the first frame is rendered to dismiss the loadingWidget seamlessly, ensuring a smooth UX without UI flickering.

0.0.14 #

  • Plugin Info:
    • Updated package description in pubspec.yaml to explicitly mention support for Barcode scanning and Biometric Authentication.
  • Camera:
    • Upgraded QR code scanning to support general barcode scanning on both Android and iOS simultaneously. The SimpleCameraResultType now includes a barcode type to distinguish between QR codes and regular barcodes.

0.0.13 #

  • Android:
    • Upgraded com.google.mlkit:barcode-scanning to version 18.3.0 to support Android 16 KB page sizes.
    • Fixed an issue where Face ID (weak biometric) might not prompt on certain Android devices by correctly setting AllowedAuthenticators.

0.0.12 #

  • Biometrics:
    • Breaking Change: Refactored getAvailableBiometric to return SimpleBiometricType directly instead of a String, and removed notEnrolled. It now focuses purely on hardware capabilities (face, fingerprint, iris, notSupported).
    • Added support for iris biometric type on Android.
    • Breaking Change: Refactored authenticate states. notEnrolled is merged into notSupported. The method can now be safely called multiple times sequentially without getting stuck on both Android and iOS.
    • Fixed a bug on Android where authenticate required FragmentActivity on all versions. It now supports the default FlutterActivity.
    • Added a new method openBiometricSettings() to deep-link users directly to the system's biometric enrollment/security settings page on both Android and iOS.
  • Documentation:
    • Updated README.md to reflect the new biometric flow and openBiometricSettings usage.

0.0.11 #

  • Camera:
    • Fixed takePicture returning null on iOS by properly handling async result callback.
    • Improved iOS camera stability: added isSwitching and isDisposed flags to prevent race conditions and crashes during rapid interactions.
    • Implemented explicit stopCamera method on iOS for better resource cleanup.
    • Ensured takePicture returns a valid file path on both Android and iOS.

0.0.10 #

  • SimpleDeviceInfo:
    • Core: Added deviceId to SimpleDeviceInfo.
    • Native: Implemented persistent ID across reinstalls via ANDROID_ID (Android) and Keychain (iOS).

0.0.9 #

  • Location:
    • Fixed location address retrieval.

0.0.8 #

  • Camera:
    • Added cameraPosition parameter to SimpleCameraView to allow selecting the initial camera (front/back).
    • Fixed IllegalStateException: CameraDevice was already closed crash on Android when switching cameras rapidly.
    • Fixed updateAcquireFence: Did not find frame error on Android by properly managing Surface lifecycle.
    • Improved camera resource management and cleanup on both Android and iOS.
    • Added support for mirroring front camera preview on iOS.

0.0.7 #

  • Metadata:
    • Added topics to pubspec.yaml to improve package discoverability on pub.dev.
    • Keywords include: camera, location, device-info, native, plugin.

0.0.5 #

  • Refactor:
    • Merged SimpleCameraConverter functionality into SimpleCameraImage.
    • Added toImage() method to SimpleCameraImage for easy conversion to BMP format.
    • Removed SimpleCameraConverter class.
  • Documentation:
    • Updated README to reflect the API changes and new version.
    • Updated package description in pubspec.yaml to be more professional.

0.0.4 #

  • Camera:
    • Made onResult callback optional in SimpleCameraView.
    • Fixed camera preview orientation issues on iOS.
    • Locked camera view to portrait orientation on both Android and iOS to prevent unwanted rotation.
    • Fixed image stream rotation on iOS (now correctly oriented).
    • Added support for mirroring front camera stream on iOS.
  • Documentation:
    • Updated README with new features and license information.
    • Added BSD 3-Clause License.

0.0.1 #

  • Initial release.
  • Added SimpleCameraView for camera preview and image capture.
  • Added SimpleNative class for accessing native features.
  • Implemented getCurrentLocation to retrieve device coordinates.
  • Implemented getDeviceInfo to retrieve device details.
  • Supported Android and iOS platforms.
3
likes
140
points
240
downloads

Documentation

API reference

Publisher

verified publishertranduc1710.com

Weekly Downloads

A comprehensive Flutter plugin for accessing native device features including Camera (Photos, QR & Barcode), Location, Device Information, and Biometric Authentication.

Homepage

Topics

#camera #location #device-info #native #plugin

License

BSD-3-Clause (license)

Dependencies

flutter, flutter_web_plugins, plugin_platform_interface

More

Packages that depend on simple_native

Packages that implement simple_native