shaped_plugin 0.0.2 copy "shaped_plugin: ^0.0.2" to clipboard
shaped_plugin: ^0.0.2 copied to clipboard

Shaped SKD flutter package

ShapedSdkCamera #

Descrição #

O ShapedSdkCamera é um componente Flutter para captura de imagens e detecção de poses corporais. Ele permite capturar imagens de um usuário enquanto valida a postura e fornece feedback baseado na posição do corpo.

Instalação #

Para utilizar o ShapedSdkCamera, adicione o plugin ao seu projeto Flutter. No seu pubspec.yaml, adicione:

dependencies:
  shaped_plugin:
    git:
      url: https://github.com/shapeddev/shaped_sdk.git
      ref: 0.0.1 # Utilize a versão (tag) disponibilizada pelo time
      path: flutter

A ref corresponde à tag da versão disponibilizada pelo time de desenvolvimento. Sempre consulte a documentação.

Em seguida, execute:

flutter pub get

Permissões Necessárias #

Para utilizar a câmera, adicione as seguintes permissões nos arquivos de configuração do seu projeto:

Android #

No arquivo AndroidManifest.xml, adicione:

<uses-permission android:name="android.permission.CAMERA"/>

iOS #

No arquivo Info.plist (localizado em ios/Runner/Info.plist), adicione:

<key>NSCameraUsageDescription</key>
<string>Este aplicativo precisa acessar a câmera para capturar imagens.</string>

Uso #

Importação #

No seu arquivo Dart, importe o pacote:

import 'package:shaped_plugin/shaped_plugin.dart';

Exemplo de Implementação #

Abaixo, um exemplo de como utilizar o ShapedSdkCamera dentro de um StatefulWidget:

import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:shaped_plugin/shaped_plugin.dart';

class CameraPage extends StatefulWidget {
  @override
  _CameraPageState createState() => _CameraPageState();
}

class _CameraPageState extends State<CameraPage> {
  bool _frontalValidation = true;
  List<Uint8List> _capturedImages = [];

  void _handleImages(List<Uint8List> capturedImages, bool frontalValidation) {
    setState(() {
      _capturedImages = capturedImages;
      _frontalValidation = frontalValidation;
    });
  }

  Future<void> _changeFrontalValidation(bool frontalValidation) async {
    setState(() {
      _frontalValidation = frontalValidation;
    });
  }

  void _handleErrors(List<String> errors, int? countdown) {
    print("Erros detectados: $errors");
  }

  void _onValidateDeviceLevel(bool validLevel) {
    if (!validLevel) {
      print("Dispositivo não está nivelado corretamente.");
    }
  }

  Future<dynamic> showDialogCustom(
    String description,
    String labelButton,
    void Function() clickButton,
    bool barrierDismissible,
    bool buttonWide,
  ) async {
    return showDialog(
      context: context,
      builder: (context) => AlertDialog(
        title: Text(description),
        actions: [
          TextButton(onPressed: clickButton, child: Text(labelButton)),
        ],
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("Detecção Corporal")),
      body: Center(
        child: ShapedSdkCamera(
          frontalValidation: _frontalValidation,
          capturedImages: _capturedImages,
          onImagesCaptured: _handleImages,
          onChangeFrontalValidation: _changeFrontalValidation,
          onDeviceLevel: _onValidateDeviceLevel,
          onErrorsImage: _handleErrors,
          showDialog: showDialogCustom,
        ),
      ),
    );
  }
}

Parâmetros do ShapedSdkCamera #

Parâmetro Tipo Descrição
frontalValidation bool Define se a validação frontal está ativada.
capturedImages List<Uint8List> Lista de imagens capturadas.
onImagesCaptured Function(List<Uint8List>, bool) Callback acionado ao capturar imagens.
onChangeFrontalValidation Future<void> Function(bool) Callback acionado quando há mudança na validação frontal.
onDeviceLevel Function(bool) Callback para informar se o dispositivo está nivelado.
onErrorsImage Function(List<String>, int?) Callback acionado ao detectar erros na captura.
showDialog Future<dynamic> Function(String, String, void Function(), bool, bool) Função para exibir diálogos personalizados.

Considerações Finais #

O ShapedSdkCamera fornece uma interface robusta para captura e validação de imagens corporais, podendo ser facilmente integrado a qualquer projeto Flutter. Certifique-se de conceder as permissões necessárias para a câmera antes de usá-lo.