React Native es un marco de software de interfaz de usuario de código abierto creado por Meta Platforms, Inc. [3] Se utiliza para desarrollar aplicaciones para Android [4] : §Capítulo 1 , [5] [6] Android TV , [7] iOS [ 4] : §Capítulo 1 , [6] macOS , [8] tvOS , [9] Web , [10] Windows [8] y UWP [11] al permitir a los desarrolladores utilizar el marco React junto con las capacidades de la plataforma nativa. [12] Se utiliza para desarrollar aplicaciones de Android e iOS en Facebook, Microsoft y Shopify. [13] También se está utilizando para desarrollar aplicaciones de realidad virtual en Oculus . [14]
En 2012 Mark Zuckerberg comentó: "El mayor error que cometimos como empresa fue apostar demasiado por HTML en lugar de nativo". [15] [16] El uso de HTML5 para la versión móvil de Facebook resultó en una aplicación inestable que recuperaba datos lentamente. [17] Prometió que Facebook pronto ofrecería una mejor experiencia móvil.
Dentro de Facebook, Jordan Walke encontró una manera de generar elementos de interfaz de usuario para iOS a partir de un hilo de JavaScript en segundo plano , que se convirtió en la base del marco web React . Decidieron organizar un Hackathon interno para perfeccionar este prototipo y poder construir aplicaciones nativas con esta tecnología. [18]
En 2015, después de meses de desarrollo, Facebook lanzó la primera versión para la configuración de React JavaScript. Durante una charla técnica, [19] Christopher Chedeau explicó que Facebook ya estaba usando React Native en producción para su aplicación Group y su aplicación Ads Manager. [20]
Los principios de funcionamiento de React Native son prácticamente idénticos a los de React, excepto que React Native no manipula el DOM a través del DOM virtual . [4] : §Capítulo 2 Se ejecuta en un proceso en segundo plano (que interpreta el JavaScript escrito por los desarrolladores) directamente en el dispositivo final y se comunica con la plataforma nativa [4] : §Capítulo 2 a través de datos serializados de forma asincrónica y por lotes puente. [21] [22]
Los componentes de React envuelven el código nativo existente e interactúan con las API nativas a través del paradigma de interfaz de usuario declarativa de React y JavaScript . TypeScript se usa a menudo sobre JavaScript en aplicaciones React Native modernas debido a su mayor seguridad de tipos. [23]
Si bien el estilo React Native tiene una sintaxis similar a CSS, no utiliza HTML ni CSS . [4] : §Capítulo 5 [24] En cambio, los mensajes del hilo de JavaScript se utilizan para manipular vistas nativas.
React Native también está disponible para Windows y macOS , que actualmente es mantenido por Microsoft .
Un programa Hola, mundo en React Native se ve así:
importar { AppRegistry , Texto , Ver , Botón } desde 'react-native' ; importar Reaccionar desde 'reaccionar' ; const HolaMundoApp = () => { const [ cuenta , setCount ] = Reaccionar . utilizar Estado ( 0 ); const incrementoCount = () => { setCount (( prevCount ) => prevCount + 1 ); }; devolver ( < Ver > < Texto > ¡Hola mundo ! < /Texto> <Texto> { cuenta } </Texto> < Botón onPress = { incrementCount } título = "Aumentar recuento" /> < /Ver> );};exportar HelloWorldApp predeterminada ; Registro de aplicaciones . RegisterComponent ( 'HolaMundo' , () => HolaMundoApp );