Perry vs React Native
React Native permite escrever JavaScript/TypeScript que dirige UI nativa em iOS e Android — componentes de UI mapeiam para widgets da plataforma através de uma ponte JS-para-nativo (ou, na New Architecture, uma camada JSI / Fabric com a mesma forma conceitual). Perry segue uma abordagem diferente: TypeScript é compilado ahead-of-time para código de máquina nativo, e UI nativa é parte do binário compilado, não uma ponte em runtime.
O que é React Native?
React Native é o framework da Meta para construir aplicações mobile usando React. JavaScript roda em um motor embutido — Hermes por padrão, ou JavaScriptCore — e interage com widgets nativos do iOS/Android através de uma ponte (legado) ou JSI/Fabric (New Architecture). O framework é mobile-first (iOS e Android); a Microsoft mantém forks da comunidade para Windows e macOS. React Native tem alimentado aplicações na Meta, Microsoft, Shopify, Discord e muitas outras.
O que é Perry?
Perry compila TypeScript diretamente para código de máquina nativo. Seu módulo perry/ui é um sistema de UI declarativo estilo SwiftUI que compila para widgets nativos da plataforma em tempo de build — não há runtime JS no binário, sem ponte e sem JSI. O mesmo código TypeScript compila para macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, Wear OS, WebAssembly e Web.
Lado a lado
| Funcionalidade | Perry | React Native |
|---|---|---|
| Modelo de execução | Código de máquina nativo compilado AOT | Motor JS (Hermes/JSC) + ponte nativa (ou JSI/Fabric) |
| Motor JS na aplicação | Nenhum | Hermes (padrão) ou JavaScriptCore |
| UI | Widgets nativos — API declarativa estilo SwiftUI | Widgets nativos via React + ponte / Fabric |
| Alvos primários | macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, WASM, Web | iOS, Android (Windows/macOS via forks da comunidade) |
| Binários de servidor / CLI / desktop | Sim (ferramentas CLI, servidores, aplicações desktop) | Não (framework de UI mobile) |
| Ponte entre JS e nativo | Sem ponte — código nativo é o programa | Sim (ponte legada ou JSI/Fabric) |
| Hot reload durante o desenvolvimento | perry dev (auto-recompilação em modo watch) | Fast Refresh (muito rápido) |
| Maturidade | Pré-1.0 | Estável, amplamente implantado em produção |
| Biblioteca de componentes | Widgets básicos do perry/ui + camada de compatibilidade React perry-react | Vasta — React Native + pacotes da comunidade |
Onde o Perry ganha
- +Sem motor JS na aplicação entregue. Binários compilados pelo Perry não carregam Hermes nem JSC; o TypeScript é o executável.
- +Sem custo de ponte / JSI. Chamadas de UI nativa são chamadas diretas de função compiladas, não marshaling JS-para-nativo.
- +Alcance de plataforma mais amplo. Um único código Perry compila para desktop (macOS/Linux/Windows), mobile (iOS/iPadOS/Android), wearables (watchOS/Wear OS), TV (tvOS), WASM e Web. React Native é mobile-first.
- +Binários no lado do servidor e CLI a partir do mesmo compilador — Perry também é um runtime de servidor, não apenas um framework de UI.
- +Desempenho de computação compilado AOT — sem aquecimento, sem JIT, sem viagens de ida e volta pela ponte.
- +perry-react oferece React/JSX que compila para widgets nativos, então o modelo mental do React fica disponível sem um motor JS no binário.
Onde o React Native ganha
- +Ecossistema maduro e testado em batalha, com enorme suporte da comunidade, bibliotecas e ferramentas.
- +Fast Refresh durante o desenvolvimento é o melhor da categoria — mudanças de código aparecem em milissegundos sem recompilar.
- +Enorme bolsa de talentos. Contratar desenvolvedores React Native é fácil; Perry é novo.
- +Pipelines estabelecidos de CI/CD, publicação na App Store / Play Store e atualizações OTA estilo codepush.
- +JSI/Fabric e a New Architecture fecharam grande parte da lacuna histórica de desempenho com nativo, preservando o modelo de programação React.
- +Suporte direto da Meta e de grandes adotantes (Microsoft, Shopify, Amazon) mantém o framework em movimento.
Quando escolher Perry
Escolha o Perry se você quer um único código TypeScript em mobile, desktop, relógio, TV, WASM e na web; se você quer nenhum runtime JS na sua aplicação entregue; se você quer UI nativa sem uma ponte; ou se você já está investido em TypeScript e quer compilação nativa em vez de um motor JS.
Quando escolher React Native
Escolha o React Native se você está construindo aplicações mobile e quer o framework de UI nativa multiplataforma mais maduro, tem uma equipe React existente, depende do ecossistema de bibliotecas do React Native, ou precisa da stack mobile multiplataforma padrão da indústria de hoje.
Veredito
React Native é um framework mobile-first com um runtime JS e uma ponte (agora aprimorada). Perry é um compilador que produz binários nativos a partir de TypeScript, com UI nativa como parte da saída de compilação. Se você quer React em mobile com o ecossistema mais profundo, React Native é a resposta hoje. Se você quer um único código TypeScript que compila para mobile + desktop + relógio + TV sem runtime JS na aplicação, Perry é a resposta.