For the complete documentation index, see llms.txt. This page is also available as Markdown.

Introdução ao SDK

Sobre o CafSDK

Esta documentação técnica aborda a implementação do CafSDK para Flutter, detalhando a configuração, inicialização, execução dos fluxos de captura e personalizações avançadas.

O CafSDK é um SDK unificado que integra vários módulos para verificação de identidade: Face Liveness (FL) e Document Detector (DD), executados sequencialmente com uma interface de configuração unificada.

O que é Face Liveness

Face Liveness é o módulo que valida a autenticidade de um rosto capturado por um aplicativo de fotos, garantindo que a imagem corresponda a uma pessoa real e não a uma tentativa de spoofing.

Características técnicas:

  • Configuração da URL para autenticação (authBaseUrl) e verificação de liveness (livenessBaseUrl)

  • Suporte à configuração de proxy reverso com pinagem de certificado

  • Flags para habilitar captura de tela e modo de depuração

  • Tentativas de repetição configuráveis e execução da autenticação facial

  • Suporte a múltiplos provedores de autenticação

O que é Document Detector

Document Detector é o módulo que permite a captura e o processamento de documentos (por exemplo, RG, cartão do INSS, passaporte etc.).

Características técnicas:

  • Configuração de um fluxo passo a passo definido por CafDocumentDetectorFlow para captura de documentos

  • Suporte a vários tipos de documentos (RG, CNH, passaporte etc.)

  • Parâmetros operacionais, como timeout, flags de captura manual e outras configurações

  • Possibilidade de usar a câmera para validações de enquadramento ou upload de arquivo de documento

  • Opções avançadas de personalização para UI, mensagens e comportamento


Exemplo

Confira o aplicativo de exemplo para um exemplo completo de implementação.


Instalação

Requisitos

Para usar os módulos CafSDK no Flutter, certifique-se de que seu projeto atenda aos requisitos mínimos:

Flutter

Requisito
Versão

Versão do Flutter

3.3.0+

Dart

3.9.0+

Android

Requisito
Versão

API do SDK Android - versão mínima (minSdk)

26

API do SDK Android - versão de compilação (compileSdk)

36+

Kotlin

1.8+

Gradle

8.0+

Android Gradle Plugin (AGP)

8.0+

iOS

Requisito
Versão

Target de implantação do iOS

13.0+

Xcode

14.0+

Swift

5.0+

Passo 1: Instale o SDK

Instale o pacote principal do SDK:

Passo 2: Configure a seleção de módulos

Crie um caf-modules-config.json arquivo na raiz do seu projeto para especificar quais módulos incluir:

Observação: Se você omitir este arquivo, todos os módulos serão ativados por padrão e iproov-lite será usado como provedor padrão de Face Liveness.

Defina os true módulos que você deseja usar em sua aplicação.

Para um único provedor, livenessProviders pode ser uma string. Os valores permitidos são iproov-lite, iproov-full, payface, e facetec. Para usar vários provedores, use um array (veja o exemplo abaixo).

iProov e Protobuf

  • iproov-lite: use quando seu app tiver como alvo Protobuf JavaLite—a escolha usual para uma pegada binária menor no Android.

  • iproov-full: use quando você precisar de Protobuf Java (completo) junto com iProov.

Você pode declarar mais de um provedor definindo livenessProviders como um array quando sua integração exigir isso.

Defina os true módulos que você deseja usar em sua aplicação.

Fingerprint

O módulo Fingerprint é opcional e é configurado em caf-modules-config.json por meio da fingerprint propriedade (boolean). O padrão é false, então você não precisa adicionar a propriedade, a menos que queira usá-la. Para habilitar o módulo, defina explicitamente "fingerprint": true.

Requer um módulo Face Liveness. O Fingerprint é coletado como parte do fluxo de liveness, então só é incluído quando faceLiveness ou faceLivenessUI também está habilitado. Definir "fingerprint": true sem um módulo de liveness habilitado não tem efeito.

Importante: Entre em contato com o Suporte da CAF para solicitar a ativação. Se isso não estiver habilitado do nosso lado, o SDK não acionará a biblioteca de fingerprint e nenhum dado será enviado, mesmo que a propriedade esteja definida como true localmente.

Passo 3: Configuração do Android

Adicionar repositórios Maven

Configure o projeto build.gradle.kts do projeto (normalmente localizado na raiz):

Passo 4: Configuração do iOS

Acesse o ios/ diretório do seu projeto Flutter e execute:

  • Este passo é obrigatório para que o iOS vincule corretamente os módulos nativos e suas dependências necessárias.

  • Sempre execute novamente pod install sempre que dependências nativas forem adicionadas ou atualizadas.


Permissões

Android

Para que os módulos operem corretamente, você deve declarar as seguintes permissões no seu AndroidManifest.xml:

Para Face Liveness

Permissão
Descrição
Necessidade

android.permission.CAMERA

Permite acesso à câmera para capturar imagens e realizar a verificação facial (liveness).

Obrigatória

android.permission.INTERNET

Permite a comunicação com serviços de autenticação e verificação (HTTPS/WSS).

Obrigatória

Para Document Detector

Permissão
Descrição
Necessidade

android.permission.CAMERA

Permite acesso à câmera para capturar imagens de documentos.

Apenas para captura

android.permission.INTERNET

Permite que imagens capturadas sejam enviadas aos servidores para processamento e validação.

Obrigatória

android.permission.READ_EXTERNAL_STORAGE

Permite acesso a arquivos e imagens armazenados para processamento, se necessário.

Apenas para upload

iOS

Para que os módulos do SDK funcionem corretamente, você deve declarar as seguintes permissões no seu Info.plist:

Para Face Liveness:

Permissão
Descrição
Necessidade

NSCameraUsageDescription

Permite acesso à câmera para capturar imagens e realizar a verificação facial (liveness).

Obrigatória

Acesso à rede

Permite a comunicação com serviços de autenticação e verificação (HTTPS/WSS).

Obrigatória

Para Document Detector:

Permissão
Descrição
Necessidade

NSCameraUsageDescription

Permite acesso à câmera para capturar imagens de documentos.

Apenas para captura

Acesso à rede

Permite que imagens capturadas sejam enviadas aos servidores para processamento e validação.

Obrigatória

NSPhotoLibraryUsageDescription

Permite acesso a arquivos e imagens armazenados para processamento, se necessário.

Apenas para upload


Implementação básica

Exemplo simples

Aqui está um exemplo básico de implementação:


Configuração

Idioma

Android

O idioma é definido automaticamente de acordo com o idioma configurado no dispositivo, sem nenhuma configuração adicional.

iOS

De acordo com a documentação da Apple, configurar Localizações e CFBundleLocalizations deve ser feito no Xcode:

Após essas configurações, o SDK reconhecerá o idioma do dispositivo.

Configuração global

A CafSdk classe serve como o contêiner central para todas as configurações. Essa configuração define a ordem de execução dos módulos e a identidade visual.

Parâmetros essenciais:

  • mobileToken: Token que autentica a requisição e garante que apenas clientes autorizados iniciem o fluxo

  • personId: Identificador único do usuário para o qual o fluxo será executado

  • environment: Define o ambiente de execução (PROD, BETA, DEV)

  • presentationOrder: Define a sequência em que os módulos serão executados

  • enableSecurityModule: Habilita ou desabilita o módulo de segurança. Opcional, o padrão é true

Exemplo de código para criar a configuração global:

Configuração Específica do Módulo

Configuração do Face Liveness

Você pode configurar o módulo Face Liveness criando um CafFaceLivenessConfiguration. Ao usar o provedor opcional PayFace (Fortface), use payFaceDebugMode para ativar o modo de depuração para esse provedor.

Configuração do Detector de Documentos

Você pode configurar o módulo Detector de Documentos criando um CafDocumentDetectorConfiguration:


Tratamento de Eventos

A eventStream da CafSdk classe fornece um tipado Stream<CafResponse> gerado durante a execução do fluxo de captura. Cada CafResponse tem exatamente um campo preenchido, o que indica o tipo de evento:

Campo
Tipo
Descrição

loading

bool

Indica o início do processamento do módulo

loaded

bool

Indica que o módulo foi processado

success

CafSuccessResponse?

Após conclusão bem-sucedida; contém moduleName e signedResponse

error

CafErrorResponse?

Ocorreu um problema durante a execução; contém type e description

failure

CafFailureResponse?

Indica uma falha do Face Liveness; contém type, description, e response

log

CafLog?

Mensagens de log com diferentes níveis; contém level (DEBUG, USAGE, INFO) e message

cancelled

bool

Indica que o usuário ou o sistema interrompeu o fluxo

Nota de migração (v2.0.0): eventStream agora emite objetos CafResponse tipados em vez de Map payloads brutos. Substitua qualquer acesso event['eventName'] / event['response'] pelos campos tipados mostrados acima.

Exemplo de tratamento de eventos:

Tipos de Erro (CafErrorType)

Caso do Enum
Condição de Disparo

CAMERA_PERMISSION

Acesso à câmera negado

UNSUPPORTED_DEVICE

Especificações do dispositivo não suportadas

NETWORK_EXCEPTION

Problemas de conectividade de rede

SERVER_EXCEPTION

Falha no processamento do backend

TOKEN_EXCEPTION

Token inválido/expirado

CAPTURE_ALREADY_ACTIVE_EXCEPTION

Sessão de captura simultânea

UNEXPECTED_ERROR_EXCEPTION

Erro crítico irrecuperável

USER_TIMEOUT_EXCEPTION

Tempo limite de captura excedido

IMAGE_NOT_FOUND_EXCEPTION

Dados da imagem ausentes

TOO_MANY_REQUESTS_EXCEPTION

Limite de requisições da API excedido

UNKNOWN_EXCEPTION

Erro não classificado

LIBRARY_EXCEPTION

Erro de baixo nível do framework

PERMISSION_EXCEPTION

Permissões do sistema ausentes

INVALID_EXCEPTION

Resposta inválida recebida

SEQUENCE_INVALID

Sequência de operação inválida

LIVENESS_EXCEPTION

Erro específico de Face Liveness

FINGERPRINT_EXCEPTION

Erro relacionado à impressão digital

STORAGE_EXCEPTION

Erro de acesso ao armazenamento

PROXY_EXCEPTION

Erro de configuração do proxy

SECURITY_EXCEPTION

Erro de validação de segurança

INVALID_RESPONSE_EXCEPTION

Payload de resposta inválido recebido de um módulo

CAMERA_EXCEPTION

Falha na inicialização ou em tempo de execução da câmera

FACE_AUTHENTICATION

Erro durante a autenticação facial (executeFaceAuth)

BRIDGE_EXCEPTION

Erro de comunicação na ponte nativa ↔ Flutter

Tipos de Falha (CafFailureType)

Caso do Enum
Condição de Disparo
GPA
LA

DESCONHECIDO

Falha genérica

TOO_MUCH_MOVEMENT

Movimento excessivo da cabeça

TOO_BRIGHT

Iluminação excessiva

TOO_DARK

Condições de pouca luz

MISALIGNED_FACE

Falha no alinhamento do rosto

FACE_TOO_FAR

Rosto muito distante

FACE_TOO_CLOSE

Rosto muito próximo

SUNGLASSES

Óculos que cobrem os olhos

OBSCURED_FACE

Obstrução parcial do rosto

EYES_CLOSED

Olhos fechados durante a captura

MULTIPLE_FACES

Vários rostos detectados

✅️

✅️

BACKGROUND_ISSUE

Fundo inadequado

DEVICE_ISSUE

Dispositivo incompatível

EYEWEAR

Óculos detectados

FACE_NOT_FOUND

Falha na detecção do rosto

FRAMES_BLURRY

Quadros borrados detectados

MOTION_ISSUE

Erro de movimento do dispositivo

LIGHTING_ISSUES

Condições de iluminação ruins

REJECTED

Transação rejeitada

SYSTEM_ERROR

Erro interno do sistema

TIMEOUT

Tempo limite da sessão

USER_NOT_FOUND

Falha na busca do usuário

DEVICE_RESTART

Erro no estado do dispositivo

PROCESSING_FAULT

Erro de processamento


Tipos de Documento

Documentos Suportados (CafDocument)

Nome
Descrição

RG_FRONT

Frente do documento RG, onde a foto está localizada

RG_BACK

Verso do documento RG

RG_FULL

Documento RG aberto, exibindo a frente e o verso juntos

CNH_FRONT

Frente do documento CNH, onde a foto está localizada

CNH_BACK

Verso do documento CNH

CNH_FULL

Documento CNH aberto, exibindo a frente e o verso juntos

CRLV

Documento CRLV

RNE_FRONT

Frente do documento RNE ou RNM

RNE_BACK

Verso do documento RNE ou RNM

CTPS_FRONT

Frente do documento CTPS, onde a foto está localizada

CTPS_BACK

Verso do documento CTPS

PASSPORT

Documento de passaporte, exibindo a foto e os dados pessoais

ANY

Permite o envio de qualquer tipo de documento, incluindo todos os listados acima ou qualquer outro documento não classificado

Formatos de Arquivo Suportados (CafFileFormat)

Tipo
Valor

PNG

image/png

JPG

image/jpg

JPEG

image/jpeg

PDF

application/pdf

HEIF

image/heif

HEIC

image/heic


Configuração Avançada

Configuração da UI do Face Liveness

Ao usar o módulo de UI, você pode personalizar as telas de instrução:

Configuração da UI do Detector de Documentos

Configuração de Proxy

Para as configurações de proxy do Detector de Documentos:

Personalização de Mensagens

Personalize as mensagens exibidas durante o fluxo de captura:


Exemplo de Implementação Completa

Aqui está um exemplo completo mostrando tanto a UI do Face Liveness quanto a UI do Detector de Documentos:


Regras do ProGuard/R8

Adicione estas regras do ProGuard/R8 ao seu proguard-rules.pro arquivo para Android:


Suporte técnico e dicas de uso

Suporte técnico Se você tiver alguma dúvida ou dificuldade com a integração, entre em contato com o suporte técnico da Caf.

Dicas de uso

  • Execute testes: Realize testes em dispositivos reais para validar os requisitos e o desempenho do fluxo

  • Explore personalizações: Use opções avançadas de personalização para adaptar o fluxo às necessidades do seu projeto

  • Monitore o desempenho: Integre ferramentas de monitoramento para acompanhar os logs e o desempenho do fluxo em produção

  • Lide com erros de forma elegante: Implemente o tratamento adequado de erros para todos os possíveis cenários de erro e falha

  • Teste com diferentes dispositivos: Garanta compatibilidade entre várias especificações de dispositivos e tamanhos de tela


Notas de lançamento

[email protected]

Data de lançamento

  • 08-03-2026

Destaques

  • Módulo Fingerprint opcional: Controle a inclusão do recurso de impressão digital diretamente de caf-modules-config.json. Ele está desativado por padrão, garantindo que você só inclua a dependência quando estritamente necessário.

Atualizações

  • Novo fingerprint campo booleano em caf-modules-config.json para Android e iOS.

[email protected]

Data de lançamento

  • 07-06-2026

Destaques

  • Relato de erros mais consistente: Erros que ocorrem durante a inicialização do fluxo e estão relacionados à integração interna do SDK agora são emitidos por meio do error evento como BRIDGE_EXCEPTION, para que possam ser tratados da mesma forma que qualquer outro erro do SDK.

Mudanças Incompatíveis

  • Stream de eventos tipado: CafSdk.eventStream agora é Stream<CafResponse>. Os consumidores devem acessar os campos tipados de CafResponse (success, error, failure, log, loading, loaded, cancelled) em vez de indexar um Map.

  • Classes de configuração de módulo simplificadas: O ...BuilderConfiguration os wrappers foram removidos. Os campos agora são passados diretamente nos objetos de configuração do módulo, e as configurações da UI estendem a configuração base em vez de aninhá-la:

    • CafFaceLivenessBuilderConfiguration removido — passe os campos diretamente em CafFaceLivenessConfiguration.

    • CafDocumentDetectorBuilderConfiguration removido — passe os campos diretamente em CafDocumentDetectorConfiguration.

    • CafFaceLivenessUIBuilderInstructionScreenConfigurationCafFaceLivenessUIInstructionScreenConfiguration, e o campo instructionScreenConfigurationinstructionScreen.

    • CafDocumentDetectorUIBuilderInstructionScreenConfigurationCafDocumentDetectorUIInstructionScreenConfiguration, e o campo instructionScreenConfigurationinstructionScreen.

    • CafDocumentDetectorUIBuilderDocumentSelectionScreenConfigurationCafDocumentDetectorUIDocumentSelectionScreenConfiguration, e o campo documentSelectionScreenConfigurationdocumentSelectionScreen.

    • No nível do SDK CafSdkConfiguration permanece inalterado e ainda recebe configuration: CafSdkBuilderConfiguration(...).

  • initializeCafSdk tipo de retorno: alterado de Future<bool?> para Future<bool>.

Atualizações

  • Constantes de nome dos eventos: Adicionadas as CafSdkEventName constantes (CafUnifiedEvent.*) para identificar os eventos emitidos.

  • Novo CafErrorType valores: Adicionados INVALID_RESPONSE_EXCEPTION, CAMERA_EXCEPTION, FACE_AUTHENTICATION, e BRIDGE_EXCEPTION. Observe que BRIDGE_EXCEPTION relata erros que ocorrem ao inicializar ou iniciar o fluxo; ouça-o no error evento e trate-o como parte do seu tratamento normal de erros.

  • CafSuccessResponse: signedResponse agora é tipado como String? (anteriormente dynamic), e moduleName a resolução é mais resiliente a variações de identificadores nativos.

Guia de Migração — 1.x → 2.0.0

Três coisas mudaram para os integradores: como você lê eventos, como constrói configurações de módulo e o tipo de retorno de initializeCafSdk. No nível do SDK CafSdkConfiguration (com CafSdkBuilderConfiguration) permanece inalterado.

1. Leia eventos do stream tipado

2. Remova o módulo ...BuilderConfiguration wrapper

Passe os campos diretamente no objeto de configuração do módulo.

3. Atualize as configurações de UI (wrapper + tipos e campos renomeados)

4. Renomeie as importações de tipos (se você importou os tipos removidos)

Removido (1.x)
Use em vez disso (2.0.0)

CafFaceLivenessBuilderConfiguration

CafFaceLivenessConfiguration

CafDocumentDetectorBuilderConfiguration

CafDocumentDetectorConfiguration

CafFaceLivenessUIBuilderInstructionScreenConfiguration

CafFaceLivenessUIInstructionScreenConfiguration

CafDocumentDetectorUIBuilderInstructionScreenConfiguration

CafDocumentDetectorUIInstructionScreenConfiguration

CafDocumentDetectorUIBuilderDocumentSelectionScreenConfiguration

CafDocumentDetectorUIDocumentSelectionScreenConfiguration

5. Atualize o initializeCafSdk tipo de retorno

initializeCafSdk agora retorna Future<bool> em vez de Future<bool?>. Remova qualquer verificação de nulo no resultado aguardado.

[email protected]

Data de lançamento

  • 05-25-2026

Atualizações

  • Provedor de Liveness da Payface (Android): Atualize a versão de 1.18.2 para 1.19.2.

  • Provedor de Liveness da Payface (iOS): Atualize a versão de 1.5.2 para 1.8.2.

Correções

FaceLiveness

  • O erro de carregamento infinito ocorre quando o SDK retorna um erro.

  • A primeira inicialização não funciona ao usar Payface provedor.

[email protected]

Data de lançamento

  • 05-08-2026

Correções

  • DocumentDetector: Corrigido o comportamento ao lidar com RG (Carteira de Identidade Nacional brasileira) com a opção de documento digital.

[email protected]

Data de lançamento

  • 04-13-2026

Destaques

  • Provedores de Face Liveness configuráveis: Escolha iproov-lite, iproov-full, payface, e/ou facetec de caf-modules-config.json em vez de depender dos padrões nativos implícitos.

Atualizações

  • Configuração do provedor de Liveness:

    • Novo livenessProviders campo em caf-modules-config.json para Android e iOS.

    • Documentado Protobuf JavaLite vs Protobuf Java mapeamento para iproov-lite vs iproov-full.

    • Esclarecido com vários provedores usando um array, e a PayFace + iProov Lite exigência.

  • Provedor de Liveness iProov: Documentação e padrões atualizados para refletir o novo modelo de seleção de provedor.

  • Android ProGuard / R8: Se o R8 relatar classes ausentes para os stubs de lint fornecidos com o SDK, adicione o seguinte a proguard-rules.pro (também listado em Regras do ProGuard/R8):

[email protected]

Data de lançamento

  • 02-09-2026

Destaques

  • Provedor de Liveness atualizado: Atualização crítica da versão do provedor iProov para melhor estabilidade

Atualizações

  • Provedor de Liveness iProov: Atualizada a versão interna do provedor iProov.

[email protected]

Data de lançamento

  • 02-09-2026

Destaques

  • Novo módulo de segurança: Introdução do CafSecurity módulo para validações de segurança

  • Integração com PayFace: Adicionado suporte ao PayFace (Fortface) como provedor opcional de Face Liveness

  • Melhorias de estabilidade: Correções importantes de falhas e melhorias de estabilidade para o módulo Document Detector

Recursos

  • Módulo CafSecurity:

    • Adicionado um novo módulo especificamente para validações de segurança

    • Configuração: Adicionados enableSecurityModule flag em CafSdkConfiguration (valor padrão: true)

  • Integração com PayFace (Fortface):

    • Integração opcional com provedor de Face Liveness

    • Configuração: Nova propriedade payFaceDebugMode em CafFaceLivenessConfiguration para ativar o modo de depuração para o provedor PayFace

Correções

  • DocumentDetector:

    • Ciclo de vida da Activity: Resolvidos vários travamentos relacionados ao gerenciamento do ciclo de vida da activity (estados de inicialização, pausa e retomada)

    • Ciclo de vida da câmera: Melhorado o gerenciamento de recursos da câmera e do ciclo de vida das threads para evitar travamentos durante o encerramento do SDK

    • Componentes de UI: Resolvidos problemas de compatibilidade de tema e exceções de transação de fragmentos

    • Requisições de rede: Corrigido o manuseio do corpo da resposta para evitar erros ao ler respostas de rede

    • Acesso a dados: Melhorada a inicialização e validação do cursor antes de acessar dados do banco de dados

    • Prevenção de ANR: Otimizadas as verificações de instância do controlador de documentos para evitar problemas de "Aplicativo não respondendo"

    • Geral: Melhorias internas e correções de estabilidade

  • FaceLiveness:

    • Sessões: Corrigidos erros de criação de sessão

    • UI: Corrigida a tonalidade de cor em imagens remotas na tela de Instruções

Atualizações

  • Configuração de compilação:

    • Regras do ProGuard: Adicionadas as regras necessárias do ProGuard para a integração com PayFace

[email protected]

Data de lançamento

  • 03-09-2026

Atualizações

  • Provedor de Liveness iProov atualizado: Atualize a versão do provedor iProov.

  • Atualizado o target mínimo de implantação do iOS: Atualizado para 15.0.

Correções

  • DocumentDetector

    • Corrigidos travamentos no módulo Document Detector: Resolvidos vários travamentos relacionados ao gerenciamento do ciclo de vida da activity, incluindo estados de inicialização, pausa e retomada.

    • Corrigidos travamentos relacionados ao ciclo de vida da câmera: Melhorado o gerenciamento de recursos da câmera e do ciclo de vida das threads para evitar travamentos durante o encerramento do SDK e transições de estado.

    • Corrigidos travamentos nos componentes de UI: Resolvidos problemas de compatibilidade de tema e exceções de transação de fragmentos para garantir o comportamento adequado da UI.

    • Corrigidos travamentos em requisições de rede: Corrigido o manuseio do corpo da resposta para evitar erros ao ler respostas de rede.

    • Corrigidos travamentos no acesso a dados: Melhorada a inicialização e validação do cursor antes de acessar dados do banco de dados.

    • Corrigido ANR no Document Controller: Otimizadas as verificações de instância do controlador de documentos para evitar problemas de aplicativo não respondendo.

    • Melhorias e correções internas: Melhorias adicionais de estabilidade e correções de bugs.

[email protected]

Data de lançamento

  • 10-27-2025

Destaques

  • Primeira versão do Flutter SDK: Implementação completa em Flutter do CAF SDK para verificação de identidade

  • SDK unificado: Pacote único contendo todos os módulos CAF (Face Liveness e Document Detector) com variantes de core e UI

  • Integração Flutter-Nativa: Integração perfeita com o sistema de widgets e o gerenciamento de estado do Flutter

  • Suporte multiplataforma: Suporte completo para as plataformas Android e iOS

  • Configuração com segurança de tipos: Classes de configuração Dart fortemente tipadas para uma melhor experiência de desenvolvimento

Recursos

  • Sistema de configuração de módulos:

    • caf-modules-config.json: Arquivo de configuração na raiz do projeto para especificar quais módulos incluir

    • Módulos disponíveis:

      • documentDetector: Ativar/desativar o módulo Document Detector

      • faceLiveness: Ativar/desativar o módulo Face Liveness

      • documentDetectorUI: Ativar/desativar o módulo de UI do Document Detector

      • faceLivenessUI: Ativar/desativar o módulo de UI do Face Liveness

    • Exemplo de configuração:

  • Recursos principais do SDK:

    • Classe CafSdk: Classe principal do SDK para inicialização e configuração

    • Stream de eventos: Tratamento de eventos em tempo real por meio de streams Dart

    • Gerenciamento de módulos: Execução sequencial de módulos com ordem de apresentação configurável

    • Tratamento de erros: Tipos de erro abrangentes e tratamento de falhas

    • Builder de configuração: Configuração com segurança de tipos usando o padrão builder

  • Módulo Face Liveness:

    • Módulo principal: CafFaceLivenessConfiguration para controle programático

    • Módulo de UI: CafFaceLivenessUIConfiguration com telas de instruções personalizáveis

    • Recursos: URLs de autenticação, pinagem de certificado, modo de depuração, tentativas de repetição

    • Personalização: Telas de instrução com imagens, títulos, descrições e etapas

  • Módulo Document Detector:

    • Módulo principal: CafDocumentDetectorConfiguration para controle programático

    • Módulo de UI: CafDocumentDetectorUIConfiguration com personalização completa da UI

    • Tipos de Documento: Suporte para RG, CNH, Passaporte, RNE, CTPS e mais

    • Suporte a upload: Upload de arquivos com compactação, controle de formato e limites de tamanho

    • Configuração de Proxy: Suporte a servidores proxy com autenticação

    • Personalização de Mensagens: Mensagens personalizáveis para o usuário durante todo o fluxo

  • Configuração Avançada:

    • Tema de cores: Personalização completa das cores da UI por meio de CafColorConfiguration

    • Configurações de segurança: Flags de desenvolvimento, modo de depuração e controles de segurança

    • Controle de fluxo: Captura manual, timeouts, tentativas de repetição e controles de pop-up

    • Telas de instrução: Telas de instrução personalizáveis para ambos os módulos

Implementação técnica

  • Integração com Flutter:

    • Method Channels: Comunicação nativa por meio do sistema de method channels do Flutter

    • Eventos baseados em stream: Tratamento de eventos em tempo real usando streams Dart

    • Gerenciamento de estado: Gerenciamento adequado do ciclo de vida com StatefulWidget suporte

    • Tratamento de erros: Tratamento abrangente de erros com exceções tipadas

  • Suporte à plataforma:

    • Android: Suporte completo com regras do ProGuard/R8 e configuração do repositório Maven

    • iOS: Integração completa com CocoaPods e módulos nativos do iOS

    • Permissões: Tratamento adequado de permissões para acesso à câmera e à rede

  • Desempenho:

    • Carregamento seletivo de módulos: Carregue apenas os módulos ativados para otimizar o tamanho do pacote

    • Gerenciamento de memória: Limpeza adequada de recursos e gerenciamento de memória

    • Otimização de rede: Comunicação de rede eficiente com mecanismos de repetição

Instalação e configuração

  • Instalação do pacote: Instalação simples via flutter pub add caf_sdk

  • Configuração de módulos: Seleção fácil de módulos por meio de arquivo de configuração JSON

  • Configuração da plataforma: Instruções claras para configuração das plataformas Android e iOS

  • Gerenciamento de Permissões: Configuração abrangente de permissões para ambas as plataformas

Documentação

  • Exemplos Completos: Exemplos completos de implementação para uso básico e avançado

  • Guia de Configuração: Opções de configuração detalhadas para todos os módulos

  • Tratamento de Eventos: Exemplos e padrões abrangentes de tratamento de eventos

  • Referência de Erros: Documentação completa dos tipos de erro e cenários de falha

Mudanças Incompatíveis

  • Primeira Versão: Esta é a primeira versão do SDK Flutter, então não há mudanças que causem quebra de compatibilidade em relação às versões anteriores.

Problemas Conhecidos

  • Simulador iOS: Alguns recursos podem não funcionar corretamente no Simulador iOS devido a limitações da câmera

  • Emulador Android: Recursos que dependem da câmera exigem dispositivos físicos para testes

  • Requisitos de Rede: Todos os módulos exigem conexão com a internet para funcionar corretamente

Atualizado