Perry vs React Native
React Native permette di scrivere JavaScript/TypeScript che pilota UI nativa su iOS e Android — i componenti UI mappano su widget della piattaforma tramite un bridge JS-to-native (o, nella New Architecture, un layer JSI / Fabric con la stessa forma concettuale). Perry sceglie un approccio diverso: TypeScript è compilato ahead-of-time in codice macchina nativo, e l'UI nativa è parte del binario compilato, non un bridge a runtime.
Cos'è React Native?
React Native è il framework di Meta per costruire app mobile usando React. JavaScript gira in un motore embedded — Hermes di default, o JavaScriptCore — e interagisce con i widget nativi iOS/Android tramite un bridge (legacy) o JSI/Fabric (New Architecture). Il framework è mobile-first (iOS e Android); Microsoft mantiene fork della community per Windows e macOS. React Native ha alimentato app in Meta, Microsoft, Shopify, Discord e molte altre.
Cos'è Perry?
Perry compila TypeScript direttamente in codice macchina nativo. Il suo modulo perry/ui è un sistema UI dichiarativo in stile SwiftUI che compila in widget nativi della piattaforma a build time — non c'è alcun runtime JS nel binario, nessun bridge e nessun JSI. Lo stesso codice TypeScript compila per macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, Wear OS, WebAssembly e il Web.
Fianco a fianco
| Caratteristica | Perry | React Native |
|---|---|---|
| Modello di esecuzione | Codice macchina nativo compilato AOT | Motore JS (Hermes/JSC) + bridge nativo (o JSI/Fabric) |
| Motore JS nell'app | Nessuno | Hermes (default) o JavaScriptCore |
| UI | Widget nativi — API dichiarativa in stile SwiftUI | Widget nativi via React + bridge / Fabric |
| Target principali | macOS, iOS, iPadOS, Android, Linux, Windows, watchOS, tvOS, WASM, Web | iOS, Android (Windows/macOS via fork della community) |
| Binari per server / CLI / desktop | Sì (strumenti CLI, server, app desktop) | No (framework UI mobile) |
| Bridge tra JS e nativo | Nessun bridge — il codice nativo è il programma | Sì (bridge legacy o JSI/Fabric) |
| Hot reload durante lo sviluppo | perry dev (ricompilazione automatica in watch-mode) | Fast Refresh (molto veloce) |
| Maturità | Pre-1.0 | Stabile, ampiamente distribuito in produzione |
| Libreria di componenti | Widget core di perry/ui + layer di compatibilità perry-react | Vasta — React Native + pacchetti della community |
Dove vince Perry
- +Nessun motore JS nell'app distribuita. I binari compilati da Perry non trasportano Hermes o JSC; il TypeScript è l'eseguibile.
- +Nessun costo di bridge / JSI. Le chiamate UI native sono chiamate di funzione compilate dirette, non marshaling JS-to-native.
- +Copertura di piattaforme più ampia. Un unico codice Perry compila per desktop (macOS/Linux/Windows), mobile (iOS/iPadOS/Android), wearable (watchOS/Wear OS), TV (tvOS), WASM e Web. React Native è mobile-first.
- +Binari server-side e CLI dallo stesso compilatore — Perry è anche un runtime server, non solo un framework UI.
- +Prestazioni di calcolo compilate AOT — nessun warmup, nessun JIT, nessun round trip sul bridge.
- +perry-react ti offre React/JSX che compila in widget nativi, così il modello mentale di React è disponibile senza un motore JS nel binario.
Dove vince React Native
- +Ecosistema maturo e collaudato sul campo con enorme supporto della community, librerie e tooling.
- +Fast Refresh durante lo sviluppo è il migliore della categoria — i cambiamenti del codice appaiono in millisecondi senza ricompilazione.
- +Enorme bacino di talenti. Assumere sviluppatori React Native è facile; Perry è nuovo.
- +Pipeline consolidate di CI/CD, pubblicazione su App Store / Play Store e aggiornamenti OTA in stile codepush.
- +JSI/Fabric e la New Architecture hanno chiuso gran parte del divario di prestazioni storico con il nativo, preservando il modello di programmazione di React.
- +Supporto diretto da Meta e dai principali adopter (Microsoft, Shopify, Amazon) mantiene il framework in movimento.
Quando scegliere Perry
Scegli Perry se vuoi un unico codice TypeScript su mobile, desktop, watch, TV, WASM e il web; se non vuoi alcun runtime JS nella tua app distribuita; se vuoi UI nativa senza bridge; o se sei già investito in TypeScript e vuoi compilazione nativa piuttosto che un motore JS.
Quando scegliere React Native
Scegli React Native se stai costruendo app mobile e vuoi il framework di UI nativa multipiattaforma più maturo, hai un team React esistente, dipendi dall'ecosistema di librerie React Native, o hai bisogno dello stack mobile multipiattaforma standard del settore di oggi.
Verdetto
React Native è un framework mobile-first con un runtime JS e un bridge (ora migliorato). Perry è un compilatore che produce binari nativi da TypeScript, con UI nativa come parte dell'output di compilazione. Se vuoi React su mobile con l'ecosistema più profondo, React Native è la risposta oggi. Se vuoi un unico codice TypeScript che compila per mobile + desktop + watch + TV senza runtime JS nell'app, Perry è la risposta.