CEVIU Logo
Voltar

Expo SDK 56 reescreve arquitetura nativa para Swift com ganhos de até 2,3x em performance

Aprofundamento CEVIU

Aprofundamento

O Expo SDK 56 não é só uma atualização: é uma reengenharia da camada nativa para Apple. A mudança mais crítica, e técnica, foi substituir a ponte Objective-C++ por uma integração direta entre Swift e JSI (JavaScript Interface), o mesmo mecanismo usado pelos Turbo Modules do React Native. Isso elimina duas camadas de tradução e cópia de dados, reduzindo overhead em chamadas síncronas e assíncronas. Os ganhos de 1,6x a 2,3x em performance vêm de benchmarks reais com módulos como expo-file-system e expo-camera, onde operações de leitura de metadados e inicialização de sessões nativas agora se aproximam do desempenho de apps puramente nativos.

A arquitetura também impacta o ciclo de desenvolvimento: com módulos nativos inline e CLI watcher para Swift, o fluxo de edição-visualização passou de minutos para segundos. O TypeScript agora é gerado automaticamente a partir de interfaces Swift, sem precisar manter manualmente os tipos de módulos customizados. Isso eleva a experiência do desenvolvedor (DX) ao nível de frameworks como Next.js, mas com controle real sobre o código nativo subjacente.

O que mudou

A diferença entre o SDK 55 e o 56 vai além de otimizações incrementais. No SDK 55, o Swift ainda dependia de wrappers em Objective-C++ para acessar a JSI, uma herança técnica que limitava a eficiência e dificultava a depuração. Agora, o SDK 56 removeu essa camada inteira. Além disso, enquanto o SDK 55 usava reflexão no Android para inicializar módulos, o 56 gera código Kotlin em tempo de build, acelerando Activity.onCreate em 1,7x. Essa não é só uma melhoria de velocidade: é uma mudança de paradigma, de 'adaptar' para 'projetar nativamente desde o início', com Swift e Kotlin como primeiras classes de cidadania no ecossistema Expo.

Por que isso importa

Para equipes que usam React Native em produção, especialmente em apps com intensa interação com hardware (câmera, sensores, mídia), essa mudança reduz latências críticas na primeira interação, como abrir um modal de captura ou carregar uma galeria. Também simplifica a manutenção: menos camadas intermediárias significa menos pontos de falha e menos risco de regressões em atualizações do Xcode ou Android NDK. E, ao alinhar a arquitetura com os Turbo Modules oficiais do React Native, o Expo garante compatibilidade futura com ferramentas como Reanimated 4 e React Native’s new renderer, sem exigir forks ou patches personalizados.

Linha do tempo

  1. Lançamento estável do Expo UI com SwiftUI e Jetpack Compose via único import

  2. Lançamento do Expo Router v56 com desacoplamento do React Navigation e SSR experimental

  3. Lançamento do Expo SDK 56 com reescrita nativa em Swift, JSI direto e ganhos de até 2,3x em performance

Perguntas frequentes

O que muda para quem já usa Expo UI estável?

Nada quebrado, mas muito ganho. Os componentes SwiftUI e Jetpack Compose do Expo UI agora rodarão com até 2,3x mais rapidez no iOS graças à nova ponte Swift-JSI. A API permanece idêntica, mas a execução é mais eficiente, especialmente em transições complexas e listas com muitos itens.

Preciso migrar meu código Swift existente?

Não imediatamente. O SDK 56 mantém compatibilidade com módulos Objective-C++ legados, mas novos módulos devem ser escritos em Swift com a nova interface. O CLI oferece migração assistida para converter wrappers antigos em módulos inline com tipagem automática.

Hermes v1 é obrigatório agora?

Sim, Hermes v1 é o motor JavaScript padrão no SDK 56. Ele traz inicialização 30% mais rápida e uso de memória reduzido em até 25%, especialmente relevante em dispositivos de entrada. Apps que dependiam de APIs não suportadas pelo Hermes (como algumas extensões V8) precisam ser revisados.

Expo Router v56 e a nova arquitetura nativa se comunicam melhor?

Diretamente sim. Com a ponte Swift-JSI mais ágil, as navegações declarativas do Expo Router v56, especialmente as com pré-carregamento de dados nativos (ex: calendário ou contatos), têm menor latência entre toque e renderização. O desacoplamento do React Navigation também reduz conflitos de lifecycle com módulos nativos reescritos.

Fontes

Avalie este artigo:
Compartilhar:
Categoria
CEVIU Web Dev
Publicado
06 de junho de 2026
Editoria
CEVIU Web Dev

Quer receber mais sobre CEVIU Web Dev?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser