React Native
| Tipus | entorn de treball de JavaScript i programari |
|---|---|
| Versió inicial | 2015 |
| Versió estable | |
| Llicència | llicència MIT |
| Característiques tècniques | |
| Sistema operatiu | multiplataforma |
| Escrit en | JavaScript, Java, C++, Objective-C i Python |
| Equip | |
| Desenvolupador(s) | Meta Platforms |
| Més informació | |
| Lloc web | reactnative.dev |
| Stack Exchange | Etiqueta |
| Id. Subreddit | reactnative |
|
| |
React Native és un marc de programari d'IU de codi obert desenvolupat per Meta Platforms (anteriorment Facebook Inc.).[1] S'utilitza per desenvolupar aplicacions per a Android,[2][3] Android TV,[4] iOS, [3] macOS,[5] tvOS,[6] Web,[7] Windows[5] i UWP[8] permetent als desenvolupadors utilitzar el marc de treball React juntament amb les capacitats natives de la plataforma.[9] S'utilitza per desenvolupar aplicacions per a Android i iOS a Facebook, Microsoft i Shopify.[10] També s'utilitza per desenvolupar aplicacions de realitat virtual a Oculus.[11]
Història
[modifica]El 2012, Mark Zuckerberg va comentar: "L'error més gran que vam cometre com a empresa va ser apostar massa per HTML5 en comptes del natiu".[12][13] L'ús d'HTML5 per a la versió mòbil de Facebook va resultar en una aplicació inestable que recuperava les dades lentament.[14] Va prometre que Facebook aviat oferiria una millor experiència mòbil.
Dins de Facebook, Jordan Walke va desenvolupar un programari que generava elements d'IU per a iOS a partir d'un fil de JavaScript en segon pla, que es va convertir en la base del framework web React. Van decidir organitzar un hackathon intern per perfeccionar aquest prototip per tal de poder crear aplicacions natives amb aquesta tecnologia.[15]
El 2015, després de mesos de desenvolupament, Facebook va llançar la primera versió de la configuració de React JavaScript. Durant una xerrada tècnica,[16] Christopher Chedeau va explicar que Facebook ja utilitzava React Native en producció per a la seva aplicació Group i la seva aplicació Ads Manager.[17]
A l'octubre de 2025, Meta va anunciar que donaria React, React Native i JSX (XML de JavaScript) a una nova React Foundation, que forma part de la Linux Foundation.[18]
Implementació
[modifica]Els principis de funcionament de React Native són pràcticament idèntics als de React, excepte que React Native no manipula el DOM a través del DOM virtual. S'executa en un procés en segon pla (que interpreta el JavaScript escrit pels desenvolupadors) directament al dispositiu final i es comunica amb el plataforma nadiua mitjançant dades serialitzades sobre un pont asíncron i per lots.[19]
Els components de React envolten el codi natiu existent i interactuen amb les API natives a través del paradigma d'IU declarativa de React i JavaScript.[20] TypeScript s'utilitza sovint en lloc de JavaScript en aplicacions React Native modernes a causa de la seva major seguretat de tipus.[21]
Tot i que l'estil de React Native té una sintaxi similar a la de CSS, no utilitza HTML ni CSS.[22] En comptes d'això, els missatges del fil de JavaScript s'utilitzen per manipular les vistes natives. Mitjançant complements, Tailwind també es pot utilitzar amb React Native.
Exemple de "Hola, món!"
[modifica]import { AppRegistry, Text, View, Button } from 'react-native';
import React from 'react';
const HelloWorldApp = () => {
const [count, setCount] = React.useState(0);
const incrementCount = () => {
setCount((prevCount) => prevCount + 1);
};
return (
<View>
<Text>Hello world!</Text>
<Text>{count}</Text>
<Button onPress={incrementCount} title="Increase Count" />
</View>
);
};
export default HelloWorldApp;
AppRegistry.registerComponent('HelloWorld', () => HelloWorldApp);
Exemple de TypeScript
[modifica]import { Button, Text, View } from "react-native";
import React from "react";
interface CounterProps {
title: string; // Required prop
baseNumber?: number; // Optional prop
}
const Counter: React.FC<CounterProps> = ({ title, baseNumber }) => {
const [count, setCount] = React.useState<number>(baseNumber || 0);
const incrementCount = (): void => setCount((prevCount) => prevCount + 1);
return (
<View>
<Text>{count}</Text>
<Button onPress={incrementCount} title={title}></Button>
</View>
);
};
Referències
[modifica]- ↑ «Chapter 1. What Is React Native?» (en anglès). oreilly.com. O’Reilly Media, Inc.. [Consulta: 30 juliol 2020].
- ↑ «Android Release for React Native» (en anglès), 14-09-2015.
- 1 2 Shankland, Stephen. «Mozilla's radical open-source move helped rewrite rules of tech» (en anglès). CNET, 29-03-2018. [Consulta: 11 maig 2022].
- ↑ «Building For TV Devices · React Native» (en anglès). reactnative.dev. [Consulta: 2 octubre 2020].
- 1 2 «React Native for Windows + macOS · Build native Windows & macOS apps with Javascript and React» (en anglès). microsoft.github.io. [Consulta: 2 octubre 2020].
- ↑ «React Native for Apple TV» (en anglès americà). React Native for Apple TV. Arxivat de l'original el 2020-09-21. [Consulta: 2 octubre 2020].
- ↑ «React Native for Web» (en anglès). GitHub. [Consulta: 6 novembre 2019].
- ↑ Windows Apps Team. «React Native on the Universal Windows Platform» (en anglès). blogs.windows.com, 13-04-2016. [Consulta: 6 novembre 2016].
- ↑ «Out-of-Tree Platforms». reactnative.dev. Facebook, Inc.. [Consulta: 30 juliol 2020].
- ↑ «React Native Showcase» (en anglès). react.native.dev. [Consulta: 4 abril 2023].
- ↑ «React Native in H2 2021 · React Native» (en anglès). reactnative.dev. [Consulta: 20 agost 2021].
- ↑ «Zuckerberg's Biggest Mistake? 'Betting on HTML5'» (en anglès). Mashable. [Consulta: 7 abril 2018].
- ↑ Zuckerberg, Mark. «Fireside Chat With Facebook Founder and CEO Mark Zuckerberg» (en anglès). TechCrunch, 12-09-2012. [Consulta: 16 agost 2021].
- ↑ Warren, Christina. «Zuckerberg's Biggest Mistake? 'Betting on HTML5'» (en anglès). Mashable. [Consulta: 29 octubre 2020].
- ↑ «A short Story about React Native» (en anglès). jobninja.com. Arxivat de l'original el 5 June 2023. [Consulta: 16 gener 2018].
- ↑ Christopher, Chedeau. «A Deep Dive into React Native» (en anglès). YouTube. [Consulta: 16 gener 2018].
- ↑ «React Native: Bringing modern web techniques to mobile» (en anglès), 26-03-2015.
- ↑ «Meta will move React to Linux Foundation to address vendor dominance fears» (en anglès). The Register, 09-10-2025.
- ↑ «Bridging in React Native» (en anglès), 14-10-2015. [Consulta: 16 gener 2018].
- ↑ «How to Create a React Native Document Scanner» (en anglès). sdk.docutain.com. INFOSOFT. [Consulta: 6 setembre 2024].
- ↑ «Using TypeScript» (en anglès). reactnative.dev. Meta Platforms, Inc.. [Consulta: 14 juliol 2023].
- ↑ «React Native Style» (en anglès). [Consulta: 24 febrer 2021].