Turbo Native Modules são a interface tipada e gerada por Codegen que permite a um app React Native expor funcionalidades nativas ao JavaScript na Nova Arquitetura. Para criar um módulo, você define sua API em uma especificação Flow ou TypeScript, gera as interfaces nativas, implementa o comportamento em Android e iOS e registra as implementações para que o JavaScript possa acessá-las. O Codegen cria a estrutura de integração; não escreve a lógica nativa do módulo por você.
O que são Turbo Native Modules — e o que não são
Um Turbo Native Module é o contrato entre JavaScript e código nativo, junto das interfaces geradas para conectar os dois lados. Ele serve para expor funcionalidades sem interface visual, como armazenamento ou notificações. A especificação tipada descreve métodos e tipos de dados que atravessam essa fronteira; a implementação nativa executa o trabalho.
O módulo não é um componente de interface. Se a necessidade é exibir uma view nativa, o conceito relacionado é um componente nativo, integrado com o Fabric. A Nova Arquitetura reúne essas peças, mas Turbo Native Modules e Fabric não são nomes diferentes para a mesma coisa.
Como os conceitos se relacionam
| Conceito | Função |
|---|---|
| Nova Arquitetura | Conjunto de mudanças na integração entre React Native e código nativo, incluindo o uso de JSI em lugar da antiga bridge. |
| Turbo Native Module | Interface para funcionalidades nativas sem UI, definida por uma especificação tipada e conectada por código gerado. |
| Fabric | Sistema relacionado à renderização de componentes e views nativas. |
Como criar um Turbo Native Module
O fluxo documentado pelo React Native tem quatro partes: especificação, Codegen, implementação nativa e registro. A documentação oficial ensina o processo com um exemplo de armazenamento persistente, mas esse é apenas um caso de uso — não uma exigência para módulos.
#1 Best Overall
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
- Defina a especificação JavaScript. Escreva a API do módulo em Flow ou TypeScript, incluindo os métodos e os tipos que JavaScript e código nativo compartilharão. Use o formato de especificação reconhecido pelo Codegen.
- Configure o Codegen. A configuração do projeto, incluindo a localização das especificações, orienta quais arquivos a ferramenta deve processar. A geração ocorre normalmente durante os builds do app. A CLI do Codegen também pode ser usada manualmente para inspecionar o resultado; consulte as instruções da versão de React Native do projeto para a sintaxe e as opções aplicáveis.
- Implemente o comportamento em cada plataforma. Use as interfaces geradas como contrato e escreva o código que realmente executa cada método. O exemplo de armazenamento da documentação usa SharedPreferences no Android e NSUserDefaults no iOS. Esses detalhes pertencem ao exemplo: outro módulo usará as APIs e a lógica adequadas à sua função.
- Registre as implementações. Conecte as implementações concretas ao mecanismo de registro da plataforma, de forma que o React Native possa resolver o módulo quando o JavaScript o solicitar. Os pontos exatos de integração podem variar conforme plataforma e versão; siga o tutorial correspondente à versão-alvo.
O Codegen examina as especificações tipadas e produz código de integração, incluindo código C++ e código de plataforma — Java para Android e Objective-C++ para iOS, conforme a explicação oficial. Esse código gerado fornece a estrutura e os contratos necessários; a lógica específica do produto continua sendo responsabilidade da implementação nativa.
Tenha atenção à versão do exemplo
O tutorial de criação citado usa um app de exemplo com React Native 0.87.0. Trate seus comandos e detalhes de APIs geradas como exemplos daquela versão, não como requisitos universais. Antes de copiar instruções, compare-as com a versão efetivamente usada no app.
Rank #2
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
O que muda com a Nova Arquitetura
Na explicação do React Native, a Nova Arquitetura substitui a antiga bridge assíncrona por JSI. O projeto anunciou em 23 de outubro de 2024 que a Nova Arquitetura passou a ser habilitada por padrão em novos projetos a partir do React Native 0.76. Isso não significa que todos os apps existentes foram automaticamente migrados: a situação depende da configuração e do histórico de cada projeto.
Uma camada de interoperabilidade permite que muitos módulos legados continuem funcionando durante uma migração gradual. Migrar um módulo próprio para a nova API é o caminho para usar recursos associados aos Turbo Native Modules, como a integração tipada via Codegen e chamadas síncronas onde forem apropriadas. Isso não garante por si só uma melhora de desempenho perceptível: o resultado depende do trabalho realizado e de como o app usa o módulo.
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #3
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
Projetos com problemas de compatibilidade podem optar por desabilitar a Nova Arquitetura, mas os procedimentos de opt-out são específicos de plataforma e sensíveis à versão. Consulte a documentação de arquitetura atual para as instruções do release usado. Não há, nas informações citadas, uma data universal anunciada para o fim do suporte de interoperabilidade.
Implementação específica por plataforma ou C++ compartilhado?
A decisão depende de onde está a lógica relevante. Se o módulo usa APIs do Android ou iOS, ou precisa se comportar de forma diferente em cada sistema, implementações específicas por plataforma tendem a ser necessárias. Se o núcleo é independente da plataforma, C++ pode permitir compartilhar essa lógica entre Android e iOS. As camadas de integração com APIs nativas ainda podem exigir código próprio de cada plataforma.
Rank #4
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
| Critério | Implementação por plataforma | Lógica compartilhada em C++ |
|---|---|---|
| Dependência de APIs nativas | Adequada quando o módulo chama APIs do Android ou iOS ou depende do comportamento de um sistema. | Mais adequada para lógica independente das APIs específicas de cada plataforma; chamadas nativas ainda podem requerer integração por plataforma. |
| Reuso de código | A lógica pode precisar ser implementada e mantida separadamente em Android e iOS. | Permite reutilizar lógica multiplataforma em uma implementação C++. |
| Manutenção e integração | Exige manter o código nativo e a configuração de build de cada plataforma. | Exige manter o C++ compartilhado e sua integração com os builds e APIs nativas envolvidos. |
O guia de C++ do React Native apresenta essa abordagem como uma opção para lógica independente de plataforma, não como substituta universal do código nativo. Escolha com base no que a funcionalidade realmente precisa fazer e nas linguagens e configurações que a equipe consegue manter.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Distribuir um módulo reutilizável
Se o módulo é útil para mais de um app, o guia de bibliotecas do React Native descreve como extraí-lo e distribuí-lo como biblioteca, por exemplo, via npm. Para bibliotecas com Codegen, a CLI oferece a opção includesGeneratedCode. Incluir o código gerado pode simplificar o build de quem consome a biblioteca e manter esse código alinhado à implementação publicada.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Best Value
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Há uma contrapartida: o código gerado depende da versão do React Native usada para produzi-lo, e apps em versões anteriores podem encontrar incompatibilidades. Declare a faixa de versões de React Native suportadas e valide-a na matriz de builds da biblioteca; não presuma que o código gerado será compatível com qualquer versão consumidora.
Quick Recap
Como planejar a migração de um módulo legado
- Confirme o contexto do app. Identifique a versão de React Native e se a Nova Arquitetura está habilitada. A partir da 0.76, ela é padrão em novos projetos, não necessariamente em projetos existentes.
- Separe funcionalidade de interface. Determine se o código expõe uma capacidade sem UI, caso de um módulo, ou uma view nativa, caso de um componente.
- Defina a fronteira tipada. Especifique em Flow ou TypeScript os métodos e tipos que o JavaScript precisa usar; evite tratar a especificação como se fosse a implementação.
- Escolha onde a lógica vive. Use código por plataforma quando houver dependência de APIs ou comportamento nativo; considere C++ compartilhado quando o núcleo for de fato independente da plataforma.
- Gere, implemente e registre. Configure Codegen, examine as interfaces produzidas e implemente e registre o módulo em cada plataforma necessária.
- Valide o suporte declarado. Para uma biblioteca distribuída, teste os builds nas versões de React Native que pretende suportar, principalmente se publicar código gerado.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

