<?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>Forem: Busari Ridwan</title>
    <description>The latest articles on Forem by Busari Ridwan (@one).</description>
    <link>https://forem.com/one</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%2F542458%2Fc29d1eac-9d67-4f8e-948a-c5b0833a5cfd.jpg</url>
      <title>Forem: Busari Ridwan</title>
      <link>https://forem.com/one</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/one"/>
    <language>en</language>
    <item>
      <title>Java: The WHORE Without The H</title>
      <dc:creator>Busari Ridwan</dc:creator>
      <pubDate>Mon, 24 Jun 2024 18:37:24 +0000</pubDate>
      <link>https://forem.com/one/java-the-whore-without-the-h-4c0n</link>
      <guid>https://forem.com/one/java-the-whore-without-the-h-4c0n</guid>
      <description>&lt;p&gt;After a hard fast thrust, comes Sun's 1995 release, Java. People's love for Java is abound. This is because of the Java Virtual Machine, which ensures the same Java code can be run on different operating systems and platforms. This made  Sun Microsystems’ slogan for Java was “Write Once, Run Everywhere”. The WhORE, &lt;br&gt;
Java, runs on different platforms, but programmers write it the same way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which other programming language is a WORE?
&lt;/h2&gt;

</description>
      <category>java</category>
      <category>programming</category>
      <category>oop</category>
    </item>
    <item>
      <title>Using ChatGPT: Examples of POST and GET API Call in JavaScript</title>
      <dc:creator>Busari Ridwan</dc:creator>
      <pubDate>Wed, 11 Jan 2023 10:58:59 +0000</pubDate>
      <link>https://forem.com/one/using-chatgpt-examples-of-post-and-get-api-call-in-javascript-jpi</link>
      <guid>https://forem.com/one/using-chatgpt-examples-of-post-and-get-api-call-in-javascript-jpi</guid>
      <description>&lt;p&gt;Netizens have been talking about ChatGPT by OpenAPI and I decided to try it out. My search goes thus - "Example of get and post call in JavaScript" and below is the response I got.&lt;/p&gt;

&lt;p&gt;In JavaScript, you can use the fetch() API to make HTTP requests, such as GET and POST requests. Here's an example of a GET request:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;fetch("https://jsonplaceholder.typicode.com/posts/1")
  .then(response =&amp;gt; response.json())
  .then(data =&amp;gt; {
    console.log(data);
  });

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code uses the fetch() method to make a GET request to the specified URL. The .then() method is used to handle the response returned by the server. The first .then() method is used to parse the response as JSON, and the second .then() method is used to access the data and do something with it.&lt;/p&gt;

&lt;p&gt;For a POST request, you can use the fetch() method along with the Request() constructor to specify the request method and the request body:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const data = { title: "foo", body: "bar", userId: 1 };

fetch("https://jsonplaceholder.typicode.com/posts", {
    method: "POST",
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify(data)
  })
  .then(response =&amp;gt; response.json())
  .then(data =&amp;gt; {
    console.log(data);
  });

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code creates a JavaScript object that represents the data to be sent to the server, and then it uses the fetch() method to make a POST request to the specified URL. The headers option is used to set the Content-Type header to application/json, and the body option is used to send the data as the request body.&lt;/p&gt;

&lt;p&gt;Please note that these are examples only and the URLs are not real endpoints, that means that you will not get a real response from these URLs.&lt;br&gt;
Also, in a real-world scenario, you should also handle errors and other edge cases, and add validations, loading spinners, and other features.&lt;/p&gt;

&lt;p&gt;What's your thought on ChatGPT?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>privacy</category>
      <category>discuss</category>
    </item>
    <item>
      <title>React Native: Prevent Screen Capture on Selected Screens</title>
      <dc:creator>Busari Ridwan</dc:creator>
      <pubDate>Sat, 07 Jan 2023 17:05:22 +0000</pubDate>
      <link>https://forem.com/one/react-native-prevent-screen-capture-on-selected-screens-19f6</link>
      <guid>https://forem.com/one/react-native-prevent-screen-capture-on-selected-screens-19f6</guid>
      <description>&lt;p&gt;Apps prevent users from recording screens or taking screenshots of screens with sensitive informations. When screen capture is disabled on an app, users usually gets a notification informing them the feature have been disabled while users who tries to record the screen(s) see only dark screens when viewing the recording. &lt;/p&gt;

&lt;h1&gt;
  
  
  React Native Screen Capture: Prevent Screen Recording and Screenshot
&lt;/h1&gt;

&lt;h2&gt;
  
  
  How to Prevent Screen Capture (Screenshot and Screen Record) in React Native
&lt;/h2&gt;

&lt;p&gt;To prevent screen capture on a React Native app, the following package is installed and implemented as below.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install &lt;code&gt;expo-screen-capture&lt;/code&gt; using expo.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx expo install expo-screen-capture
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can read more on the documentation &lt;a href="https://docs.expo.dev/versions/latest/sdk/screen-capture/"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Import &lt;code&gt;usePreventScreenCapture&lt;/code&gt; from &lt;code&gt;expo-screen-capture&lt;/code&gt; on any of your screens.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { usePreventScreenCapture } from 'expo-screen-capture';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Call the &lt;code&gt;usePreventScreenCapture();&lt;/code&gt; function on the screen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See full code below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { usePreventScreenCapture } from 'expo-screen-capture';
import React from 'react';
import { Text, View } from 'react-native';

export default function ScreenCaptureExample() {
  usePreventScreenCapture();

  return (
    &amp;lt;View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}&amp;gt;
      &amp;lt;Text&amp;gt;As long as this component is mounted, this screen is unrecordable!&amp;lt;/Text&amp;gt;
    &amp;lt;/View&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above steps prevents screen capture (screenshot and screen record) for the entire app. But sometimes, we just want to prevent screenshot or screen record on certain screens and not all the screens. &lt;/p&gt;

&lt;h2&gt;
  
  
  React Native: How to Prevent Screen Capture (Screenshot and Record) for Selected Screens (Single or more Screens)
&lt;/h2&gt;

&lt;p&gt;To prevent screenshot on selected screens and not the entire app, we will be activating the prevent screen capture function when focus is on the selected screen and disable the feature when the screen is out of focus. We will simply be using the &lt;code&gt;useIsFocused&lt;/code&gt; function of &lt;code&gt;@react-navigation/native&lt;/code&gt; to check when the selected screen is in focus or out of focus and the &lt;code&gt;preventScreenCaptureAsync&lt;/code&gt; and &lt;code&gt;allowScreenCaptureAsync&lt;/code&gt; functions from &lt;code&gt;expo-screen-capture&lt;/code&gt; we installed in the above steps to activate and deactivate the functionality respectively. &lt;/p&gt;

&lt;p&gt;Here are the steps to prevent screen capture on selected screens.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First install the &lt;code&gt;react-navigation&lt;/code&gt; using &lt;code&gt;npm&lt;/code&gt; or &lt;code&gt;yarn&lt;/code&gt; as below:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install @react-navigation/native
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here is the full documentation on how to install the &lt;a href="https://reactnavigation.org/docs/getting-started/"&gt;react-navigation&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Import the &lt;code&gt;useIsFocused&lt;/code&gt; function from &lt;code&gt;@react-navigation/native&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import { useIsFocused } from '@react-navigation/native';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Call the &lt;code&gt;useIsFocused()&lt;/code&gt; you just imported and assign it to a variable on the selected screen.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const isFocused = useIsFocused();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Now, install &lt;code&gt;expo-screen-capture&lt;/code&gt; using expo if you've not done that already.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Import all the functions from &lt;code&gt;expo-screen-capture&lt;/code&gt; using the wild card * as &lt;code&gt;ScreenCapture&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import * as ScreenCapture from 'expo-screen-capture';
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Create to &lt;code&gt;async&lt;/code&gt; functions using the &lt;code&gt;preventScreenCaptureAsync()&lt;/code&gt; and &lt;code&gt;allowScreenCaptureAsync()&lt;/code&gt; respectively.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
const activate = async () =&amp;gt; {
    await ScreenCapture.preventScreenCaptureAsync();
  };

  const deactivate = async () =&amp;gt; {
    await ScreenCapture.allowScreenCaptureAsync();
  };

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Call the activate function just created when screen is in focus and call the deactivate function when the screen is out of focus as shown in the full code below.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import * as React from 'react';
import { Button, StyleSheet, View } from 'react-native';
import * as ScreenCapture from 'expo-screen-capture';
import { useIsFocused } from '@react-navigation/native';

export default function LoginScreen() {
 // This hook returns `true` if the screen is focused, `false` otherwise
  const isFocused = useIsFocused();

  const activate = async () =&amp;gt; {
    await ScreenCapture.preventScreenCaptureAsync();
  };

  const deactivate = async () =&amp;gt; {
    await ScreenCapture.allowScreenCaptureAsync();
  };

if(isFocused){
       activate();
   }else{
       deactivate();
   }


  return (
    &amp;lt;View style={styles.container}&amp;gt;
      ...
    &amp;lt;/View&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above prevents screen capture just on Login screen and allows screen capture on all other screens except specified.&lt;/p&gt;

&lt;p&gt;Thank you for reading. I will like to here from you in the comments section. &lt;/p&gt;

</description>
      <category>reactnative</category>
    </item>
    <item>
      <title>Single Line and Multiline Comment in Top Programming Languages</title>
      <dc:creator>Busari Ridwan</dc:creator>
      <pubDate>Sun, 01 Jan 2023 14:51:45 +0000</pubDate>
      <link>https://forem.com/one/single-line-and-multiline-comment-in-top-programming-languages-33ll</link>
      <guid>https://forem.com/one/single-line-and-multiline-comment-in-top-programming-languages-33ll</guid>
      <description>&lt;p&gt;A comment in computer programming is a programmer-readable explanation or annotation in a computer program's source code. They are included to make the source code simpler to comprehend for humans, and are often disregarded by compilers and interpreters. A programmer can use comments to make their code more readable.&lt;/p&gt;

&lt;p&gt;Here, I will be showing you how to comment in some of the top programming languages of 2023. Some of they languages include JavaScript, Python, Java, TypeScript, C#, C++, PHP, Shell, C, Ruby, Kotlin and Go.&lt;/p&gt;

&lt;p&gt;Most of the C based programming language uses &lt;/p&gt;

&lt;h2&gt;
  
  
  How to Write Comment in VS Code, IntelliJ, Atom, Sublime and Other IDEs
&lt;/h2&gt;

&lt;p&gt;Most IDE uses the &lt;code&gt;Control + /&lt;/code&gt; on Windows and &lt;code&gt;Command + /&lt;/code&gt; on Mac to make comment.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Language do you write and how do you write your comments?
&lt;/h2&gt;

</description>
      <category>emptystring</category>
    </item>
    <item>
      <title>Javascript: Concept of OOP in ES5 vs ES6</title>
      <dc:creator>Busari Ridwan</dc:creator>
      <pubDate>Sat, 05 Nov 2022 18:24:58 +0000</pubDate>
      <link>https://forem.com/one/javascript-concept-of-oop-in-es5-vs-es6-72p</link>
      <guid>https://forem.com/one/javascript-concept-of-oop-in-es5-vs-es6-72p</guid>
      <description>&lt;p&gt;Javascript is originally a functional programming language. Not until ES5 was the concept OOP introduced to Javascript. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Object Oriented Programming (OOP)&lt;/strong&gt; is the concept of liking programming to real life. This is the process of giving objects in programming the characteristics of objects in reality. E.g In reality, objects like ‘car’ have attributes like color, number of doors, number of wheel drives etc and perform some actions like start, speed, stop etc.&lt;/p&gt;

&lt;p&gt;The replication of such characteristics of a &lt;strong&gt;car&lt;/strong&gt; can be done in programming via OOP.  In object oriented programming those attributes are called properties while the actions are called methods.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ways to Create Objects in Javascript
&lt;/h2&gt;

&lt;p&gt;Objects can be created using the constructor functions with prototype in ES5 and using classes in ES6.&lt;/p&gt;

&lt;p&gt;In ES5, Object Oriented Programming (OOP) is done by creating objects using the &lt;strong&gt;Constructor function&lt;/strong&gt;. Let’s say you want a &lt;em&gt;Person&lt;/em&gt; object, you create a constructor function and pass in the properties you want to set as arguments/parameters. After passing them in, we set them to properties of the object using the ‘&lt;em&gt;this&lt;/em&gt;’ keyword. See code snippet below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function Person(firstName, lastName, dateOfBirth){
    this.firstName = firstName;
    this.lastName = lastName;
    this.dateOfBirth = new Date(dateOfBirth);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We then instantiate the object with the constructor function as shown below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const person1 = new Person(‘Busari’, ‘Ridwan’, ’14-09-1998’);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The code above created the &lt;strong&gt;person1&lt;/strong&gt; object. When you &lt;em&gt;console.log(person1);&lt;/em&gt; you should get an object.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
console.log(person1);

// Outputs result to the console

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice the &lt;strong&gt;dateOfBirth&lt;/strong&gt; was displayed as an object and not as a string, this is because, we passed it to the &lt;em&gt;Date&lt;/em&gt; object so we can use the &lt;em&gt;Date&lt;/em&gt; methods to get the Birth Year, Birth Month and Day which you will see below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const person2 = new Person(‘Sari’, Wan’, ’24-07-2004’);

console.log(person2.dateOfBirth.getFullYear());

// We get 2004
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, let’s add methods which are basically functions to our &lt;strong&gt;Person&lt;/strong&gt; object. &lt;/p&gt;

&lt;p&gt;There are two ways to do this in ES5. We can either add the methods directly inside our &lt;em&gt;Person&lt;/em&gt; object or outside using the &lt;strong&gt;.prototype&lt;/strong&gt;. You will see the implementation below as you read on.&lt;/p&gt;

&lt;p&gt;Adding the methods directly into the object in ES5&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
function Person(firstname, lastname, dob){
    this.firstName = firstname;
    this.lastName = lastname;
    this.dateOfBirth = new Date(dob);

    this.getBirthYear = function() {
        return this.dateOfBirth.getFullYear(); 
// the getFullYear() is a method of the Date object.
    }

    this.getFullName = () =&amp;gt; `${this.firstName} ${this.lastName}`;

// I used template literal and arrow function above. 

}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now let’s call our method - getBirthYear and log it to the console.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;console.log(person1.getBirthYear()); // logs the birth year
console.log(person1.getFullName());  // logs the full name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now let’s talk about the prototypes. This is actually the better way to create object methods in ES5.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function Person(firstname, lastname, dob){
    this.firstName = firstname;
    this.lastName = lastname;
    this.dateOfBirth = new Date(dob);
}

Person.prototype.getBirthYear = function() {
    return this.dateOfBirth.getFullYear();
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let’s do the same with the getFullName method.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
Person.prototype.getBirthYear = () =&amp;gt; `${this.firstName} ${this.lastName}`;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let’s log the newly created methods&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
console.log(person2.getFullName());

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s it for object oriented programming in Javascript ES5&lt;/p&gt;

&lt;p&gt;Let’s now dive into Object Oriented Programming in ES6 also called ES2015.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Create Object in Javascript ES6 Using class keyword
&lt;/h2&gt;

&lt;p&gt;We use classes to create objects in ES6. This does the same thing as the constructor function of ES5 and its prototype, but it’s just a prettier way to write it.&lt;/p&gt;

&lt;p&gt;Let’s create our Person class with a constructor/method which takes the arguments and assign it to it’s properties.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
class Person {
    constructor(firstName, lastName, dob ){
        this.lastName = lastName;
        this.firstName = firstName;
        this.dob = dob; 
// I have deliberately changed dateOfBirth to dob for ease of writing
    }

// Now let’s create our prototypes or methods.
    getBirthYear(){
        return this.dob.getFullYear();
    }

    getFullName() {
        return `${this.firstName} ${this.lastName}`;
    }
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, let’s instantiate our newly created object.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
const person1 = new Person(‘You’, ‘Me’, ’05-11-2022’);

console.log(person1.getBirthYear());  // 2022
console.log(person1.getFullName());   // Busari Ridwan


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The code is doing same thing as the constructor function of ES5 and as you can see, it’s a shorter, easier and cleaner way to create an object Person.&lt;/p&gt;

&lt;p&gt;See you next time...&lt;/p&gt;

&lt;p&gt;Here are my social media handles for possible connections:&lt;br&gt;
&lt;a href="https://twiiter.com/busaridwan"&gt;Twitter&lt;/a&gt;&lt;br&gt;
&lt;a href="https://linkedin.com/in/busaridwan"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Don’t Have a Computer? Here is How to Build a Website Using Your Phone</title>
      <dc:creator>Busari Ridwan</dc:creator>
      <pubDate>Tue, 18 Jan 2022 11:38:09 +0000</pubDate>
      <link>https://forem.com/one/dont-have-a-computer-here-is-how-to-build-a-website-using-your-phone-352i</link>
      <guid>https://forem.com/one/dont-have-a-computer-here-is-how-to-build-a-website-using-your-phone-352i</guid>
      <description>&lt;p&gt;As a tech enthusiast, I am always reviewing websites, apps, the designs, creativity, functionalities, user experience and interface of the Web apps. I love playing around with websites and admiring the creativity of the designers.&lt;/p&gt;

&lt;p&gt;A friend noticed this about me and advised that I started my review blog on different brand websites. That way, I will get to learn more about designs and also have an archive for my reviews.&lt;/p&gt;

&lt;p&gt;So I decided to get my own blog but the constraint was that I don't have a personal computer. Only my phone and Internet. I said to myself, the lack of a computer won't make me procrastinate. I won't leave this for later like I always do. &lt;/p&gt;

&lt;p&gt;One other thing about me is, I love professionality. Yes, I want a blog with a custom domain which looks very professional and user friendly. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I started Building my Blog on my Phone&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The first thing I did was to go to Google on my phone browser and searched for "How To Creat a Blog". &lt;/p&gt;

&lt;p&gt;To be continued...&lt;br&gt;
How did you learn about Wed development?&lt;/p&gt;

</description>
      <category>css</category>
      <category>html</category>
      <category>beginners</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Learn Web Development Using Your Phone</title>
      <dc:creator>Busari Ridwan</dc:creator>
      <pubDate>Sun, 21 Nov 2021 11:49:47 +0000</pubDate>
      <link>https://forem.com/one/learn-web-development-using-your-phone-3igf</link>
      <guid>https://forem.com/one/learn-web-development-using-your-phone-3igf</guid>
      <description>&lt;p&gt;As a student from one of the rural areas of Nigeria — a country in Africa, owning a smartphone is a luxury not all parents can afford to give their children not to speak of a personal computer. However, I was lucky enough to be one of the University Scholars, a scholarship program for students with highest grades in every department. I enjoyed free hostel and $200 yearly for upkeep from which I was able to buy my first smartphone, Tecno Q1.&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%2Fm2r0aq89zeie4olvista.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%2Fm2r0aq89zeie4olvista.jpeg" alt="Tecno Q1 phone"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before gaining admission into the university, I have always wondered how phones and computers were made, how browser were built and how Web pages were developed and what makes up Google and its ability to search other websites?&lt;/p&gt;

&lt;p&gt;So having my first smartphone and a free WiFi in the library gave me the resources I needed to answer my questions. Google and YouTube became my best friends whom I visited every time I was in the Library. &lt;/p&gt;

&lt;p&gt;Though, I was studying Biology, I made it upon myself to design my website too. &lt;/p&gt;

&lt;p&gt;But how will I do this with just a phone?&lt;/p&gt;

&lt;p&gt;So I started finding ways to build a website using my Tecno Q1. I will be sharing the resources available to phone users to build a complete website and learn Web development.&lt;/p&gt;

&lt;p&gt;Note, a website can either be built from scratch by coding your way through or using a content management system like &lt;a href="https://wordpress.com" rel="noopener noreferrer"&gt;WordPress&lt;/a&gt;, &lt;a href="https://wix.com" rel="noopener noreferrer"&gt;Wix&lt;/a&gt; or Google's &lt;a href="https://blogger.com" rel="noopener noreferrer"&gt;Blogger&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Know the basics of Web Development&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Through Google searches, I came to know about HTML, CSS and Javascript which are the building blocks of every website on the World Wide Web (WWW). &lt;/p&gt;

&lt;p&gt;HTML is HyperText Markup Language, the skeleton of every Web page which holds the content you see and read on the Web pages. The Cascading Style Sheet shortened as CSS on the other hand is similar to the outer part of the body which gives it shape and beautify the body. CSS as it called is use for styling Web pages while Javacript gives the website its functionality.&lt;/p&gt;

&lt;p&gt;Google is your assistance for those who needs to know more about the three building blocks of a website.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How To Learn HTML, CSS and Javascript using your Phone&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are several ways to learn the basics of Web development using your phone when you have a good Internet. &lt;br&gt;
&lt;a href="https://www.w3schools.com" rel="noopener noreferrer"&gt;W3schools&lt;/a&gt; is a great site to learn any programming language of your choice and Web Development with a platform to test your codes. There are also several Youtube tutorials on Web development and &lt;a href="https://www.freecodecamp.org" rel="noopener noreferrer"&gt;FreeCodeCamp&lt;/a&gt; is also an amazing website to learn to be a Web developer. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Android Apps to Learn Web Development/Programming&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.sololearn.com" rel="noopener noreferrer"&gt;Sololearn&lt;/a&gt;&lt;/strong&gt;: I personally love this app. The interface is superb and the course structures are intuitive. You get to test your knowledge after every lessons. It's also has discussion forums to help out when yiu encounter issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://grasshopper.app" rel="noopener noreferrer"&gt;Grasshopper&lt;/a&gt;&lt;/strong&gt;: developed by the tech giant, Google. It is also an amazing app that teaches users Web Development. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Android App Integrated Development Environment IDE and Code Editor on your Phone&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Code editors makes your Code neater, well structured and readable. Below are samples of good Code editors to make it all easier for you. You can get the apps on your android PlayStore or Apple's Appstore.&lt;/p&gt;

&lt;p&gt;AIDE Web&lt;br&gt;
QuickEdit&lt;br&gt;
DroidEdit&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get Your Website Online Using Your Phone&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are other things apart from building a website you need to know. Before your beautiful website can be seen by others around the world just like you can access Google which was built abroad from your location, you need to host your website on a server and get a domain name for your website. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's a domain name and a Hosting Plan?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;First, your website is like a beautiful house on a piece of land whose location can be determined using latitude and longitudinal measurements. The land or space your house is built on is the server or host (&lt;a href="https://www.hostinger.com" rel="noopener noreferrer"&gt;hostinger.com&lt;/a&gt;, &lt;a href="https://www.whogohost.com" rel="noopener noreferrer"&gt;whogohost.com&lt;/a&gt; are good place to buy your hosting plan) while the latitude and longitude numbers is the IP address of your website. The IP address is long numbers which can be difficult to recall by your visitors which is why we map the numbers on the domain name (address). So people know your location using the address (domain name). &lt;/p&gt;

&lt;p&gt;A domain name can have different extensions like .com .org .net for example &lt;a href="https://code.ng" rel="noopener noreferrer"&gt;code.ng&lt;/a&gt; is my country's specific domain extension. You can get your domain name from domain brokers or registrars like &lt;a href="https://www.namecheap.com" rel="noopener noreferrer"&gt;namecheap&lt;/a&gt; or &lt;a href="https://www.godaddy.com" rel="noopener noreferrer"&gt;goDaddy&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Most of the domain registers offer hosting service. Just make sure do your search to check which of the registrars has the cheapest domain and hosting plans and how good their service is. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Serving and Testing Your Website On Your Phone&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;You don't have enough fund to buy a hosting plan to serve your website or just want to test your newly developed website on your phone? &lt;br&gt;
You need not worry, I've got you covered. &lt;br&gt;
&lt;a href="http://paw-android.fun2code.de" rel="noopener noreferrer"&gt;PAW Server&lt;/a&gt; is an amazing app to serve your website, with several features and guide that makes it easy to use. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using No Code Website Builders&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;There some other ways to build a website without necessarily knowing how to code. These are through content management system CMS like &lt;a href="https://www.wordpress.com" rel="noopener noreferrer"&gt;WordPress&lt;/a&gt;, &lt;a href="https://www.blogger.com" rel="noopener noreferrer"&gt;Blogger&lt;/a&gt;, &lt;a href="https://www.wix.com" rel="noopener noreferrer"&gt;Wix&lt;/a&gt; etc. &lt;/p&gt;

&lt;p&gt;Most of your favorite blogs and popular news website are built using CMS. For example, &lt;a href="https://blog.TED.com" rel="noopener noreferrer"&gt;TED.com&lt;/a&gt; was built with WordPress. You can check this out by adding /wp-admin to the Web url i.e. &lt;a href="https://blog.ted.com/wp-admin" rel="noopener noreferrer"&gt;TED.com/wp-admin&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Read more from me here: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://www.code.ng/2021/10/what-is-web-30-and-why-is-it-important.html" rel="noopener noreferrer"&gt;What's Web 3.0 and Why is it important?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.code.ng/2020/06/the-full-form-of-yahoo-what-yahoo.html" rel="noopener noreferrer"&gt;The Full Form of YAHOO&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Thank you for reading. Kindly drop your comments below.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>css</category>
      <category>html</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
