React Native
React Native ist ein quelloffenes UI-Framework zur Erstellung von Applikationen für Android,[1][2] Android TV,[3] iOS,[2] macOS,[4] tvOS,[5] Web,[6] Windows[4] und UWP[7], welches von Meta Platforms, Inc.[8] entwickelt wird. Es ermöglicht Entwicklern, native Systemfunktionen bei der Entwicklung mit dem React-Framework zu verwenden.[9] Es wird unter anderem bei Facebook, Microsoft und Shopify zur Entwicklung der eigenen Android- und iOS-Applikationen verwendet.[10]
Geschichte
In 2012 kommentierte Mark Zuckerberg: "Der größte Fehler, den wir als Unternehmen gemacht haben, war zu sehr auf HTML im Gegensatz zu nativer Entwicklung zu setzen".[11][12] Die Nutzung von HTML5 in der mobilen Facebook-App sorgte laut eigener Aussage für Instabilität und eine insgesamt langsamere Applikation.[13] Er versprach zugleich, Facebook würde bald eine bessere mobile Nutzungserfahrung schaffen.
Jordan Walke, der zu dieser Zeit bei Facebook arbeitet, fand einen Weg, UI-Elemente in iOS aus einem JavaScript Thread, welcher im Hintergrund läuft, zu erzeugen. Dies bekam die Basis für das React-Framework. Facebook entschied sich dazu, einen internen Hackathon abzuhalten, um diesen Prototypen zu perfektionieren und künftig native Mobile-Apps mit dieser Technologie entwickeln zu können.[14]
Nach Monaten der Entwicklung, veröffentlichte Facebook die erste Version in 2015 auf der React JavaScript Configuration Konferenz. Während einer technischen Keynote[15] erklärte Christopher Chedeau, dass Facebook React Native bereits produktiv in einigen der eigenen Apps, der Group App und der Ads Manager App, verwendete.[16]
Implementierung
Die Funktionsprinzipien von React Native sind quasi identisch zu React, mit der Ausnahme, dass React Native nicht den DOM über den Virtual DOM manipuliert. Es läuft in einem Hintergrundprozess (welcher das vom Entwickler geschriebene JavaScript interpretiert) direkt auf dem Endgerät und kommuniziert mit dem Betriebssystem über serialisierte Daten, welche gestapelt über eine asynchrone Brücke ausgetauscht werden.[17][18]
React-Komponenten abstrahieren den nativen Code und interagieren mit System-APIs mittels Reacts deklarativem UI-Programmierparadigma und JavaScript. TypeScript wird bei der Entwicklung moderner React Native Applikationen aufgrund der erhöhten Typsicherheit jedoch oft gegenüber JavaScript bevorzugt. [19]
Obwohl das Styling in React Native eine ähnliche Syntax zu CSS nutzt, verwendet es kein HTML oder CSS. [20] Statt dessen werden Nachrichten des JavaScript-Threads verwendet, um native Views zu manipulieren.
React Native ist auch für Windows and macOS verfügbar, welches derzeit jeweils von Microsoft weiterentwickelt wird.
„Hello World“ Beispiel
Ein „Hello, World“ Programm kann in React Native wie folgt implementiert werden:
import { AppRegistry, Text } from 'react-native';
import * as React from 'react';
const HelloWorldApp = () => {
const [count, setCount] = React.useState(0);
const incrementCount = () => {
setCount(count + 1);
};
return (
<div>
<Text>Hello world!</Text>
<h5>{count}</h5>
<button type={'button'} onClick={incrementCount}>
Increase Count
</button>
</div>
);
}
export default HelloWorldApp;
AppRegistry.registerComponent('HelloWorld', () => HelloWorldApp);
Siehe auch
- React
- NativeScript
- Xamarin
- Titanium SDK
- Apache Cordova
- Flutter (Software)
- Qt (Bibliothek)
- Codename One
Literatur
- Bonnie Eisenman: Learning React Native. O'Reilly, 2016, ISBN 978-1-4919-2900-1.
[[Kategorie:Programmierung]]
- ↑ Android Release for React Native. 14. September 2015 .
- ↑ a b Stephen Shankland: Mozilla's radical open-source move helped rewrite rules of tech. In: CNET. 29. März 2018, abgerufen am 11. Mai 2022.
- ↑ Building For TV Devices · React Native. In: reactnative.dev. Abgerufen am 2. Oktober 2020 (englisch).
- ↑ a b React Native for Windows + macOS · Build native Windows & macOS apps with Javascript and React. In: microsoft.github.io. Abgerufen am 2. Oktober 2020.
- ↑ React Native for Apple TV. In: React Native for Apple TV. Abgerufen am 2. Oktober 2020 (amerikanisches Englisch).
- ↑ React Native for Web. In: GitHub. Abgerufen am 6. November 2019.
- ↑ Windows Apps Team: React Native on the Universal Windows Platform. In: blogs.windows.com. 13. April 2016, abgerufen am 6. November 2016.
- ↑ Chapter 1. What Is React Native? In: oreilly.com. O’Reilly Media, Inc., abgerufen am 30. Juli 2020.
- ↑ Out-of-Tree Platforms. In: reactnative.dev. Facebook, Inc., abgerufen am 30. Juli 2020.
- ↑ React Native Showcase. In: react.native.dev. Abgerufen am 4. April 2023 (englisch).
- ↑ Zuckerberg's Biggest Mistake? 'Betting on HTML5'. Mashable, abgerufen am 7. April 2018.
- ↑ Mark Zuckerberg: Fireside Chat With Facebook Founder and CEO Mark Zuckerberg. In: TechCrunch. 12. September 2012, abgerufen am 16. August 2021.
- ↑ Christina Warren: Zuckerberg's Biggest Mistake? 'Betting on HTML5'. In: Mashable. Abgerufen am 29. Oktober 2020 (englisch).
- ↑ A short Story about React Native. Abgerufen am 16. Januar 2018.
- ↑ Chedeau Christopher: A Deep Dive into React Native. In: YouTube. Abgerufen am 16. Januar 2018.
- ↑ React Native: Bringing modern web techniques to mobile. 26. März 2015 .
- ↑ Bridging in React Native. 14. Oktober 2015, abgerufen am 16. Januar 2018.
- ↑ How we build React Native app: 7 things which save your development time. Part 2. Abgerufen am 6. November 2019.
- ↑ Using TypeScript. In: reactnative.dev. Meta Platforms, Inc., abgerufen am 14. Juli 2023.
- ↑ React Native Style. Abgerufen am 24. Februar 2021.