> For the complete documentation index, see [llms.txt](https://rangle-io.gitbook.io/react-native-workshop/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rangle-io.gitbook.io/react-native-workshop/master.md).

# Introduction

## React Native Workshop

![rangle.io](/files/-LZp6BiS-ZTUw10Ao0e1)

## Who is this material for?

This material is for those who are familiar with ReactJS and are willing to dive into developing mobile apps with [React Native](https://facebook.github.io/react-native). For this course we assume that our audience has solid knowledge of JavaScript, ES6 syntax, [Redux](https://github.com/reactjs/redux), CSS, and Flexbox for layouts.

## What is React Native?

React Native is a framework for building mobile applications with JavaScript and ReactJS by leveraging native UI components.

In ReactJS we have a virtual DOM which reflects the real DOM.

Each element corresponds to a node in the Virtual DOM and when an element changes, that change is reflected onto the real DOM. In React Native we are not using the DOM but Native Components which are provided by specific platforms. Instead of dealing with WebViews, we use actual platform specific native components.

For example, instead of using HTML elements such as `<div>` & `<span>` we use the native components such as `<View>` & `<Text>`. This course we will introduce other, more complex, native components and some platform specific components which look and behave differently on each platform.

React Native embraces the *Learn Once And Apply Everywhere* paradigm, which is quite different from *Write Once Use Everywhere*. With React Native we can use the concepts learned from React to build separate apps for Android and iOS reusing most of the business logic code for both platforms.

## How does it work?

React Native has an embedded instance of [JavaScriptCore](https://facebook.github.io/react-native/docs/javascript-environment.html). When your app starts, the JavaScript code is loaded and executed in this engine.

Using the `RCTBridgeModule` it bridges native code to JavaScript. This allows the JSX components to have bindings to native UI components.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://rangle-io.gitbook.io/react-native-workshop/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
