Guia de Migração: CafSDK 2.1.0 → 3.0.0-rc.3
Resumo das Mudanças
Esta documentação descreve as principais alterações na API do @caf.io/react-native-sdk entre as versões 2.1.0 e 3.0.0-rc.3, com foco específico nos métodos de inicialização.
🔄 Mudanças na Inicialização
1. Hook useCafSdk
Versão 2.1.0 (Anterior)
const { initialize, response } = useCafSdk(configuration, callback);
// initialize chamava automaticamente startSDK
const initialize = async () => {
module.initialize(configurationRef.current, async (success: boolean) => {
if (success) {
await new Promise((resolve) => {
callback();
setTimeout(resolve, 10);
});
// ⚠️ startSDK era chamado automaticamente
module.startSDK();
}
});
};Características:
Método
inicializarera assíncrono (async)Usava callback como segundo parâmetro do
module.initializeIniciava o SDK automaticamente após a inicialização bem-sucedida
Retornava apenas
{ initialize, response }
Versão 3.0.0-rc.3 (Atual)
Características:
Método
inicializarEUA Promise em vez de callbackNÃO inicia o SDK automaticamente - controle manual necessário
Expõe três novos métodos:
inicializar,startSDKeloadSessionMelhor tratamento de erros com
.catch()
⚡ Ganho de Performance com loadSession()
O que é o loadSession()?
O método loadSession() é uma otimização de performance introduzida na versão 3.0.0-rc.3. Ele permite pré-carregar a sessão do SDK antes de iniciar a câmera.
🚀 Benefício de Performance
Problema na versão 2.1.0:
Solução na versão 3.0.0-rc.3:
*O tempo varia conforme a latência da rede e do dispositivo
💡 Quando Usar
✅ Cenários Recomendados
❌ Quando NÃO Usar
O que acontece no loadSession():
✅ Cria sessão com o servidor CAF
✅ Autentica as credenciais
✅ Prepara o contexto de captura
✅ Aloca os recursos necessários
🎁 Vantagens Adicionais
✅ Melhor UX: Usuário tem um carregamento mais fluido ✅ Flexibilidade: Controle total sobre quando carregar
Código na Versão 2.1.0
Código na Versão 3.0.0-rc.3
⚠️ Mudanças Incompatíveis
1. Separação de Responsabilidades
Antes:
initialize()fazia tudo (configurar + iniciar)Agora: Métodos separados para cada etapa
2. Chamada Manual Obrigatória
3. Mudança de Callback para Promise
4. Novos Métodos Disponíveis
🔍 Mudanças no Estado de Response
Tratamento de Múltiplos Sucessos
Versão 2.1.0:
Versão 3.0.0-rc.3:
Impacto no Código
📊 Comparação Resumida
inicializar
async, início automático
Baseado em Promise, início manual
startSDK
❌ Automático
✅ Manual
loadSession
❌ Não existe
✅ Novo método (otimização)
Padrão de Callback
Callback nativo
Promise
response.success
Objeto único
Array de objetos
Controle do Fluxo
Automático
Manual (mais controle)
✅ Checklist de Migração
Atualizado

