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
initializeera 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
initializeusa Promise ao invés de callbackNÃO inicia o SDK automaticamente - controle manual necessário
Expõe três novos métodos:
initialize,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:
*Tempo varia conforme latência de rede e dispositivo
💡 Quando Usar
✅ Cenários Recomendados
❌ Quando NÃO Usar
O que acontece no loadSession():
✅ Cria sessão com servidor CAF
✅ Autentica credenciais
✅ Prepara contexto de captura
✅ Aloca 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
⚠️ Breaking Changes
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 Response State
Tratamento de Múltiplos Sucessos
Versão 2.1.0:
Versão 3.0.0-rc.3:
Impacto no Código
📊 Comparação Resumida
initialize
async, auto-start
Promise-based, manual start
startSDK
❌ Automático
✅ Manual
loadSession
❌ Não existe
✅ Novo método (otimização)
Callback Pattern
Callback nativo
Promise
response.success
Objeto único
Array de objetos
Controle do Fluxo
Automático
Manual (mais controle)
✅ Checklist de Migração
Last updated

