1 of 22

React Native

James Walker, Will Scurria,

Soumya Mahavadi, Osoo Kwon

​

April 8, 2025

​

​

2 of 22

Introduction

01

3 of 22

4 of 22

5 of 22

React v/s React Native

  • Runs in a web browser

​

  • Processed by browser’s single threaded event loop
  • Runs in a mobile app runtime

​

  • Processed in its own engine (e.g. Hermes)

6 of 22

Why React Native

02

7 of 22

Why React Native?

Native-Like Performance

Allows developers to use the same code to build apps for both iOS and Android

Allows developers to instantly see code changes in the app without losing its current state

Delivers an app experience that feels just like a fully native app no matter which platform via native components:

<View>, <Text>, <Button>

Developed and backed by Meta: extensive resources, libraries, and community support

Single Codebase

Hot Reloading

Large Community

8 of 22

Understanding JSX

  • A syntax extension for JavaScript that allows developers to write HTML-like code directly within JavaScript files

9 of 22

React Native vs Other Cross-Platform Tools

  • Backed by Google
  • Uses Dart
  • Own rendering engine
  • HTML, JavaScript, CSS
  • Relies on WebView

Flutter

Ionic

NativeScript

  • Uses JavaScript
  • Native performance
  • Native APIs

10 of 22

Demo

03

11 of 22

List Rendered With JavaScript .map()

12 of 22

List Rendered with React Native Flatlist

Note: Stuttering caused by computer simultaneously screen recording and simulating a virtual phone and is not inherent to this implementation.

13 of 22

How React Native works

04

14 of 22

What’s in an app

15 of 22

Building the app for production

  1. Babel - Transpiles React code to plain JavaScript
  2. Metro bundler - Bundles all the .js files to one optimized, production-ready .js file
  3. React Native’s hermesc - Compiles the .js to bytecode
  4. Packaging - .ipa/.apk containing everything iOS/Android needs to run your app

​

​

16 of 22

Running an app

17 of 22

What the device needs

​

  1. Something to execute the JavaScript bytecode that the developer wrote
  2. Something that knows how to display native components like <Text /> and <Image />
  3. Something to perform native operations like accessing the camera, using GPS, or accessing the file system

18 of 22

19 of 22

Wrapping up

20 of 22

Q/A

21 of 22

Sources

22 of 22

Thanks!

Do you have any questions?

beforeido.dev@gmail.com

https://tarheels.live/beforeido/

CREDITS: This presentation template was created by Slidesgo, and includes icons by Flaticon, and infographics & images by Freepik