paint-brush
React vs React Native: A Pocket Guide for Beginnersby@qadeemarif
192 reads

React vs React Native: A Pocket Guide for Beginners

by Qadeem ArifMay 29th, 2023
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

React and React Native are front-end technologies that use component-driven development. Most people confuse React Js with React Native as they share the same name and programming language. These technologies are developed by Meta for different platforms, use cases, and development operations. This technical guide will clear all your misconceptions about choosing React or React Native.
featured image - React vs React Native: A Pocket Guide for Beginners
Qadeem Arif HackerNoon profile picture

React and React Native are front-end technologies that use component-driven development and are known for crafting compelling user interfaces. Most people confuse React Js with React Native as they share the same name and programming language. These technologies are developed by Meta (Formerly known as Facebook) for different platforms, use cases, and development operations. This technical guide will clear all your misconceptions about choosing React or React Native.

React and React Native: Birds Eye View

So, let's talk about React and React Native, the dynamic duo of app development! React is a JavaScript library that helps you build reusable UI components for web apps. It's all about making things interactive and animated on the front end. And then we have React Native, which is like the twin sibling of React, but it's all about native mobile apps! With React Native, you can create full-fledged apps for iOS and Android using the same principles as React.

Where do they Differ?

React and React Native share various similarities but are built for different purposes.

Platform

As mentioned earlier, react is for the web while react native is used to create cross-platform native applications for both Android and iOS. You can initialize a React app using any text editor and typing the command in the terminal

“npx create-react-app [directory name]”
(NodeJs is required to run this command), while React Native require a complete development environments setup such as Android Studio or XCode.

Animations

React has all the powers of CSS and other styling web frameworks such as Bootstrap and TailWind CSS. This makes styling and animation a simple task. On the other hand, React Native comes with an Application Programming Interface (API) to enable animations in mobile applications. 

Reusability

React components are generally built in HTML and CSS and can be easily reused across several web pages or web applications. React components can also be uploaded to npm (Node Package Manager) and shared across projects, making them very reusable. React Native components are built exclusively for mobile app development and are written using React Native's own collection of components, such as View, Text, Image, and so on. On iOS and Android, these components are rendered as native UI components, delivering a native appearance and feel.

Workflow

React web apps can be run directly in web browsers and development typically involves using web browsers for testing and debugging, and tools like Webpack or Babel for building and bundling. JavaScript and React Native's own set of components are used to create React Native apps, which are subsequently converted into native code for the iOS and Android platforms. 

Simple Program in React and React Native

Check out this simple program in React and React Native.

Here goes the same program for React Native

We can clearly see that React uses HTML structures such as div tags and h1 tags, while in react native these elements are replaced by View tag and text tag.

To Conclude

Although React and React Native have commonalities in component-based design and JavaScript syntax, they differ in component reusability and workflow owing to their target platforms (web vs. mobile). React and React Native provide strong capabilities for creating interactive and dynamic user interfaces in their respective ecosystems, making them attractive alternatives for modern app development.