<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Sokaribo Senibo</title>
    <description>The latest articles on DEV Community by Sokaribo Senibo (@sokaribosenibo).</description>
    <link>https://dev.to/sokaribosenibo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F771527%2F126c933b-1402-4100-97ee-497ed077b2c1.jpg</url>
      <title>DEV Community: Sokaribo Senibo</title>
      <link>https://dev.to/sokaribosenibo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sokaribosenibo"/>
    <language>en</language>
    <item>
      <title>How to create a Bottom Tab Navigator using react-navigation in React Native</title>
      <dc:creator>Sokaribo Senibo</dc:creator>
      <pubDate>Thu, 09 Feb 2023 10:10:42 +0000</pubDate>
      <link>https://dev.to/sokaribosenibo/how-to-create-a-bottom-tab-navigator-using-react-navigation-in-react-native-4ff1</link>
      <guid>https://dev.to/sokaribosenibo/how-to-create-a-bottom-tab-navigator-using-react-navigation-in-react-native-4ff1</guid>
      <description>&lt;p&gt;Have you ever used a mobile application without a navigation tab? Chances are, the answer is no. Navigation tabs are crucial components in mobile applications, as they offer a straightforward and organized method for navigating through various sections. In the case of cross-platform mobile applications, such as React Native apps, navigation tabs can be developed using the react-navigation library. This library simplifies the creation of navigation tabs, resulting in navigation tabs that are both efficient and functional.&lt;/p&gt;

&lt;p&gt;This article outlines a step-by-step guide on how to use the react-navigation library to create bottom tab navigation in React Native apps.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Prerequisite&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Basic understanding of React Native.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Node.js v14 or greater installed&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;NPM v7 or greater installed&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A code editor (I’ll be using VS Code)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A physical mobile device or emulator&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Getting started with React Native&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;React Native is a cross-platform framework for building mobile apps that can run on both iOS and Android. It allows developers to build fast-responsive apps using familiar technologies such as HTML, CSS, and JavaScript.&lt;/p&gt;

&lt;p&gt;Think of React Native as building a house. Just like how you need different components, such as bricks, roofing sheets, doors, and paint, to build a physical house, you also need various prebuilt components in React Native to create your mobile app. These native components handle everything from basic tasks such as displaying text to complex features such as integrating maps and charts. As a result, React Native apps tend to have a more native look and feel compared to other cross-platform development frameworks that rely on web view to display a mobile app.&lt;/p&gt;

&lt;p&gt;Thanks to React Native's wide range of customizable components and its large open-source community, which constantly contributes to its development. React Native has become an attractive option for developers and the go-to option for major companies such as Facebook, Airbnb, Tesla, and Uber.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What is react-navigation?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;React-Navigation is a third-party library of React Native that allows you to add to your application various navigation patterns such as stack navigation, drawer navigation, tab-based navigation, and more.&lt;/p&gt;

&lt;p&gt;One of the best parts of React-Navigation is that it is written entirely in JavaScript, providing a single API for building navigation across both iOS and Android. This means that you don't have to worry about the different native navigation components for each individual platform, but instead, you can focus on the navigation logic and customization of your app.&lt;/p&gt;

&lt;p&gt;The react-navigation library provides the ability to create a bottom tab navigation, which is a navigation pattern that allows users to quickly and easily access the major sections of your application through a series of icons with labels located at the bottom of the screen. Placing the tabs at the bottom of the screen, below the app's main content, makes the icons easily accessible with a simple thumb gesture. Each icon represents a different section of the application, and tapping on the icon navigates the user to that section.&lt;/p&gt;

&lt;p&gt;Now that we've covered a basic overview of React Native and the react-navigation library, let's get started with building a bottom-tab navigation using the react-navigation library. Here is a quick outline of the process we will take:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create project and install relevant libraries&lt;/li&gt;
&lt;li&gt;Set up navigator screens
&lt;/li&gt;
&lt;li&gt;Build bottom tab navigation component&lt;/li&gt;
&lt;li&gt;Export component and run application&lt;/li&gt;
&lt;li&gt;Customize the bottom tab navigation&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Each of the processes has a series of steps you have to follow. Alright then, let's get started.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Create project and install relevant libraries&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 1: Requirements&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The easiest way to get started with building a React Native app is by using Expo Go. Expo is a powerful set of tools and services that make it easier to develop, test and deploy React Native apps on both iOS and Android devices.&lt;/p&gt;

&lt;p&gt;To get started, we'll need the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A recent version of Node.js installed on your computer. The latest version can be downloaded from the official website (&lt;a href="https://nodejs.org/" rel="noopener noreferrer"&gt;https://nodejs.org/&lt;/a&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A physical mobile device or an emulator with the Expo Go app installed from either the Google Play Store or the iOS App Store respectively.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 2: Install Expo Command Line Interface (CLI)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The Expo CLI is required to create and run React Native projects, as it provides a set of tools and services for building, testing, and deploying applications. It also includes additional features such as live reloading and easy access to native APIs.&lt;/p&gt;

&lt;p&gt;To install the &lt;code&gt;Expo CLI&lt;/code&gt;, open your terminal and run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;install&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;g&lt;/span&gt; &lt;span class="nx"&gt;expo&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;cli&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Step 3: Create a React Native Project&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In this step, we'll create a new React Native project using the Expo CLI we just installed.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;To create a new project named “BottomTabApp”, run the following command in your terminal:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;npx&lt;/span&gt; &lt;span class="nx"&gt;create&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;expo&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="nx"&gt;BottomTabApp&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Once the project is created, change to the project directory by running the following command in the terminal:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;cd&lt;/span&gt; &lt;span class="nx"&gt;BottomTabApp&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Changing the directory enables you to run the command to start the development server for your React Native project in that specific project’s environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 4: Install the Required Packages&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In this step, we’ll install the required dependencies to ensure that your React Native project runs smoothly. These dependencies include &lt;code&gt;npm&lt;/code&gt; packages and the &lt;code&gt;@react-navigation/bottom-tabs package&lt;/code&gt;, which is required to add the bottom tab navigation to your project.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;To install the &lt;code&gt;npm&lt;/code&gt; packages, run the following command in your terminal:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To install the &lt;code&gt;@react-navigation/bottom-tabs&lt;/code&gt; package, also run the following command in your terminal:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;npm&lt;/span&gt; &lt;span class="nx"&gt;install&lt;/span&gt; &lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;react&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;navigation&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;bottom&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;tabs&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 5: Explore the Project Structure&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Your project directory structure should look like the following:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fejlz6mhssdrzzoepdlln.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fejlz6mhssdrzzoepdlln.png" alt="Project Directory Structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 6: Run the development server&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Finally, start the project server by running the following command:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;npx&lt;/span&gt; &lt;span class="nx"&gt;expo&lt;/span&gt; &lt;span class="nx"&gt;start&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After starting the development server, you will get the following output from your terminal.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3mxgasgxe5vt1tfoxa1q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3mxgasgxe5vt1tfoxa1q.png" alt="Terminal out"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This confirms that you should now be able to preview the app on an emulator or physical device.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;To view the app on your physical Android or iOS device:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Make sure the device is connected to the same network as your laptop.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For Android, open the Expo Go app and scan the QR code displayed in your terminal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For iOS, use the default iOS camera app to scan the QR code in your terminal&lt;/p&gt;

&lt;p&gt;Alternatively, if you have an emulator installed on your laptop, you can view the app by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Typing "a" if it's an Android emulator.&lt;/li&gt;
&lt;li&gt;Typing "i" if it's an iOS emulator.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Expo Go will automatically reload when changes are made, so you can quickly see the results of your changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Set up navigator screens&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;In the following steps, we will be creating and setting up the required screens for each of the tabs in our bottom tab navigation.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 7: Create tabs pages&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Within the &lt;code&gt;BottomTabApp&lt;/code&gt; directory, create a new file for each tab you want in your app. In this example, we'll create three files: &lt;code&gt;Home.js&lt;/code&gt;, &lt;code&gt;Settings.js&lt;/code&gt;, and &lt;code&gt;Profile.js&lt;/code&gt;. Once you have created these files, your new project directory structure should look like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3oeg4fsvp6n5qr9fgvk4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3oeg4fsvp6n5qr9fgvk4.png" alt="Project Directory Structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 8: Import Page Components in Home.js:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Import the required &lt;code&gt;React&lt;/code&gt;, &lt;code&gt;View&lt;/code&gt;, and &lt;code&gt;Text&lt;/code&gt; components from the &lt;code&gt;react-native&lt;/code&gt; library in the &lt;code&gt;Home.js&lt;/code&gt; file. Importing these components allows you to construct the user interface for the screen.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;View&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Text&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-native&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Step 9: Create a functional component in Home.js&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Create a functional component named &lt;code&gt;Home&lt;/code&gt; that returns a &lt;code&gt;View&lt;/code&gt; component with &lt;code&gt;styles&lt;/code&gt; to center both its horizontal and vertical alignments. Inside the &lt;code&gt;View&lt;/code&gt;, place a &lt;code&gt;Text&lt;/code&gt; component that displays the text "This is the Home Page".&lt;/p&gt;

&lt;p&gt;Finally, export the component using the &lt;code&gt;export default&lt;/code&gt; statement to make it available for use in other parts of the application.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Home&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;View&lt;/span&gt; &lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt;&lt;span class="na"&gt;alignItems&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;center&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;justifyContent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;center&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;}}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Text&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;This&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;Home&lt;/span&gt; &lt;span class="nx"&gt;Page&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Text&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/View&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;Home&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Step 10: Import and create component in Settings.js&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In the &lt;code&gt;Settings.js&lt;/code&gt; file, repeat the same process as in steps 8 and 9, but create a functional component named &lt;code&gt;Settings&lt;/code&gt; with a &lt;code&gt;Text&lt;/code&gt; component inside displaying the text "This is the Settings Page".&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;View&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Text&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-native&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;


&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Settings&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;View&lt;/span&gt; &lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt;&lt;span class="na"&gt;alignItems&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;center&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;justifyContent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;center&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;}}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Text&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;This&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;Settings&lt;/span&gt; &lt;span class="nx"&gt;Page&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Text&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/View&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;Settings&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Step 11: Import and create components in Profil.js&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In the &lt;code&gt;Profile.js&lt;/code&gt; file, repeat the same process as in steps 8 and 9, but create a functional component named &lt;code&gt;Profile&lt;/code&gt; with a &lt;code&gt;Text&lt;/code&gt; component inside displaying the text "This is the Profile Page".&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;View&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Text&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-native&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;


&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Profile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;View&lt;/span&gt; &lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt;&lt;span class="na"&gt;alignItems&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;center&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;justifyContent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;center&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;}}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Text&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;This&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;Profile&lt;/span&gt; &lt;span class="nx"&gt;Page&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Text&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/View&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;Profile&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Build bottom tab navigation component&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 12: Create the navigation page&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Within the &lt;code&gt;BottomTabApp&lt;/code&gt; directory, create a new file to serve as the main navigation component for the app. This helps to keep the code organized and easier to maintain. The new file structure should now look like the following:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0n29m5u4nrvs0cdyvtan.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0n29m5u4nrvs0cdyvtan.png" alt="File structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 13: Import the necessary libraries&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In the &lt;code&gt;BottomNavigation.js&lt;/code&gt; file, import the required libraries including &lt;code&gt;React&lt;/code&gt;, &lt;code&gt;createBottomTabNavigator&lt;/code&gt;, &lt;code&gt;NavigationContainer&lt;/code&gt;, and the &lt;code&gt;Home&lt;/code&gt;, &lt;code&gt;Settings&lt;/code&gt;, and &lt;code&gt;Profile&lt;/code&gt; components created in previous steps.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createBottomTabNavigator&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@react-navigation/bottom-tabs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;NavigationContainer&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@react-navigation/native&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Home&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./Home&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Settings&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./Settings&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Profile&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./Profile&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;createBottomTabNavigator&lt;/code&gt; creates a bottom tab navigation structure, while the &lt;code&gt;NavigationContainer&lt;/code&gt; acts as a container for the navigation structure, providing the necessary context for the navigation to work.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 14: Define the bottom tab navigator function&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Create the bottom tab navigator using the &lt;code&gt;createBottomTabNavigator&lt;/code&gt; function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Tab&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createBottomTabNavigator&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Using &lt;code&gt;const&lt;/code&gt; instead of &lt;code&gt;function&lt;/code&gt; is a matter of preference, but &lt;code&gt;const&lt;/code&gt; is commonly used when defining variables that won't be changed throughout the program, while &lt;code&gt;function&lt;/code&gt; is used for defining reusable blocks of code that return a value.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 15: Define and import screen components as constants&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In this step, we will define the individual screen components for the bottom tab navigator, which in our case includes the &lt;code&gt;HomeScreen&lt;/code&gt;, &lt;code&gt;SettingsScreen&lt;/code&gt;, and &lt;code&gt;ProfileScreen&lt;/code&gt;. Each component returns a React component as its JSX expression: &lt;code&gt;Home&lt;/code&gt;, &lt;code&gt;Settings&lt;/code&gt;, and &lt;code&gt;Profile&lt;/code&gt;, respectively. These components represent the UI for each of the different screens in your tab-based navigation system.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;HomeScreen&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Home&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;SettingsScreen&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Settings&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ProfileScreen&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Profile&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Step 16: Create the Bottom Tab Screens Navigator&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Next, we will create a constant &lt;code&gt;App&lt;/code&gt; component that will contain the bottom tab navigator, which is responsible for rendering the different screens (Home, Settings, and Profile) in the tab-based navigation system.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Tab&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Navigator&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Tab&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Screen&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Home&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;HomeScreen&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Tab&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Screen&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Settings&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;SettingsScreen&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Tab&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Screen&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Profile&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;ProfileScreen&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Tab.Navigator&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;Tab.Navigator&lt;/code&gt; component defines the bottom tab navigator. The &lt;code&gt;Tab.Screen&lt;/code&gt; components define each of the individual screens. The &lt;code&gt;name&lt;/code&gt; property specifies the name of the screen, and the &lt;code&gt;component&lt;/code&gt; property specifies the React component that should be rendered for the screen.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 17:&lt;/strong&gt; Wrap App Component in Navigation Container and Export it as Default
&lt;/h3&gt;

&lt;p&gt;Define the &lt;code&gt;BottomNavigation&lt;/code&gt; component and export it as a React functional component. The component should returns a &lt;code&gt;NavigationContainer&lt;/code&gt; component that wraps the &lt;code&gt;App&lt;/code&gt; component defined in the previous code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;BottomNavigation&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;NavigationContainer&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;App&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/NavigationContainer&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;NavigationContainer&lt;/code&gt; component manages the navigation state and dispatches the navigation actions. While exporting &lt;code&gt;BottomNavigation&lt;/code&gt; as the default component makes it easily importable in other parts of the application to render the bottom tab navigation system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Render component and run the application
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 18: Import necessary libraries and components in App.js&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Open the &lt;code&gt;App.js&lt;/code&gt; file, and import the required libraries and components including &lt;code&gt;React&lt;/code&gt;, &lt;code&gt;View&lt;/code&gt;, &lt;code&gt;StatusBar&lt;/code&gt;, as well as the navigation component &lt;code&gt;BottomNavigation.&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;View&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-native&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;StatusBar&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;expo-status-bar&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;BottomNavigation&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./BottomNavigation&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note: The &lt;code&gt;StatusBar&lt;/code&gt; component from &lt;code&gt;expo-status-bar&lt;/code&gt; is used to display the status bar of the device, which shows the battery level, network status, and other information.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 19: Export App Component
&lt;/h3&gt;

&lt;p&gt;Finally, in this step, the &lt;code&gt;App&lt;/code&gt; component is defined as a default export function. The component returns a &lt;code&gt;View&lt;/code&gt; component that takes up the full screen of the device and contains two nested components: &lt;code&gt;StatusBar&lt;/code&gt; and &lt;code&gt;BottomNavigation&lt;/code&gt; defined earlier.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;View&lt;/span&gt; &lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt; &lt;span class="na"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;}}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;StatusBar&lt;/span&gt; &lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;auto&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;BottomNavigation&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/View&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Congratulations! By following these steps, you have successfully created a bottom tab navigation using the react-navigation library for a React Native app. The end result should be a functional bottom tab navigation in your app that allows you to easily navigate between the different tabs or screens.&lt;/p&gt;

&lt;p&gt;Outcome:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqm4kr6s6bs3ewrgkij7h.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqm4kr6s6bs3ewrgkij7h.gif" alt="BottomTab Navigation App"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Customizing the bottom tab navigation&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Let’s go further and customize the tab. You can customize the tab by passing additional options to the &lt;code&gt;Tab.Screen&lt;/code&gt; component in the &lt;code&gt;BottomNavigation.js&lt;/code&gt; file.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 20: Change the active icon tint color&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Let’s change the default active icon color from blue to red. To achieve this, pass an object with &lt;code&gt;tabBarOptions&lt;/code&gt; key to the &lt;code&gt;Tab.Navigator&lt;/code&gt; component. The &lt;code&gt;tabBarOptions&lt;/code&gt; object will then have an &lt;code&gt;activeTintColor&lt;/code&gt; key with the desired color value.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Tab&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Navigator&lt;/span&gt;
     &lt;span class="nx"&gt;tabBarOptions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt;
       &lt;span class="na"&gt;activeTintColor&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;red&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
     &lt;span class="p"&gt;}}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
       &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Tab&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Screen&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Home&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;HomeScreen&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;       &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Tab&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Screen&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Settings&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;SettingsScreen&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;       &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Tab&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Screen&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Profile&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;ProfileScreen&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;     &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Tab.Navigator&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Step 22: Next, let’s customize the icons&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Import an icon library. For this example, we will be using the &lt;code&gt;Ionicons&lt;/code&gt; library. The use of "Ionicons" is of personal preference. Other libraries such as the MaterialCommunityIcons library can also provide icons for your app.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Ionicons&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react-native-vector-icons/Ionicons&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pass the icons using the &lt;code&gt;tabBarIcon&lt;/code&gt; key in the &lt;code&gt;Tab.Screen&lt;/code&gt; component for each of the screens. A list of available icons can be gotten from the &lt;a href="https://ionic.io/ionicons/" rel="noopener noreferrer"&gt;Ionic official website&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Tab&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Navigator&lt;/span&gt;
      &lt;span class="nx"&gt;tabBarOptions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt;
        &lt;span class="na"&gt;activeTintColor&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;red&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;}}&lt;/span&gt;
    &lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Tab&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Screen&lt;/span&gt;
        &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Home&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
        &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;HomeScreen&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;options&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt;
          &lt;span class="na"&gt;headerShown&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;tabBarIcon&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;color&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;size&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Ionicons&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ios-home&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;color&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nx"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;size&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;          &lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="p"&gt;}}&lt;/span&gt;
      &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Tab&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Screen&lt;/span&gt;
        &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Settings&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
        &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;SettingsScreen&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;options&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt;
          &lt;span class="na"&gt;tabBarIcon&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;color&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;size&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Ionicons&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ios-settings&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;color&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nx"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;size&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;          &lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="p"&gt;}}&lt;/span&gt;
      &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Tab&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Screen&lt;/span&gt;
        &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Profile&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
        &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;ProfileScreen&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;options&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{{&lt;/span&gt;
          &lt;span class="na"&gt;tabBarIcon&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;color&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;size&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Ionicons&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;ios-person&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="nx"&gt;color&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;color&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nx"&gt;size&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;size&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;          &lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="p"&gt;}}&lt;/span&gt;
      &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Tab.Navigator&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Congratulations once again!&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;You have successfully customized the bottom tab navigation, changing the icon as well as its active tint color.&lt;/p&gt;

&lt;p&gt;Output:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7nhqrkbusz4vtx6ew08b.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7nhqrkbusz4vtx6ew08b.gif" alt="Customized bottom tab navigator"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;By following this step-by-step guide, we have successfully created a bottom tab navigation using the react-navigation library for React Native apps. You also learned how to customize the bottom tab navigation by changing the active tint color and adding icons to the tabs. The end result should be a functional bottom tab navigation system within your app, which allows for easy navigation between the different screens.&lt;/p&gt;

&lt;p&gt;If you encounter any issues or errors, don't hesitate to refer back to the instructions and double-check your code. It's also a good idea to check the official documentation for the &lt;a href="https://reactnavigation.org/docs/getting-started/" rel="noopener noreferrer"&gt;react-navigation&lt;/a&gt; library for additional information and resources.&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>Fundamentals of Blockchain, Ethereum and Smart Contracts</title>
      <dc:creator>Sokaribo Senibo</dc:creator>
      <pubDate>Wed, 26 Jan 2022 11:41:39 +0000</pubDate>
      <link>https://dev.to/sokaribosenibo/fundamentals-of-blockchain-ethereum-and-smart-contracts-495p</link>
      <guid>https://dev.to/sokaribosenibo/fundamentals-of-blockchain-ethereum-and-smart-contracts-495p</guid>
      <description>&lt;p&gt;&lt;em&gt;The Web3 ecosystem has seen exponential growth in the past few years. This ecosystem, which offers a decentralized paradigm for digital assets, is enabled by blockchains, which have become the bedrock of world-wide record-keeping systems. This article explains fundamental concepts in Web3, such as Blockchains, Ethereum, and Smart Contracts, and why they are useful.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What is Blockchain?&lt;/li&gt;
&lt;li&gt;History of Blockchain and Ethereum&lt;/li&gt;
&lt;li&gt;Ethereum and Smart Contracts&lt;/li&gt;
&lt;li&gt;The Architecture of Blockchain&lt;/li&gt;
&lt;li&gt;Benefits of Blockchain Technology&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is Blockchain?
&lt;/h2&gt;

&lt;p&gt;A blockchain is a distributed ledger technology that maintains a continuously growing list of ordered records, called "blocks," linked together using cryptography. They are a network of computers that have the same digital history of transactions, deals, contracts, and all other things of value that can be represented in the form of digital assets.&lt;/p&gt;

&lt;p&gt;Each block contains a cryptographic hash of the previous block, a timestamp, and transaction data (generally represented as a Merkle tree). The timestamp proves that the transaction data existed when the block was released, which is required to get into the hash of the block. Also, because each block carries information about the previous one, they form a chain, with each successive block reinforcing the ones before it, which makes data manipulation difficult since data in one block cannot be modified retrospectively without impacting all following blocks.&lt;br&gt;
 &lt;br&gt;
In essence, blockchain can be likened to an obsessive club whose members like to keep track of things. The club has a ton of complicated rules to ensure that every member writes down the exact same set of records about what happens each day (whether it’s bird sightings, or beer tastings, or flower sales). Once data is recorded and accepted, it becomes exponentially difficult to change because everybody will need to be present and agree to the change, and more records are being added to it. Also, every member is obligated to never stop talking about the club.&lt;br&gt;
Then, usually outsiders are welcome to come check out their records at the club.&lt;br&gt;
 &lt;br&gt;
&lt;em&gt;Here is the point.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Blockchain provides a space to store digital information that everyone can contribute to, but no one can change, and no single person or entity controls it. In this sense, a blockchain serves as the foundation for immutable ledgers, or transaction records that can't be changed, erased, or destroyed. Because of this, blockchains are also known as distributed ledger technology (DLT).&lt;/p&gt;

&lt;p&gt;Hence, at its core, blockchain allows you to agree on data with strangers across the internet. Rather than depending on a single person or entity to keep track of everything, everyone on the network shares that responsibility.&lt;/p&gt;

&lt;p&gt;Blockchain has become one of the most significant innovations of the 21st century given its ripple effect from the financial industry to manufacturing, education, and other diverse sectors.&lt;/p&gt;

&lt;h2&gt;
  
  
  History of Blockchain and Ethereum
&lt;/h2&gt;

&lt;p&gt;The blockchain concept was first proposed by Cryptographer David Chaum in his 1982 dissertation "Computer Systems Established, Maintained and Trusted by Mutually Suspicious Groups". The dissertation which proposed cryptographically secured chain of blocks was further improved in 1991 by Stuart Haber and W. Scott Stornetta, their goal was to implement a system where document timestamps could not be edited. In 1992, Haber, Stornetta, and Dave Bayer incorporated Merkle trees to the design, which improved its efficiency by allowing several document certificates to be collected into one block.&lt;/p&gt;

&lt;p&gt;By 2008, Satoshi Nakamoto conceptualized the first decentralized blockchain. Nakamoto significantly improved the architecture by incorporating a difficulty parameter to steady the pace at which blocks are added to the chain and employing a Hash cash-like approach to timestamp blocks without having them to be signed by a trusted party. The design was later implemented in 2009 and became a core component of the bitcoin cryptocurrency, where it serves as a public ledger for all transactions on the network. &lt;/p&gt;

&lt;p&gt;Years later Vitalik Buterin, co-founder &lt;em&gt;Bitcoin Magazine&lt;/em&gt; published a white paper that proposed a decentralized application platform. The proposal paved the way for blockchain technology to be adopted for purposes other than cryptocurrency.  Blockchain technology was later separated from currency in 2014, and its potential for other financial, interorganizational transactions was explored. The move to establish blockchain technology beyond currency gave birth to the Ethereum blockchain system.&lt;/p&gt;

&lt;p&gt;In 2015, the Ethereum Frontier network launched, enabling developers to write smart contracts and decentralized apps that could be deployed to a live network. Then the Linux Foundation launched the Hyperledger project, which is a multi-project open-source collaborative effort to advance cross industry blockchain technologies.&lt;/p&gt;

&lt;p&gt;The growth of Blockchain and Ethereum has been consistent through the years and is gaining more adoption as we move into the Web3 era. Governments and enterprises now look to blockchain to tackle a variety of cases from voting, to real estate, intellectual rights, vaccine distribution and internet of things.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ethereum and Smart Contract
&lt;/h2&gt;

&lt;p&gt;Ethereum is a decentralized blockchain platform that creates a peer-to-peer network for securely executing and verifying application code, known as smart contracts. &lt;/p&gt;

&lt;p&gt;The idea of smart contracts was originally described in 1993 by computer scientist and cryptographer Nick Szabo as a kind of digital vending machine. They are short programs that can be deployed and run on a blockchain to automatically execute transactions if certain conditions are met without requiring the help of an intermediary company or entity. &lt;/p&gt;

&lt;p&gt;In traditional contracts, a document describes the terms of the relationship and agreement between two parties. If one Party A violates the terms, Party B has the right to take Party A to court for not complying with the agreement. A smart contract fortifies such agreements in code so the rules are automatically enforced without the involvement of courts (or any other third party).&lt;/p&gt;

&lt;p&gt;Smart contracts allow participants to transact without the need for a trusted central authority. Transaction records are immutable, verifiable, and securely distributed across the network, giving participants full ownership and visibility into transactional data. As a cost of processing transactions on the network, a sender must sign transactions and spend Ether which is Ethereum's native coin.&lt;/p&gt;

&lt;p&gt;The adoption of smart contracts has yielded benefits from speed efficiency and accuracy, to trust and transparency, to security and savings.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Architecture of Blockchain
&lt;/h2&gt;

&lt;p&gt;The traditional web architecture employs client-server networks, in which the server stores all the necessary information in one location for easy updating and control by a number of administrators. Whereas, blockchain uses a peer-to-peer network, in which each participant in the network has the right to maintain, approve, and update new entries.&lt;/p&gt;

&lt;p&gt;A blockchain organizes data into groups called blocks, each of which contains a set of data and has a specific storage capability. When full, they are closed and connected to the preceding block, producing a data chain known as the blockchain. All new information that follows that freshly added block is compiled into a newly formed block that will then also be added to the chain once filled. Also, each block is given an exact time stamp when it is added to the chain.&lt;/p&gt;

&lt;p&gt;All blockchain structures can be categorized into the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Private blockchain architecture&lt;/strong&gt; - This means the blockchain network is in a restrictive environment like a closed network. They are controlled by specific authorized users. The private blockchain is also referred to as permissioned blockchains or enterprise blockchains. They are typically fast and can handle transactions more quickly than public blockchains.
 &lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Public blockchain architecture&lt;/strong&gt; - As opposed to private blockchain architecture, the public blockchain architecture is accessible to everyone and permissionless. They are completely independent of organizations and can run as long as there are computers connected to them. Participants can access past and current records, conduct mining activities, find bugs, and propose changes because the source code is open source.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hybrid blockchain architecture&lt;/strong&gt;- A hybrid blockchain architecture combines both private and public blockchain architecture. It allows organizations to set up a public permissionless system alongside a private restricted system, which enables them to control access to specific data stored in the blockchain and what data is available publicly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consortium blockchain architecture&lt;/strong&gt;-This is also known as a federated blockchain and is similar to a hybrid blockchain. The main difference compared to a hybrid blockchain is that multiple organizational members collaborate on a decentralized network. They limit access to the blockchain to a particular group of organizations, eliminating the risks that come with just one entity being in control of the blockchain.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some of the core components of the blockchain architecture include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Block&lt;/strong&gt;- These are data structures that store a set of transactions and redistribute them to all nodes in the network.
   * &lt;strong&gt;Chain&lt;/strong&gt;- A set of blocks that are arranged in a specific order
 &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transaction&lt;/strong&gt;- The smallest building block of a blockchain system (records, information, and so on), that serves as the blockchain's purpose.
 &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node&lt;/strong&gt; - A user or computer with an independent copy of the whole blockchain ledger within the blockchain architecture.
 &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Miners&lt;/strong&gt;- Dedicated nodes that execute block verification before adding anything to the blockchain structure.
 &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consensus protocol&lt;/strong&gt;- A collection of rules and agreements that govern how blockchain transactions are carried out.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Benefits blockchain technology
&lt;/h2&gt;

&lt;p&gt;Blockchain provides several benefits for individuals, organizations and enterprises. Some of the benefits include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Trust&lt;/strong&gt;- Due to its complicated computations and cryptographic evidence among participating parties, blockchain transactions are validated and trustworthy. Also, &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security and decentralization&lt;/strong&gt;- Each member of the blockchain system have access to the entire distributed database. in contrast to a central based system, consensus algorithm allows for control of the network. Also, every transaction in the blockchain ledger cannot be modified nor removed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Transparency and Anonymity&lt;/strong&gt;- The blockchain system is almost impossible to tampering, and each participant has a randomly created address, which protects the users' privacy.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Blockchain has emerged as a viable technical solution for enterprises all around the world. It has shown to be an effective technique for dealing with complex challenges. As a result, the advantages of blockchain technology for enterprises, also translate into a need for blockchain skills.&lt;/p&gt;

&lt;p&gt;This article is part of a series on Web3, follow and signup to stay updated. &lt;/p&gt;

&lt;p&gt;I hope you found this tutorial helpful! Feel free to reach out to me for technical writing services &lt;em&gt;(I can fit myself into your budget)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Send me an email: &lt;a href="//mailto:sokaribosenibos@gmail.com"&gt;Sokaribosenibos@gmail.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My LinkedIn Profile: &lt;a href="//www.linkedin.com/in/sokaribosenibo/"&gt;Sokaribo Senibo Sokaribo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Web3 Series&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://sokaribosenibo.com/understand-and-make-money-from-web-30-today"&gt;Understand and make money from Web 3 today&lt;/a&gt;&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>ethereum</category>
      <category>smartcontracts</category>
    </item>
    <item>
      <title>How to develop an AR copy paste app from scratch</title>
      <dc:creator>Sokaribo Senibo</dc:creator>
      <pubDate>Wed, 26 Jan 2022 11:38:38 +0000</pubDate>
      <link>https://dev.to/sokaribosenibo/how-to-develop-an-ar-copy-paste-app-from-scratch-l11</link>
      <guid>https://dev.to/sokaribosenibo/how-to-develop-an-ar-copy-paste-app-from-scratch-l11</guid>
      <description>&lt;p&gt;So I decided to try out this cool project: an Augmented Reality (AR) copy-paste app.&lt;br&gt;
 &lt;br&gt;
The app combines Augmented Reality and Machine Learning to find distinct objects in the surroundings, then copies, trims, and pastes the object in an image editing software on your computer automatically.&lt;br&gt;
 &lt;br&gt;
This article explains how to develop the AR app yourself.&lt;/p&gt;
&lt;h2&gt;
  
  
  Table of Content
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;AR Copy Paste&lt;/li&gt;
&lt;li&gt;Understanding the process&lt;/li&gt;
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;li&gt;Downloading and setting up relevant packages&lt;/li&gt;
&lt;li&gt;Setting up a local server on your laptop&lt;/li&gt;
&lt;li&gt;Setting up your mobile phone&lt;/li&gt;
&lt;li&gt;Setting up the app &lt;/li&gt;
&lt;li&gt;Congratulations&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;The demand for AR applications has seen tremendous growth over the last couple of years and is still rising. This demand is a result of the way AR can interpret, manipulate, and enhance the view of the real world.&lt;/p&gt;

&lt;p&gt;AR stands for Augmented Reality and refers to an interactive 3D experience that combines the view of the real physical world with computer-generated elements in real-time.&lt;/p&gt;

&lt;p&gt;The AR Copy Paste app is a project that enables you to digitalize real-world objects around us. The app combines Augmented Reality and Machine Learning to find distinct objects in the surroundings, then copies, trims (removing the background automatically, and keeping the object only), and pastes the object in an image editing software on your computer directly.&lt;/p&gt;

&lt;p&gt;The app, which is a cool beginner's AR project, makes the job of creatives easier, as they are now able to point their phone camera at an object and copy-paste it onto their computer almost automatically.&lt;/p&gt;
&lt;h2&gt;
  
  
  Understanding the Process
&lt;/h2&gt;

&lt;p&gt;AR Copy Paste is made possible by a combination of Augmented Reality, Machine Learning, and open-source technologies such as the Boundary-Aware Salient Object Detection (BASNet) and Scale Invariant Feature Transform (SIFT).&lt;/p&gt;

&lt;p&gt;BASNet makes it possible to accurately identify people and objects in the real world and remove the background surrounding the object automatically. While SIFT matches the coordinates on the phone with the computer screen, enabling you to place the digital captures of the object in specific positions on your computer screen.&lt;/p&gt;

&lt;p&gt;The AR Copy Paste can be used on Android or iOS mobile phones with a variety of image editing computer applications such as PowerPoint. The entire process of developing the AR Copy Paste app is done through three (3) independent modules, which include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Local Server setup&lt;/li&gt;
&lt;li&gt;External salient object detection service setup&lt;/li&gt;
&lt;li&gt;Mobile App setup&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now that you have a fair understanding of AR and understand the process involved, let us get started on creating an AR Copy Paste App.&lt;/p&gt;
&lt;h2&gt;
  
  
  Prerequisite
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;An Android or iOS mobile device&lt;/li&gt;
&lt;li&gt;Photoshop installed&lt;/li&gt;
&lt;li&gt;A code editor (I'll be using VSCode)&lt;/li&gt;
&lt;li&gt;Basic understanding of command prompt (I'll be using Anaconda Prompt)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Downloading and setting up neccesary packages
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Connect your mobile device and computer to the same wifi network&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ensure your computer and the mobile device to be used for the project are connected to the same internet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Download the AR Copy Paste GitHub files&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The GitHub files can be found on &lt;a href="https://github.com/cyrildiagne/ar-cutpaste"&gt;https://github.com/cyrildiagne/ar-cutpaste&lt;/a&gt;. Clone the repository by clicking on "Code" and "Download Zip". Make sure to unzip the file after downloading it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--p1-SLZ3b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642228005188/3Xdx23sSRj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--p1-SLZ3b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642228005188/3Xdx23sSRj.png" alt="ARCopyPastefile.PNG" width="800" height="257"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Open photshop and enable remote connection&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Set the service name to "&lt;strong&gt;Photoshop Server&lt;/strong&gt;" and password to "&lt;strong&gt;123456&lt;/strong&gt;". Also copy out your IP Address.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Note: You can change the server name and password to whatever you want; just remember to use it wherever a server name and password are required.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EnxobFyA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642228080166/s7jsJFHKf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EnxobFyA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642228080166/s7jsJFHKf.png" alt="remote connection.PNG" width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4: Set photoshop canvas size to 2560 by 1440 pixels, 300pixels/inch resolution, and Transparent background, then create another layer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--L1-Z2kDa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642228120252/TI4IHaUZ8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--L1-Z2kDa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642228120252/TI4IHaUZ8.png" alt="canva size.PNG" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5: Open the downloaded AR-cut-paste GitHub file and navigate to server/src/&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open the "main" file with a code editor and ensure the Photoshop password is correct. Additionally, change the host address to the copied Photoshop IP address.&lt;/p&gt;

&lt;p&gt;After editing, save the file and close it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--03F9dnAw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642228241975/W0b96morC.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--03F9dnAw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642228241975/W0b96morC.png" alt="server-src-main.PNG" width="768" height="223"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--m6ajoWy9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642228372266/I-fnMFYQd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--m6ajoWy9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642228372266/I-fnMFYQd.png" alt="photoshop password.PNG" width="771" height="51"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wy_6Va2s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642228161064/ex2jUyF74.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wy_6Va2s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642228161064/ex2jUyF74.png" alt="host address.PNG" width="596" height="104"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then open the "ps" file and edit the doc offset to zero (0) on both X and Y. Then edit the password. After editing, save the file and close it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9qZ4hoMM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642228281293/iMpsf12wa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9qZ4hoMM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642228281293/iMpsf12wa.png" alt="screen pixel.PNG" width="481" height="148"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Setting up the local server
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 6: Run your command prompt as administrator (I'll be using Anaconda Prompt)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7: Navigate to ar-cutpaste-master/server, copy the destination address and paste into your command prompt&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;C:...&lt;span class="se"&gt;\G&lt;/span&gt;itHub&lt;span class="se"&gt;\A&lt;/span&gt;R-cutandpaste&lt;span class="se"&gt;\a&lt;/span&gt;r-cutpaste-master&lt;span class="se"&gt;\s&lt;/span&gt;erver
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 8: Pip install and run virtualenv&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#to install virtualenv&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;virtualenv

&lt;span class="c"&gt;#to run virtualenv&lt;/span&gt;
virtualenv &lt;span class="nt"&gt;-p&lt;/span&gt; python3.7 venv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This creates a virtual environment. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yqcAW1Q7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642228414071/J0XFgEDc_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yqcAW1Q7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642228414071/J0XFgEDc_.png" alt="virtualenv result.PNG" width="800" height="264"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 9: Activate the environment&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;navigate to the script folder in the command prompt and activate the environment.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#navigate into the venv folder&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;venv

&lt;span class="c"&gt;#navigate into the Scripts folder&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;Scripts

&lt;span class="c"&gt;#activate the environment&lt;/span&gt;
.&lt;span class="se"&gt;\a&lt;/span&gt;ctivate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice the change in the path in the command prompt&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Note: if .\activate does not work, it may mean you need to install Bash&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hwSR_0yF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642229005472/UaGBN1WJt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hwSR_0yF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642229005472/UaGBN1WJt.png" alt="activate prompt.PNG" width="800" height="66"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After activating the environment, navigate back to the server&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#navigate out of the Scripts folder&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; ..

&lt;span class="c"&gt;#navigate out of the venv folder&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; ..
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FjGDTDxz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642229040298/KIQFSis06.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FjGDTDxz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642229040298/KIQFSis06.png" alt="step 9.PNG" width="800" height="113"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 10: After navigating back to the server in the command prompt, pip install -r requirements&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#pip install (copy and paste)pip install -r requirements.txt&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 11: Setup the external salience object detection service&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Option 1: Set up your model service (this requires a CUDA GPU)&lt;/p&gt;

&lt;p&gt;As mentioned above, for the time being, you must deploy the BASNet model (Qin &amp;amp; al, CVPR 2019) as an external HTTP service using this BASNet-HTTP wrapper (requires a CUDA GPU)&lt;/p&gt;

&lt;p&gt;You will need the deployed service URL to configure the local server&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Make sure to configure a different port if you're running BASNet on the same computer as the local service.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Option 2: Use a community provided endpoint&lt;/p&gt;

&lt;p&gt;A public endpoint has been provided by members of the community. This is useful if you don't have your CUDA GPU or do not want to go through the process of running the service on your own.&lt;/p&gt;

&lt;p&gt;Use this endpoint by launching the local server with --basnet_service_ip &lt;a href="http://u2net-predictor.tenant-compass.global.coreweave.com"&gt;http://u2net-predictor.tenant-compass.global.coreweave.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We will be using option 2, hence run the following code in your command prompt&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#copy and paste the following code&lt;/span&gt;
python src/main.py &lt;span class="nt"&gt;--basnet_service_ip&lt;/span&gt; http://u2net-predictor.tenant-compass...  &lt;span class="nt"&gt;--photoshop_password&lt;/span&gt; 123456
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Ensure the Photoshop password matches the one you adopted&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Congratulations so far! Your server is now running.
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ROaVofCr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642229110098/3Wd-v55iW.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ROaVofCr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642229110098/3Wd-v55iW.png" alt="virtual server running.PNG" width="800" height="140"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting up mobile device
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 12: Download the expo app from the Android store or iOS store&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Download and install the Expo app on your mobile device&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 13: Download and install node.js on your computer&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Download the recommended version&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Configure the app on your computer
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 14: Run another command prompt as administrator and navigate to ar-cutpaste-master/app&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Copy the address and paste in the command prompt&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;C:...&lt;span class="se"&gt;\G&lt;/span&gt;itHub&lt;span class="se"&gt;\A&lt;/span&gt;R-cutandpaste&lt;span class="se"&gt;\a&lt;/span&gt;r-cutpaste-master&lt;span class="se"&gt;\a&lt;/span&gt;pp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 15: Install npm&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#copy and paste to install npm&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 16: Navigate to ar-cutpaste-master/app/components/ and edit the Server file with your code editor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KblM3w67--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642229144195/FeC8PZ2CZ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KblM3w67--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642229144195/FeC8PZ2CZ.png" alt="step 16 server edit.PNG" width="512" height="100"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After editing to your IP address, edit your mask path, then save and close the file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;mask &lt;span class="o"&gt;=&lt;/span&gt; Image.open&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'cut_mask.png'&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;.convert&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"L"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;.resize&lt;span class="o"&gt;((&lt;/span&gt;256,256&lt;span class="o"&gt;)&lt;/span&gt;,resample&lt;span class="o"&gt;=&lt;/span&gt;Image.BICUBIC, &lt;span class="nv"&gt;reducing_gap&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;2.0&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JvzmN278--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642229344243/yUb4XFr0V.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JvzmN278--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642229344243/yUb4XFr0V.png" alt="also edit the mask file due to bug issue.PNG" width="800" height="64"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 17: Start npm&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#copy and paste to start npm&lt;/span&gt;
npm start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ij3uya4M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642229405061/HcuRZRO9c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ij3uya4M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642229405061/HcuRZRO9c.png" alt="npm start.PNG" width="800" height="106"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After starting npm a QR will pop up on your screen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--p7v773bT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642229376756/XcfdPjHgC.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--p7v773bT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642229376756/XcfdPjHgC.png" alt="QR code.PNG" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Mb_fhubL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642229439855/cFkRYjflH.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Mb_fhubL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1642229439855/cFkRYjflH.png" alt="QR code 2.PNG" width="800" height="770"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 18: Scan QR code with the Expo app on your mobile phone&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hurray! All you have to do now is snap the object you want with your mobile phone and watch it transfer automatically to your computer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Congratulation!
&lt;/h2&gt;

&lt;p&gt;You have successfully built an AR Copy Paste App. &lt;/p&gt;

&lt;p&gt;Phew, that was a lot of things we just covered. In this article, we developed an app that can find distinct objects in the surroundings, then copies, trims, and pastes the object in an image editing software on your computer automatically.&lt;/p&gt;

&lt;p&gt;I hope you found this tutorial helpful! Feel free to reach out to me for technical writing services (I can fit myself into your budget)&lt;/p&gt;

&lt;p&gt;Send me an email: &lt;a href="//sokaribomoshea@gmail.com"&gt;Sokaribosenibos@gmail.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My LinkedIn Profile: &lt;a href="//www.linkedin.com/in/sokaribosenibo/"&gt;Sokaribo Senibo Sokaribo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/SokariboSenibo"&gt;My Twitter account&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>beginners</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Understand and make money from Web 3.0 Today!</title>
      <dc:creator>Sokaribo Senibo</dc:creator>
      <pubDate>Mon, 03 Jan 2022 02:15:10 +0000</pubDate>
      <link>https://dev.to/sokaribosenibo/understand-and-make-money-from-web-30-today-802</link>
      <guid>https://dev.to/sokaribosenibo/understand-and-make-money-from-web-30-today-802</guid>
      <description>&lt;p&gt;The invention of the world wide web is one of the greatest inventions in the world. This invention, which made the internet available to all, has become an important part of how we live and interact.&lt;/p&gt;

&lt;p&gt;This article summarizes the evolution of the web, what Web 3.0 is, its benefits and opportunities, and how to make money with Web 3.0 today!&lt;/p&gt;

&lt;p&gt;Keywords: Web 3.0, Web 2.5, Web 2.0, Web 1.0, Dapps&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of content
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The evolution of the web

&lt;ul&gt;
&lt;li&gt;Web 1.0&lt;/li&gt;
&lt;li&gt;Web 2.0&lt;/li&gt;
&lt;li&gt;Web 2.5&lt;/li&gt;
&lt;li&gt;Web 3.0&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Features of web 3&lt;/li&gt;

&lt;li&gt;Advantage of web 3.0&lt;/li&gt;

&lt;li&gt;Opportunities in web 3.0&lt;/li&gt;

&lt;li&gt;How to make money from web 3.0 Today&lt;/li&gt;

&lt;li&gt;Conclusion&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  The evolution of the web
&lt;/h2&gt;

&lt;p&gt;The World Wide Web (WWW), also known as "the Web", was invented in the year 1989 by Sir Tim Berners-Lee, a British computer scientist born in London. After graduating from Oxford University, Berners-Lee worked as a software developer at CERN, a massive particle physics facility in Geneva, Switzerland, where scientists from all over the world came to the site to use their accelerators. However, Sir Tim noticed that communication was a problem. At that time, different types of information were kept on different computers, but accessing them required logging in to several computers, and sometimes you had to learn a different program on each computer. &lt;/p&gt;

&lt;p&gt;In March 1989, Tim outlined his vision for the web in a document called "Information Management: A Proposal." The basic concept was to combine the evolving technologies of computers, data networks, and hypertext into a powerful and easy-to-use global information system. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F88sfy4dms2wqv5hibiea.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F88sfy4dms2wqv5hibiea.gif" alt="Information Management: A proposal by Tim Berners-Lee"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a result, the web was originally conceived and then developed to meet this demand for automated information-sharing between scientists in universities and institutes around the world.&lt;/p&gt;

&lt;p&gt;By October 1990, Tim built the first web page editor and browser, "WorldWideWeb.app", and the first web server, "httpd," based on three fundamental technologies that have since become the foundation of today's web.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTML (Hypertext Markup Language): The markup (formatting) language for the web.

&lt;ul&gt;
&lt;li&gt;URI (Uniform Resource Identifier): A type of "address" that is unique to each online site and is used to identify it. It is also commonly called a URL.&lt;/li&gt;
&lt;li&gt;HTTP (Hypertext Transfer Protocol): allows for the retrieval of linked resources from across the internet.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;The terms "internet" and "web" are not interchangeable, but two distinct but related concepts. The Internet is basically a network of networks that connects millions of computers throughout the world, allowing any computer to speak with any other computer. The World Wide Web (WWW) is a method of accessing information through the internet by displaying web pages on a browser. Information is linked together by hyperlinks and can include text, images, audio, and video.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Web 1.0
&lt;/h2&gt;

&lt;p&gt;In December 1990, Tim teamed up with another scientist, Robert Cailliau, who rewrote Tim's initial proposal. Their goal was to combine hypertext with the internet in order to create web pages.&lt;/p&gt;

&lt;p&gt;On June 8th, 1991, the www project was announced to the world. The project, which started as a means to allow high-energy physicists to share data, news, and documentation, began spreading to other areas and having gateway servers for other data.&lt;/p&gt;

&lt;p&gt;On August 6, 1991, the world's first web page was launched.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnh85qcu3czwnsi7tr9hj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnh85qcu3czwnsi7tr9hj.png" alt="The first website"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first implementation of the web represents web 1.0.&lt;br&gt;
Web 1.0, also known as the "Syntactic Web" or the "Read Only Web," was the first generation of the web, running from 1990 to 2000. The role of users was limited to reading only the information provided by the content producer.&lt;/p&gt;

&lt;p&gt;It was a one-way communication purely based on a client-pull model (HTTP) that could be initiated by the client only. It was slow and had a chunky nature. There were few writers and a large number of readers, which resulted in user starvation for content and a slow network. Web 1.0 was designed with the assumption that the web was for publishing rather than participation, which meant that only information could be read with no interaction with the web pages. It used software as an application and not as a service. Whenever new information is entered into the web pages, they need to be refreshed every time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5jsmxc40jas8dwb0r8eb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5jsmxc40jas8dwb0r8eb.png" alt="Illustration of Web 1.0"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Examples of Web 1.0 are static websites and personal sites, and the core web technologies used are HTML, HTTP, and URI, although other protocols such as XML, XHTML, and CSS are also used.&lt;/p&gt;

&lt;p&gt;Web 1.0 makes use of both server-side scripting such as ASP, PHP, JSP, CGI, and PERL and client-side scripting like JavaScript, VBscript, and Flash.&lt;/p&gt;

&lt;h2&gt;
  
  
  Web 2.0
&lt;/h2&gt;

&lt;p&gt;The term "Web 2.0" was coined by Darcy DiNucci, an information architecture consultant, in her January 1999 article "Fragmented Future". At the unveiling of Palm Inc.'s first web-capable personal digital assistant (supporting Web access with WAP), DiNucci envisioned the Web "fragmenting" into a future that expanded beyond the browser/PC combo it was associated with. She focused on how the basic information structure and hyper-linking mechanism introduced by HTTP would be used by a variety of devices and platforms. As a result, her "2.0" designation refers to the next version of the Web rather than the term's present meaning.&lt;/p&gt;

&lt;p&gt;In 2004, the concept gained momentum when O'Reilly Media and Medialive hosted the first Web 2.0 conference. In their opening remarks, John Battelle and Tim O'Reilly defined the "Web as a Platform," where software applications are built upon the Web as opposed to the desktop. According to them, the unique aspect of this approach is that "customers are building your business for you." They claimed that user-generated material (in the form of ideas, words, videos, or photographs) could be "harnessed" to generate value.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Web 2.0 does not refer to any specific technical upgrades to the internet. It simply refers to a shift in how the internet is used in the 21st century. This new version allows users to actively participate in the experience rather than just acting as passive viewers who take in information.&lt;/em&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Web 2.0 which is also referred to as the social web or read-write web, lasted from 2000 to 2010 and continues even now. In this era, every user can be a content producer, and content is distributed and shared between sites.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjra0vktcn9m5v1kbqarm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjra0vktcn9m5v1kbqarm.png" alt="Illustration of Web 2.0"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead of merely reading a Web 2.0 site, a user is invited to contribute to the site's content by commenting on published articles or by creating a user account or profile on the site, which may enable increased engagement. By increasing emphasis on these already-extant capabilities, they encourage users to rely more on their browser for user interface, application software ("apps"), and file storage facilities. This type of computing is referred to as "network as a platform".&lt;/p&gt;

&lt;p&gt;Key characteristics of Web 2.0 include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Rich user experience: this refers to the experience that is transported from the desktop to the browser, and the creation of dynamic content that responds to human interaction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Web Oriented Architecture (WOA): This describes how Web 2.0 applications expose their functionality so that other apps may use and integrate it, resulting in a much richer range of applications. Examples include feeds, RSS feeds, online services, and mashups.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Social Web: This describes how web 2.0 websites tend to connect considerably more with end-users and make them an essential part of the website, either by adding their profile, commenting on content, uploading new content, or providing user-generated content (e.g., personal digital photos).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some examples of Web 2.0 include social networking websites, self-publishing platforms (e.g., WordPress' easy-to-use blog and website creation tools), "tagging" (which enables users to label websites, videos, or photos in some fashion), "like" buttons (which enable a user to indicate that they are pleased by online content), and social bookmarking.&lt;/p&gt;

&lt;p&gt;Web 2.0 technologies include HTML5, CSS3, and Javascript frameworks like ReactJs, AngularJs, VueJs, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Web 2.5
&lt;/h2&gt;

&lt;p&gt;The paradigm shift from web 2.0 to web 3.0 is what we refer to as web 2.5, which is also called the "symbiotic web". Web 2.5 represents the mutual dependence of the end-user and the content creator. The symbiosis is based on a data exchange, in which customers give up data in return for access to services, convenience, and cheaper pricing. This symbiotic data flow is fundamentally benign; it is the driving force behind many recent beneficial improvements in online services, and it has resulted in a significant increase in appealing and productive products and services available on the internet.&lt;/p&gt;

&lt;p&gt;Also, Web 2.5 focuses on mobile computing and the evolution of mobile technologies. Mobile computing now plays a critical role in engaging a larger audience through native and mobile web apps. Hence, more and more applications are entering the mobile market to establish a presence by focusing on mobile customers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5r79iltkugt0iawqt4jt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5r79iltkugt0iawqt4jt.png" alt="Illustration of Web 2.5"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The transition from Web 2.0 to Web 2.5 is marked by a reversal of fortune for the once-promising "content supplier". They not only now supply information to customers, but now also extract information from the users in a variety of ways, ranging from monitoring their activities online to persuading them to submit as much personal information as possible. This personal information is in turn used by the content providers to tailor the information they deliver to individuals.&lt;/p&gt;

&lt;p&gt;Web 2.5 placed significant doubt on the future of the web and was contrary to the benign vision Tim Berners-Lee had of the web. In Web 2.5, control could be taken from users, choices made for them rather than by them, and not necessarily to their advantage, but rather for the profit of those who wield the control. This doubt is addressed in Web 3.0, which is intended to give the user greater authority, allowing them to locate what they want or need by using "intelligent agents" to scan the internet, thereby expanding on Tim Berners-Less's notion of the semantic web.&lt;/p&gt;

&lt;p&gt;The future of the web is bright if the notion of the symbiotic web is grasped.&lt;br&gt;
Web 2.5 technologies include Progressive Web Apps (PWA), Accelerated Mobile Pages (AMP), cookies, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Web 3.0
&lt;/h2&gt;

&lt;p&gt;In 2009, Satoshi Nakamoto purportedly invented Bitcoin, the world's first cryptocurrency. He envisioned his innovation as a peer-to-peer currency system and alternative payment method devoid of any central control or rules. His invention, which was aimed towards decentralization, anonymity, and freedom, became a building block for Web 3.0.&lt;/p&gt;

&lt;p&gt;Web 3.0 is developed based on the concepts of decentralization, anonymity, and freedom of influence. It is decentralized in the sense that it operates on a distributed peer-to-peer paradigm, with no one entity having the ability to directly influence or modify the system's direction. Anonymous is based on the fact that users' identities have no bearing on their ability to participate in the system. Free of influence as there are no restrictions or rules.&lt;/p&gt;

&lt;p&gt;In this era, networks are peer-to-peer decentralized, developed, operated, and maintained by users, rather than by enterprises. Computers can interpret information like humans via Artificial Intelligence and Machine Learning, which helps to intelligently generate and distribute useful content tailored to a particular user's needs.&lt;/p&gt;

&lt;p&gt;Most significantly, Web 3.0 obscures the long-term power that big technology corporations and governments have had over users. Unlike in Web 2.0 and Web 2.5, where content creators and controllers had a lot of power, the user has more power in Web 3.0.&lt;/p&gt;

&lt;p&gt;Some of the examples of Web 3.0 are Apple’s Siri, Google's Cloud API, and Wolfram Alpha.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key features of web 3.0
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Semantic web:&lt;/strong&gt; Semantic markup refers to the communication gap between humans and computerized applications. One of the biggest challenges of displaying information on the web is that applications cannot provide context to data and, therefore, can’t understand what is relevant. Through the use of some semantic markup (or data interchange formats) in Web 3.0, data could be put in a form not only accessible to humans via natural language but able to be understood and interpreted by machines and software applications as well.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;3D Graphics and Virtual Identity:&lt;/strong&gt; Web 3.0 will transform the internet's future as it evolves from a simple two-dimensional web to a more realistic three-dimensional cyber environment. 3D design is widely used in Web 3.0 websites and services such as online games, e-commerce, the real estate industry, and so on. Also, this feature allows individuals to take on the role of an avatar in a virtual environment and explore, meet other inhabitants, participate in individual and/or group activities, and so on, just as they would in real life. Popular virtual worlds include Second Life, Red Light, etc. All interactions between avatars take place in the virtual world and have no bearing on real-time events.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Artificial Intelligence:&lt;/strong&gt; This refers to the ability to decrypt natural language and understand intentions. This feature makes it easier to recognize real from fake and provides more reliable data. By combining this capacity with natural language processing, Web 3.0 allows computers to comprehend information in the same way that people do, resulting in quicker and more relevant results. They become more intelligent to satisfy the needs of users.&lt;br&gt;
 &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Advantages of Web 3.0 
&lt;/h2&gt;

&lt;p&gt;In simplicity, Web 3.0 improves on the flaws of Web 2.0 and Web 2.5, which we can categorize into the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Trust&lt;/li&gt;
&lt;li&gt;Anonymity&lt;/li&gt;
&lt;li&gt;Control&lt;/li&gt;
&lt;li&gt;Rich user experience&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Trust
&lt;/h3&gt;

&lt;p&gt;Some may argue that the most significant contribution of the blockchain is automatic trust. By establishing a network of trust, the blockchain can go beyond the protection that digital IDs can provide.&lt;br&gt;
Some blockchains allow for the construction of "smart contracts," which are blockchain-attached programs that run when triggered by a specific blockchain event. The main thing to remember about smart contracts is that the contract is the software code.&lt;/p&gt;

&lt;p&gt;As a result, smart contracts are significantly more reliable than legal contracts. Legal contracts are enforced by the legal system, which varies in its trustworthiness from one location to the next, but is never flawless. The outcome of a legal contract dispute is never definite. Smart contracts, on the other hand, may be completely trusted. A simple example of a smart contract is given by the movement of goods through a supply chain. Goods are dispatched with an RFID tag that reports their location when read. When the goods reach specific locations, the smart contract can automatically enact payment—for transport, warehousing, or import duties. Payments are thus predictable and can be trusted to occur.&lt;/p&gt;

&lt;p&gt;Naturally, smart contracts can be far more complex than that example. They can cover many situations that are currently covered by legal contracts, diminishing the possibility of fraud.&lt;/p&gt;

&lt;h3&gt;
  
  
  Anonymity and control
&lt;/h3&gt;

&lt;p&gt;Most of the platforms and applications we use daily demand that we provide personal information in order to utilize them. As a result, data leaks occur, and the proprietors of such sites simply sell our data for profit. Web 3.0 app makers can create Dapps that allow users all over the world to utilize them without submitting any sensitive or personal data. This is made possible by blockchain technology.&lt;/p&gt;

&lt;p&gt;Also, the proprietors of those platforms can make decisions that may or may not affect you. You have no control over the platform in this situation, and all it takes is a single order to cut you off. Using blockchain, Web 3.0 apps (Dapps) overcome this limitation. Everything is now decentralized, and there is no longer a single "Point of Failure" that could be exploited to take control of the system. Web3 could deliver a future that is truly autonomous and empowers the users to make decisions for themselves using Smart Contracts to keep the system trustless, anonymous, and free from external control.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rich user and personalized experience
&lt;/h3&gt;

&lt;p&gt;As intrusive as advertisements might be at times, there's no denying the convenience of being able to quickly click over to a unique offer for something you actually need or desire but might otherwise overlook.&lt;br&gt;
Web 3.0 promises a considerably more customized surfing experience. Websites will be able to automatically adapt to our device, location, and any accessibility needs we may have, and web apps will become significantly more aware of our usage patterns.&lt;/p&gt;

&lt;p&gt;The multidimensional Web 3.0 will help more than just websites; web apps will begin to provide significantly richer experiences for consumers. Consider a mapping service like Google, which is now able to combine the basics of location search with route guidance, hotel recommendations and live traffic updates. This simply wasn’t possible in the Web 2.0 era.&lt;/p&gt;

&lt;h2&gt;
  
  
  Opportunities in Web 3.0
&lt;/h2&gt;

&lt;p&gt;Human dependence on the web has increased over the years. Many people are unable to imagine their lives without it. As this demand increases, so too will the opportunities available.&lt;/p&gt;

&lt;p&gt;Some of the opportunities thanks to Web 3.0 include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;**The New Order:" The Web 2.5 model is used by the majority of applications today, just as the web 1.0 model was used by the majority of apps in the late 1990s. Many Web 2 companies are already transitioning to Web 3.0 models and planning for the future. Also, with Web 3.0, it is now easier to start a company via token systems compared to the traditional method of venture capital.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;*&lt;em&gt;Metaverse: *&lt;/em&gt; This is a combination of multiple elements of technology, including virtual reality, augmented reality, and video, where users "live" within a digital universe. It also translates to a digital economy, where users can create, buy, and sell goods. And, in the more idealistic visions of the metaverse, it's interoperable, allowing you to take virtual items like clothes or cars from one platform to another. Decentraland is a well-known example of this concept.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DeFi:&lt;/strong&gt; DeFi stands for "Decentralized Finance," and as the name implies, it is finance based on a decentralized approach. DeFi has been around for a while and allows individuals to take the capabilities of standard peer-to-peer blockchain transactions to a whole new level, allowing some Dapps to operate as decentralized banks. DeFi enables some Dapps to function as banks, providing services such as lending and borrowing, investments, insurance, trading, and liquidity pools, which are all examples of financial services.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to make money from web 3.0 today!
&lt;/h2&gt;

&lt;p&gt;Web 3.0 is the next big thing. Hence, understanding how to take advantage of this technology and generate consistent income from it is an added advantage.&lt;/p&gt;

&lt;p&gt;If you're a creative who wants to achieve financial independence by doing what you love, web 3.0 can help you achieve this goal.&lt;br&gt;
  Web 3.0 offers legal ways to earn money online from the comfort of your home. Here are some ways to leverage this power:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Decentralized Autonomous Organizations (DAOs):&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NFTs:&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cryptocurrencies:&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Web creator platforms:&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dapps and web 3.0 technology development:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Decentralized Autonomous Organizations (DAOs)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;In the traditional way of building a company, individuals relied on venture capital and gave away a percentage of their company to raise the funds required to scale the idea and company, which comes with lots of uncertainties. In Web 3.0, the process of starting and scaling an idea is easier. The project, which solves a real problem, is announced. Then anyone can participate in building it or investing in it from day one. &lt;/p&gt;

&lt;p&gt;The company announces the release of x number of tokens and gives 10% to the early builders, puts another 10% up for sale to the public, and sets the rest aside for future payment of contributors and funding of the project. Stakeholders can use their tokens to vote on changes to the future of the project, and the people who helped build the project can sell some of their holdings to make money after the tokens have been released. People who believe in the project can buy and hold ownership, and people who think the project is headed in the wrong direction can signal this by selling their stake.&lt;/p&gt;

&lt;p&gt;Unlike companies we see today, DAOs are organizations owned and managed by their members. DAOs are managed by a set of rules or agreements (smart contracts in the form of code) that are automatically implemented without human intervention depending on specific activities on the blockchain. When starting a DAO, you can earn money by convincing others to invest in your business idea. You can also reach a large number of investors, resulting in a large amount of financing for your business. All you need is a good concept and a team of blockchain developers to get started.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;NFTs&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Did you know that a Png or gif can be sold for $50,000? If you don't, then it's time for you to start exploring the world of NFTs. NFT stands for Non-Fungible Token. They are art pieces, but instead of being shown in museums, they are digital, similar to the wallpaper on your phone or random photos you download from the Internet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr2acu9wt2o99xq1llz38.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr2acu9wt2o99xq1llz38.jpeg" alt="A digital art NFT by the BoredApeYatchClub"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Trading NFTs right now is one of the most unfair ways to make a profit. You are literally selling a 200kb Png, gif, mp3, or jpeg for millions of dollars. Thanks to the Metaverse concept, NFTs sell at ridiculous prices. NFTs may be used in the metaverse to show that you support a certain project or that you are a member of a particular community within or outside of the virtual world. As a result, like-minded people may establish communities where they can share ideas and work on initiatives.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Cryptocurrencies:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The cryptocurrency industry has grown substantially since Satoshi Nakamoto published the original Bitcoin whitepaper in 2008. More than a decade later, most people are aware of the terms "Bitcoin" and "cryptocurrency". Since 2009, the crypto space has created its fair share of wealth for early adopters and investors. While the early gains in crypto have already been made, the industry remains in the initial stages of development. There are a variety of ways to make money and produce revenue in this space. However, because of the inherent volatility of crypto assets, the majority of them are high-risk, while some require subject knowledge or skill.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Web 3.0 creator platforms:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Unlike Web 2 platforms, where data from users is gathered and sold by those in control, on the Web 3.0 platform, users are paid for their data. They have complete control over their information and censorship.&lt;/p&gt;

&lt;p&gt;Some examples of web 3.0 content platforms for earning income are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="//www.gitcoin.co"&gt;Gitcoin.co&lt;/a&gt;: &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8kwwe56zn3qvvcablao0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8kwwe56zn3qvvcablao0.png" alt="-"&gt;&lt;/a&gt;&lt;br&gt;
Gitcoin allows individuals to earn by contributing to open-source projects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="//www.mirror.xyz"&gt;Mirror.xyz&lt;/a&gt;: &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftsr72l4attksa2kkszhf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftsr72l4attksa2kkszhf.png" alt="-"&gt;&lt;/a&gt;&lt;br&gt;
Mirror is known to be the first decentralized writing platform. Mirror's publishing platform revolutionizes the way we express, share, and monetize our thoughts. Mirror operates not only on a user-owned, decentralized, crypto-based publishing network. Writers on this platform get paid in cryptocurrency (Ethereum). Writers may also sell NFTs on the platform to raise funds for their projects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://play.flixxo.co/" rel="noopener noreferrer"&gt;Flixxo&lt;/a&gt;: &lt;br&gt;
   &lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3pzo5i3jhzucqwjvut4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3pzo5i3jhzucqwjvut4.png" alt="-"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Flixxo is a decentralized video distribution platform that runs on a decentralized blockchain network.&lt;br&gt;
  Unlike YouTube, Facebook, and TikTok, users on this network have complete control over how their videos are distributed and monetized. Creators can receive payments directly from viewers without any intermediary services. The native token of flixxo, FLIXX, may be used to watch videos, share them with others, and be utilized outside of the flixxo ecosystem.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Dapps and DAOs developer:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;There are several DAO projects released every day, which means an increase in opportunities for developers to look for projects they love and earn from them by contributing to the project. Also, with the increase in popularity and adoption of Web 3.0, there is an increase in demand for Web 3.0 apps (Dapps) and technologies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Web 3.0 is gaining traction in a variety of industries, including music, video streaming, and even gaming. &lt;br&gt;
There are thousands of people passionately working to make this space more accessible for all. Soon you will be using web 3.0 apps without even knowing it.&lt;/p&gt;

&lt;p&gt;To stay updated and informed about new and emerging technologies and careers, sign up for my newsletter.&lt;/p&gt;

&lt;p&gt;If you have any questions or just want to chat, feel free to DM me&lt;/p&gt;

&lt;p&gt;LinkedIn: &lt;a href="http://www.linkedin.com/in/sokaribosenibo/" rel="noopener noreferrer"&gt;www.linkedin.com/in/sokaribosenibo/&lt;/a&gt;&lt;br&gt;
Email: &lt;a href="mailto:sokaribomoshea@gmail.com"&gt;sokaribomoshea@gmail.com&lt;/a&gt;&lt;br&gt;
Website: sokaribosenibo.com&lt;/p&gt;

</description>
      <category>web3</category>
      <category>blockchain</category>
      <category>webmonetization</category>
    </item>
    <item>
      <title>The advantage of CCMS in technical writing</title>
      <dc:creator>Sokaribo Senibo</dc:creator>
      <pubDate>Mon, 20 Dec 2021 21:01:05 +0000</pubDate>
      <link>https://dev.to/sokaribosenibo/the-advantage-of-ccms-in-technical-writing-1mg3</link>
      <guid>https://dev.to/sokaribosenibo/the-advantage-of-ccms-in-technical-writing-1mg3</guid>
      <description>&lt;p&gt;Technical communication and technical writing have become a constantly evolving field, from providing support for products to a knowledge-centered field that focuses on contributing knowledge that adds value to an organization. As it evolves its needs have become more complex and dynamic, hence the need for content management systems.&lt;/p&gt;

&lt;p&gt;This article summarizes the role and advantages of a component content management system (CCMS) in technical writing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of content
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What is CMS and CCMS?&lt;/li&gt;
&lt;li&gt;Features of CCMS&lt;/li&gt;
&lt;li&gt;The benefit of CCMS in technical writing&lt;/li&gt;
&lt;li&gt;Conclusion&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Keywords
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Content management systems, Component content management systems, technical communications, Technical writing, technical documentation&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What are CMS and CCMS?
&lt;/h2&gt;

&lt;p&gt;Technical writers produce diverse content, from business documents to technical manuals, marketing materials, and a wide range of other textual and audiovisual data. The way these contents are saved, organized, and modified can have a big impact on the productivity and efficiency of a project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Content management systems (CMS)&lt;/strong&gt; are platforms designed to save, collect, organize, modify, and publish content in diverse mediums. They can be described as text editors run by a relational and searchable database. A content management system enables technical authors to know what exists, where it exists, if it even exists, and who published it. &lt;/p&gt;

&lt;p&gt;Common CMS editors for technical documentation include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MadCap Flare&lt;/li&gt;
&lt;li&gt;RoboHelp&lt;/li&gt;
&lt;li&gt;Wikis&lt;/li&gt;
&lt;li&gt;SharePoint&lt;/li&gt;
&lt;li&gt;Wix&lt;/li&gt;
&lt;li&gt;Joomla&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Component content management systems (CCMS)&lt;/strong&gt;, on the other hand, are a type of CMS that segments content into discrete, self-contained components that can be easily shared and reused across a wide range of publications and channels. They enable technical writing teams to create, manage, publish, and store content at a granular level (component).&lt;/p&gt;

&lt;p&gt;Common CCMS editors for technical documentation include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Oxygen XML-Author&lt;/li&gt;
&lt;li&gt;Adobe FrameMaker&lt;/li&gt;
&lt;li&gt;Xyleme&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The primary difference between a typical CMS and a CCMS is the level of content management. A typical CMS manages content at a document level, while a CCMS manages content at a component level.&lt;/p&gt;

&lt;p&gt;Components here refer to self-contained, structured, and reusable information that has "the ability to be recycled in numerous outputs for multiple audiences."&lt;/p&gt;

&lt;p&gt;Within CCMS, content is managed at the level of words, paragraphs, topics, concepts, or assets, usually through the use of an XML-based data model like Darwin Information Typing Architecture (DITA) or DocBooks.&lt;/p&gt;

&lt;p&gt;Two main features that separate CCMS from other content management systems are metadata and granularity. Metadata enables CCMS editors function regardless of scale, while granular control of components distinguishes and adds special functions to CCMS.&lt;/p&gt;

&lt;h2&gt;
  
  
  The benefits of CCMS in technical writing
&lt;/h2&gt;

&lt;p&gt;Until the emergence of CCMS and other component-based authoring tools, Microsoft Word was the most frequently utilized tool for documentation. In that era of Microsoft Word-based documentation, technical writers had to worry about both content and layout, which were tightly intertwined. Changes to either content or the layout usually caused problems with the later, hence an additional publishing application is usually necessary to generate sophisticated formats that Microsoft Word does not support, such as EPUB or CHM.&lt;/p&gt;

&lt;p&gt;If documents shared information, the most common method of reuse was copying and pasting. When the reused information was updated, it had to be manually updated everywhere it was used, which resulted in inconsistent and out-of-date content.&lt;/p&gt;

&lt;p&gt;When documents were written for users who spoke a variety of languages, the manual burden of copying and pasting increased as the number of languages increased. Also, documents were often kept on the local computers of technical writers and were not uploaded and shared until they were completed, creating barriers for technical authors to reuse information written by others, limiting access to other departments, and generating safety and knowledge management issues. This kind of technical documentation process, which produces inefficient effort, inconsistent and out-of-date information, and dissatisfied users, could be resolved using a content management system.&lt;/p&gt;

&lt;p&gt;CCMS empowers organizations and technical writers to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;h2&gt;
  
  
  Manage Effectively
&lt;/h2&gt;

&lt;p&gt;The capacity to reuse information using a single-sourcing technique, which prevents information inconsistency, saves the time spent updating information, and lowers the cost of both authoring and translation, is one of the major benefits of adopting CCMS. CCMS also has a variety of built-in, branded templates and corporate taxonomy alignments, which can eliminate design inconsistencies and improve the end-user experience.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h2&gt;
  
  
  Update easily
&lt;/h2&gt;

&lt;p&gt;CCMS enable technical writers to search for a keyword in a publication and jump to a specific page without logging in to multiple systems. The built-in reporting system, enable authors to see exactly where each piece of content has been used (and reused). Also, thanks to metadata tagging, technical authors can track content lifecycle and tag properties at the component level (paragraph, image, question table, etc.). Data is provided at the most granular level, which can state; who authored a specific piece of content, to when it was last modified, expiration dates, and more.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h2&gt;
  
  
  Publish quickly
&lt;/h2&gt;

&lt;p&gt;With centralized, reusable content, built-in publishing templates, collaborative processes, and seamless upgrades at the component level, CCMS reduces publishing time. Also, translation costs are reduced and communication is streamlined with collaborative review sessions, real-time feedback, as well as the ability to track activity at the version level to gain an accurate picture of content and user histories in order to support legal discovery, simplify audit requests and facilitate regulatory compliance.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The cost of adopting CCMS can be a pain for many companies, but in reality, it saves you a lot of money in the long run. CCMS offers a better way to create, store, and deploy content by automating and simplifying the workflow of documentation, which enables you to leverage information assets and promote collaboration on a fundamental level.&lt;/p&gt;

</description>
      <category>writing</category>
      <category>career</category>
      <category>codenewbie</category>
      <category>performance</category>
    </item>
    <item>
      <title>Fundamentals of technical writing</title>
      <dc:creator>Sokaribo Senibo</dc:creator>
      <pubDate>Mon, 13 Dec 2021 09:54:48 +0000</pubDate>
      <link>https://dev.to/sokaribosenibo/fundamentals-of-technical-writing-1681</link>
      <guid>https://dev.to/sokaribosenibo/fundamentals-of-technical-writing-1681</guid>
      <description>&lt;p&gt;Starting a career in technical writing can be a frustrating process due to the abundance of information and misconceptions about what technical writing is and how to get started.&lt;br&gt;
This article summarises in detail the fundamentals of what you should know and consider when getting started in technical writing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What is technical writing?&lt;/li&gt;
&lt;li&gt;The role of the technical writer&lt;/li&gt;
&lt;li&gt;Skills required in technical writing&lt;/li&gt;
&lt;li&gt;The technical writer's toolbox&lt;/li&gt;
&lt;li&gt;Design thinking and the writing process&lt;/li&gt;
&lt;li&gt;Starting a career in technical writing&lt;/li&gt;
&lt;li&gt;Summary&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is technical writing?
&lt;/h2&gt;

&lt;p&gt;Technical writing is a unique sphere that unites communication and technology.&lt;br&gt;
It is the art of providing detail-oriented instructions to help users comprehend a specific skill, technology, or product. There are misconceptions that technical writing is just about writing. In reality, it is also about researching, understanding a technology, determining the audience, problem solving, and more.&lt;/p&gt;

&lt;p&gt;Technical writing is part of a bigger field called &lt;a href="https://www.mastersincommunications.com/faqs/what-is-technical-communication"&gt;Technical communications&lt;/a&gt;, which encompasses a set of activities that people do to discover, shape, and transmit technical information. The major difference between technical communication and the other kinds of writing is that technical communication has a somewhat different focus on purpose and audience.&lt;/p&gt;

&lt;h2&gt;
  
  
  The role of the technical writer
&lt;/h2&gt;

&lt;p&gt;In simple terms, the role of a technical writer is that of a translator, whose aim is to explain difficult subjects to a specific audience in clear, easy-to-understand text.&lt;br&gt;
In organizations, technical writers work with multidisciplinary teams to develop a communication strategy, acting as a mediator between the more technical staff and the less technical readers. A technical writer’s responsibility extends beyond just writing to understanding the entire project, from high level goals to the intricacies of implementation.&lt;br&gt;
Depending on the industry and company, documents created by technical writers can be divided into the following broad categories;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;UI Based Docs&lt;/li&gt;
&lt;li&gt;Developer Docs&lt;/li&gt;
&lt;li&gt;Deployment Docs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;UI-based docs are documents that capture details of the software user interface. They specify how the end user may navigate the UI of a product or software. They include product manuals, repair manuals, user guides, etc.&lt;/p&gt;

&lt;p&gt;Developer Docs are documents that describe every aspect of how developers should interface with a given software or library. A subset of developer docs is &lt;a href="https://stoplight.io/api-documentation-guide/basics/"&gt;API (Application Programming Interfaces) documentation&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Deployment documents, on the other hand, are documents that assist users in deploying and securing a product or software on another product or software. They include &lt;a href="//www.sdk.org"&gt;SDK (Software Development Kit) Documentation&lt;/a&gt;, which are helper documents or libraries that guide developers when they create apps for a specific product or platform.&lt;/p&gt;

&lt;p&gt;In general, technical writers produce technical documents that show the user the layout of products or processes, explain what lies ahead, and define how to navigate each step to achieve the desired result.&lt;/p&gt;

&lt;h2&gt;
  
  
  Skills required in technical writing
&lt;/h2&gt;

&lt;p&gt;Different documentation requires a different set of skills. However, there are fundamental skills required in technical writing.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Critical and Creative Thinking Capabilities
&lt;/h3&gt;

&lt;p&gt;The importance of creative and critical thinking cannot be overemphasized. Technical writers have to be able to think through a problem, break it down into manageable bits, and make seasoned and clear judgments. They have to be empathetic and have the ability to teach or describe terms in ways suitable for the intended audience.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Writing and Research Skills
&lt;/h3&gt;

&lt;p&gt;An effective technical writer has to be an investigative reporter as well as a journalist. As a result, it is critical for technical writers to understand and have a good grasp of English, be a good team player, be able to conduct research and gather data through interviews, and put the results and information into clear writing.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Testing and Troubleshooting Skills
&lt;/h3&gt;

&lt;p&gt;Part of a technical writer’s primary task is to be familiar with the product’s features. As a result, before producing documentation, a technical writer may be invited to participate in product testing, which assists in the creation of an easy-to-understand guidebook.&lt;br&gt;
They have to go through each feature of the product one by one. After that, build a list of features that work well and another list of ones that don’t. In other circumstances, features may function properly, but the product design itself may be unappealing.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Technological innovation is consistently moving forward; new features and products are continuously designed. Hence, technical writers have to be able to quickly adapt and work with diverse technical tools. Technical writers are lifelong learners.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Technical Writer's Toolbox
&lt;/h2&gt;

&lt;p&gt;There are several software and tools required in technical writing depending on the project and company. &lt;br&gt;
Fundamental technical tools for technical writers can be categorised into the following;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Text development tools &lt;/li&gt;
&lt;li&gt;Help or web authoring tools&lt;/li&gt;
&lt;li&gt;Style guides&lt;/li&gt;
&lt;li&gt;Publishing tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are several available options for each of the above categories of tools. &lt;/p&gt;

&lt;h3&gt;
  
  
  Text development tools
&lt;/h3&gt;

&lt;p&gt;These are word processing, document processing, and desktop publishing packages that support authoring. Several technical writers use a basic word processing program like Microsoft Word. Although Word is adequate for short business documents, it can be inadequate for technical writing as it is not designed for long, complex documents.&lt;br&gt;
Other options include;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;FrameMaker&lt;/li&gt;
&lt;li&gt;MarkDown&lt;/li&gt;
&lt;li&gt;DocBook&lt;/li&gt;
&lt;li&gt;AuthorIT, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a structured authoring environment, Extensible MarkUp Language (XML) authoring tools may be adopted in place of document or desktop publishing tools. Examples of XML tools include XMetal, Arbortext editor, In.Vision, and Oxygen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Help or web authoring tools
&lt;/h3&gt;

&lt;p&gt;To develop online help or web based materials, there is a need for a help or &lt;a href="//www.whatishtml.com"&gt;HTML&lt;/a&gt; tool. For online help, tools such as RoboHelp and Flare can be used. To write HTML, Dreamweaver can be used. To create documents for more than one output (example, print and HTML), a text development tool with conversion capabilities or compatible third party conversion tools should be adopted.&lt;br&gt;
There are several third-party tools that can convert word processing files to other formats, including online help, HTML, HTML Help, JavaHelp, and XML. ePublisher and MIF2GO are examples of third-party conversion tools.&lt;/p&gt;

&lt;h3&gt;
  
  
  Style guides
&lt;/h3&gt;

&lt;p&gt;A technical writer's style guide is a set of guidelines that technical writers must follow when writing technical documentation. They define the style that should be adopted in technical writing. These style guides enable documentation to be written in a clearer, consistent tone and style.&lt;br&gt;
These guidelines explain issues such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The word count&lt;/li&gt;
&lt;li&gt;Punctuation&lt;/li&gt;
&lt;li&gt;Capitalization&lt;/li&gt;
&lt;li&gt;Word choice and terminology&lt;/li&gt;
&lt;li&gt;Highlighting&lt;/li&gt;
&lt;li&gt;Acronym use&lt;/li&gt;
&lt;li&gt;Use of charts and figures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The style guide adopted is usually dependent on the type of documentation project. Most companies and technical writers develop their own style guides and distribute them to all employees in either printed or online forms. Other companies and technical writers may follow the guidelines in an established reference such as:&lt;em&gt;&lt;a href="//www.chicagomanual.com"&gt;The Chicago Manual of Style&lt;/a&gt;, _&lt;a href="//www.handbookoftechnicalwriting.com"&gt;The Handbook of Technical Writing&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="//www.opensuse.org"&gt;Open SUSE&lt;/a&gt;&lt;/em&gt;, etc.&lt;/p&gt;

&lt;p&gt;The Chicago Manual of Style is a guide that focuses primarily on grammar and writing style. It provides guidance for punctuation, capitalization, abbreviations, hyphens, dashes, plurals, and possessiveness. Technical writers can adopt this style when writing software documentation or technical information for the web.&lt;/p&gt;

&lt;p&gt;The Handbook of Technical Writing offers guidelines for writing in a variety of technical contexts. The style guide provides tips for professional communication, organization and style, document design, tables, graphics, math notation, punctuation usage, and how to write technical documentation for other geographic regions.&lt;/p&gt;

&lt;p&gt;Open Suse is an open-source style guide for developers and designers who are creating software documentation.&lt;br&gt;
The technical writer's style guide is a one-page document that provides guidelines for grammar, formatting, punctuation, capitalization rules, hyphenation of compound words (receipts vs. receipts), etc. It also specifies the preferred fonts as Liberation Sans Narrow with Arial or Times New Roman as backup font choices. Moreover, the guide has a DocBook markup at the end to help you select the right XML element and make your document easy to translate from English.&lt;/p&gt;

&lt;p&gt;There are several technical writing style guides available, but it is important to adhere to a technical writing style guide that defines the communication standards for the documentation to be created. Technical writing style guides are fundamental considerations for any technical writing project. They are the blueprint for writers to follow when creating technical documentation.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Technical Writing Process
&lt;/h2&gt;

&lt;p&gt;Technical writing goes beyond just sitting down and typing; it also includes various tasks such as visual design, editing, and project management. &lt;br&gt;
The following technical writing process can be adopted:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understand the task&lt;/li&gt;
&lt;li&gt;Define your audience&lt;/li&gt;
&lt;li&gt;Set up a doc plan&lt;/li&gt;
&lt;li&gt;Get Started&lt;/li&gt;
&lt;li&gt;Review and publish&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Starting smart and following a process encourages success in technical writing.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Understand the project
&lt;/h3&gt;

&lt;p&gt;Understanding the project sets you up for success and makes your writing time more effective. Take time to clearly understand the task at hand. Note all the requirements; document type, subject area/content, scope, and goal of the project. It is important to identify the needed deliverables.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Define your audience
&lt;/h3&gt;

&lt;p&gt;One of the major writing factors in technical writing is the audience. Every technical writing project is targeted towards a specific user. Hence, the user should always be at the forefront of the technical writer’s mind. Enough knowledge should be gathered about who will use the document and what the user will be looking for when they read the document.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="//www.janetmizrahi.com"&gt;Janet Mizrahi&lt;/a&gt;,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Knowing the audience, your reader, is imperative for successful writing..." In essence, we have to psych out the reader to accomplish our writing goal. We cannot do that unless we analyze the reader accurately. "&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Set up a doc plan
&lt;/h3&gt;

&lt;p&gt;After understanding the task and the user of the document, conceptualize your document. Technical information can be complex. It is important to create an outline or overall project plan with a list of tasks for each deliverable and a draft schedule. Tasks can include outlining, creating storyboards, writing, editing, designing visual content, reviewing, and so on. While setting out your document, it is important to research the project.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Get started
&lt;/h3&gt;

&lt;p&gt;It is time to get started. Start writing by following the doc plan, having the audience in mind and understanding the project. Create the content, create the visuals, consult the subject matter experts (SMEs), and discuss with the team.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;h3&gt;
  
  
  Review and publish
&lt;/h3&gt;

&lt;p&gt;After writing, it is important to review the project to ensure it achieves the goal of the project, is tailored to a specific user, is consistent with the style guide, and aligns with the doc plan. After reviewing, you may publish or submit the project. &lt;br&gt;
There are several platforms to publish articles and projects, such as &lt;a href="//www.dev.to"&gt;Dev.to&lt;/a&gt;, &lt;a href="//www.hashnode.com"&gt;Hashnode&lt;/a&gt;, and &lt;a href="//www.github.com"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Starting a career in technical writing
&lt;/h2&gt;

&lt;p&gt;Technical writing, just like any profession, has various processes, rules, best practices, skills, and so on that need to be understood.&lt;br&gt;
There are several online learning platforms and certifications available to learn these processes and skills and kickstart a career in technical writing.&lt;br&gt;
Preferred options include;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.techwritingacademy.com/"&gt;Technical writing workshop with  Amruta Ranade&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.coursera.org/learn/technical-writing"&gt;The MIPT technical writing course&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.stc.org/"&gt;Certification from the Society of Technical Communication&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://techwriter-certification.com/"&gt;TechWriter Certification&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://workspace.oregonstate.edu/certificate/technical-writing-certificate?hsLang=en"&gt;Oregon State University Technical Writing Certificate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After learning, the major aspect of starting a technical writing career is to practice and build a portfolio. A portfolio proves proficiency in technical writing and showcases technical writing skills to hiring managers and companies in search of technical writers.&lt;/p&gt;

&lt;p&gt;To build a portfolio, follow the following process:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Choose a technology or topic of interest&lt;/li&gt;
&lt;li&gt;Write a tutorial on the technology or topic of interest&lt;/li&gt;
&lt;li&gt;Write a how-to guide&lt;/li&gt;
&lt;li&gt;Write a reference document&lt;/li&gt;
&lt;li&gt;Write an explainer document for the technology or topic of interest&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;By understanding what you are getting into, learning the fundamentals, practicing intelligently, building a relevant portfolio, and developing a practice routine, it becomes easier to make progress quickly and consistently. There are several open source projects available on GitHub to improve your technical writing skills. Open source projects are projects that are free to use, study, modify, and distribute. To learn more about open source projects visit &lt;a href="https://ruthikegah.xyz/an-open-source-contribution-in-5-steps"&gt;Ruth Ikegah's blog&lt;/a&gt;.&lt;br&gt;
Also, joining a technical writing community is important to stay updated with relevant information and improvements in the technical writing profession.&lt;/p&gt;

&lt;p&gt;There are several technical writing communities available, such as: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.stc.org/"&gt;The Society for Technical Communications (STC)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/groups/112571/"&gt;Technical Writer's Forum&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//www.hashnode.com"&gt;Hasnode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="//www.dev.to"&gt;Dev.to&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.writethedocs.org/slack/"&gt;Write the Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/groups/1086137/"&gt;Technical Writer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Technical writers tend to spend a lot of time in front of a computer, so it is important to have an ergonomic workspace to prevent repetitive motion injuries like carpal tunnel syndrome and other problems such as eyestrain. Always consider the height and position of your chair and keyboard, your posture, and the lighting condition of the work environment.&lt;/p&gt;

&lt;p&gt;As you progress in your journey as a technical writer, there are other things you need to learn and consider. This article is intended to serve as a foundation for technical writing.&lt;/p&gt;

&lt;p&gt;Feel free to reach out to me for clarifications, questions, job opportunities, etc.&lt;/p&gt;

</description>
      <category>technicalwriting</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
