Perry frente a React Native
React Native te permite escribir JavaScript/TypeScript que controla UI nativa en iOS y Android — los componentes de UI mapean a widgets de la plataforma a través de un puente JS-a-nativo (o, en la New Architecture, una capa JSI / Fabric con la misma forma conceptual). Perry toma un enfoque distinto: TypeScript se compila de forma anticipada a código máquina nativo, y la UI nativa es parte del binario compilado, no un puente en runtime.
¿Qué es React Native?
React Native es el framework de Meta para construir apps móviles usando React. JavaScript se ejecuta en un motor embebido — Hermes por defecto, o JavaScriptCore — e interactúa con widgets nativos de iOS/Android a través de un puente (legacy) o JSI/Fabric (New Architecture). El framework es móvil primero (iOS y Android); Microsoft mantiene forks de la comunidad para Windows y macOS. React Native ha potenciado apps en Meta, Microsoft, Shopify, Discord y muchos otros.
¿Qué es Perry?
Perry compila TypeScript directamente a código máquina nativo. Su módulo perry/ui es un sistema de UI declarativo al estilo SwiftUI que compila a widgets nativos de cada plataforma en tiempo de build — no hay runtime JS en el binario, no hay puente y no hay JSI. El mismo código TypeScript compila a macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, Wear OS, WebAssembly y la Web.
Lado a lado
| Característica | Perry | React Native |
|---|---|---|
| Modelo de ejecución | Código máquina nativo compilado AOT | Motor JS (Hermes/JSC) + puente nativo (o JSI/Fabric) |
| Motor JS en la app | Ninguno | Hermes (por defecto) o JavaScriptCore |
| UI | Widgets nativos — API declarativa al estilo SwiftUI | Widgets nativos vía React + puente / Fabric |
| Plataformas principales | macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, WASM, Web | iOS, Android (Windows/macOS vía forks de la comunidad) |
| Binarios servidor / CLI / escritorio | Sí (herramientas CLI, servidores, apps de escritorio) | No (framework de UI móvil) |
| Puente entre JS y nativo | Sin puente — el código nativo es el programa | Sí (puente legacy o JSI/Fabric) |
| Hot reload durante el desarrollo | perry dev (recompilación automática en modo watch) | Fast Refresh (muy rápido) |
| Madurez | Pre-1.0 | Estable, ampliamente desplegado en producción |
| Librería de componentes | Widgets core de perry/ui + capa perry-react de compatibilidad con React | Vasta — React Native + paquetes de la comunidad |
Dónde gana Perry
- +Sin motor JS en la app distribuida. Los binarios compilados con Perry no llevan Hermes ni JSC; el TypeScript es el ejecutable.
- +Sin coste de puente / JSI. Las llamadas a UI nativa son llamadas a función directas y compiladas, no marshaling de JS a nativo.
- +Mayor alcance de plataformas. Un único código Perry compila a escritorio (macOS/Linux/Windows), móvil (iOS/iPadOS/Android), wearables (watchOS/Wear OS), TV (tvOS), WASM y Web. React Native es móvil primero.
- +Binarios de servidor y CLI desde el mismo compilador — Perry también es un runtime de servidor, no solo un framework de UI.
- +Rendimiento de cómputo compilado AOT — sin warmup, sin JIT, sin idas y vueltas a través de un puente.
- +perry-react te da React/JSX que compila a widgets nativos, así que el modelo mental de React está disponible sin un motor JS en el binario.
Dónde gana React Native
- +Ecosistema maduro y probado en batalla con un enorme soporte de la comunidad, librerías y tooling.
- +Fast Refresh durante el desarrollo es lo mejor de su categoría — los cambios de código aparecen en milisegundos sin recompilar.
- +Enorme bolsa de talento. Contratar desarrolladores de React Native es fácil; Perry es nuevo.
- +Pipelines establecidos de CI/CD, publicación en App Store / Play Store y actualizaciones OTA estilo codepush.
- +JSI/Fabric y la New Architecture han cerrado gran parte del histórico hueco de rendimiento con lo nativo, preservando el modelo de programación de React.
- +Soporte directo de Meta y de grandes adoptantes (Microsoft, Shopify, Amazon) mantiene el framework en movimiento.
Cuándo elegir Perry
Elige Perry si quieres un único código TypeScript a través de móvil, escritorio, watch, TV, WASM y la web; si no quieres runtime JS en tu app distribuida; si quieres UI nativa sin un puente; o si ya estás invertido en TypeScript y quieres compilación nativa en lugar de un motor JS.
Cuándo elegir React Native
Elige React Native si construyes apps móviles y quieres el framework de UI nativa multiplataforma más maduro, si tienes un equipo React existente, si dependes del ecosistema de librerías de React Native, o si necesitas el stack móvil multiplataforma estándar de la industria hoy.
Veredicto
React Native es un framework móvil primero con un runtime JS y un puente (ahora mejorado). Perry es un compilador que produce binarios nativos a partir de TypeScript, con UI nativa como parte de la salida del compilador. Si quieres React en móvil con el ecosistema más profundo, React Native es la respuesta hoy. Si quieres un único código TypeScript que compile a móvil + escritorio + watch + TV sin runtime JS en la app, Perry es la respuesta.