<?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: Naur</title>
    <description>The latest articles on DEV Community by Naur (@naur_io).</description>
    <link>https://dev.to/naur_io</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%2F1576993%2Ff6523618-de24-4a19-8e0a-e7ee57ff5e7c.jpg</url>
      <title>DEV Community: Naur</title>
      <link>https://dev.to/naur_io</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/naur_io"/>
    <language>en</language>
    <item>
      <title>GraphQL Tips &amp; Tricks</title>
      <dc:creator>Naur</dc:creator>
      <pubDate>Tue, 09 Dec 2025 14:24:11 +0000</pubDate>
      <link>https://dev.to/naur_io/graphql-tips-tricks-3o1e</link>
      <guid>https://dev.to/naur_io/graphql-tips-tricks-3o1e</guid>
      <description>&lt;p&gt;When discussing APIs, two models always come up: &lt;strong&gt;REST and GraphQL&lt;/strong&gt;. Both operate over the HTTP protocol, but differ in how they deliver data and the level of control the client has over what is returned.&lt;/p&gt;

&lt;p&gt;This article explores these differences and answers several common questions, including the famous &lt;code&gt;!&lt;/code&gt; in GraphQL and how to test everything using request files.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;📌 &lt;strong&gt;Code examples are available in this repository:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/SrLuc/GrapQL-Example" rel="noopener noreferrer"&gt;https://github.com/SrLuc/GrapQL-Example&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  GraphQL vs REST
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F8hrs8mnrmh0b3jaazxhx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F8hrs8mnrmh0b3jaazxhx.jpg" alt=" " width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Imagine you walk into a restaurant:&lt;/p&gt;

&lt;p&gt;At a &lt;strong&gt;REST&lt;/strong&gt;, you look at the menu and each dish is served &lt;em&gt;exactly as is&lt;/em&gt;. Want just rice? You might even get rice, beans, salad, and farofa all together.&lt;/p&gt;

&lt;p&gt;Need more details? You have to order another dish.&lt;/p&gt;

&lt;p&gt;At &lt;strong&gt;GraphQL&lt;/strong&gt;, &lt;em&gt;you choose exactly what goes on your plate&lt;/em&gt;, “I just want rice and farofa.” or “I want everything: rice, meat, juice, and dessert.”&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That's the essence of the difference.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Exemple REST
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;GET /dishes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Simple and functional…&lt;br&gt;
But sometimes you just want beans, and the restaurant brings you the complete "PF" (a full plate), which means you receive more data than necessary.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"dishes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Dish of the Day"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"rice"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"beans"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"meat"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"salad"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

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

&lt;/div&gt;



&lt;p&gt;Even if you only want the name, REST sends the entire object.&lt;/p&gt;

&lt;h3&gt;
  
  
  Exemple de GraphQL
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;POST /graphql
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;with GraphQL, you build your meal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight graphql"&gt;&lt;code&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;dishes&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;rice&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the server returns only what you requested.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight graphql"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;"&lt;/span&gt;&lt;span class="n"&gt;dishes&lt;/span&gt;&lt;span class="err"&gt;":&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="err"&gt;"&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="err"&gt;":&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;"1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="err"&gt;"&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="err"&gt;":&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;"&lt;/span&gt;&lt;span class="n"&gt;Dish&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;of&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;the&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Day&lt;/span&gt;&lt;span class="err"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="err"&gt;"&lt;/span&gt;&lt;span class="n"&gt;rice&lt;/span&gt;&lt;span class="err"&gt;":&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nothing more, nothing missing.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;⚠️ &lt;em&gt;Most GraphQL requests are &lt;strong&gt;POST&lt;/strong&gt; because GraphQL sends the query within the request body, and POST is the standard method that supports this structure.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Rest vs GraphQL Ilustration :
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Ft8b3vzqw5rjb79j152zd.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Ft8b3vzqw5rjb79j152zd.gif" alt=" " width="800" height="845"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What is a query in GraphQL?
&lt;/h3&gt;

&lt;p&gt;Think of a query like your order at a restaurant.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight graphql"&gt;&lt;code&gt;&lt;span class="k"&gt;query&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;dishes&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="n"&gt;rice&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A query is the way to describe exactly what data you want.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is the relationship between a query and a schema?
&lt;/h3&gt;

&lt;p&gt;Think of the schema as a restaurant menu.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight graphql"&gt;&lt;code&gt;&lt;span class="k"&gt;type&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Dish&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;ID&lt;/span&gt;&lt;span class="p"&gt;!&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;String&lt;/span&gt;&lt;span class="p"&gt;!&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;rice&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;Boolean&lt;/span&gt;&lt;span class="p"&gt;!&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;beans&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;Boolean&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;meat&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;Boolean&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;salad&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;Boolean&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;

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

&lt;/div&gt;



&lt;p&gt;It defines everything that is available and how each dish is structured:&lt;/p&gt;

&lt;p&gt;⚠️ The ! means that the field is required. It's like saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“This dish always comes with rice. No exceptions.”&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Final Concepts :
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Concept&lt;/th&gt;
&lt;th&gt;REST (ready-made dishes)&lt;/th&gt;
&lt;th&gt;GraphQL (build your own dish)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Endpoints&lt;/td&gt;
&lt;td&gt;Many&lt;/td&gt;
&lt;td&gt;Only one&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data returned&lt;/td&gt;
&lt;td&gt;Fixed&lt;/td&gt;
&lt;td&gt;Customized&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Process&lt;/td&gt;
&lt;td&gt;GET, POST, PUT, DELETE&lt;/td&gt;
&lt;td&gt;Queries and Mutations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Common problems&lt;/td&gt;
&lt;td&gt;Overfetching / underfetching&lt;/td&gt;
&lt;td&gt;Queries becoming too complex&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ideal for&lt;/td&gt;
&lt;td&gt;Simple APIs&lt;/td&gt;
&lt;td&gt;Apps that consume lots of data&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  📌 &lt;strong&gt;Code examples are available in this repository:&lt;/strong&gt;
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://github.com/SrLuc/GrapQL-Example" rel="noopener noreferrer"&gt;https://github.com/SrLuc/GrapQL-Example&lt;/a&gt;&lt;br&gt;
Thank you all&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>graphql</category>
      <category>rest</category>
      <category>api</category>
      <category>backend</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Naur</dc:creator>
      <pubDate>Mon, 03 Nov 2025 14:18:55 +0000</pubDate>
      <link>https://dev.to/naur_io/-2p7p</link>
      <guid>https://dev.to/naur_io/-2p7p</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/abidullah786" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F603904%2Fa0f95968-055f-4711-8cf3-cd940de29427.jpg" alt="abidullah786"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/abidullah786/react-hooks-tutorials-introduction-62b" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;React Hooks Tutorials: Introduction&lt;/h2&gt;
      &lt;h3&gt;ABIDULLAH786 ・ Oct 22 '22&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#react&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>react</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Start a Front Software Project from Scratch (in less than 5 minutes)</title>
      <dc:creator>Naur</dc:creator>
      <pubDate>Wed, 22 Oct 2025 19:02:37 +0000</pubDate>
      <link>https://dev.to/naur_io/how-to-start-a-software-project-from-scratch-in-less-than-5-minutes-2d31</link>
      <guid>https://dev.to/naur_io/how-to-start-a-software-project-from-scratch-in-less-than-5-minutes-2d31</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A quick and practical guide to starting your first frontend web project with the main tools and without complications.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;Before getting started, it's important to have &lt;strong&gt;some basic knowledge:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;🧩 Programming Logic&lt;/li&gt;
&lt;li&gt;📦 Package Managers (NPM, Yarn, or PNPM)&lt;/li&gt;
&lt;li&gt;🧭 Git and GitHub (for versioning and code hosting)&lt;/li&gt;
&lt;li&gt;🎨 CSS Libraries (such as Tailwind, Material UI)&lt;/li&gt;
&lt;li&gt;🗂️ Project Structure (understanding folders like /src and files like package.json)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;📍 In this guide, we'll focus on frontend web development using &lt;strong&gt;React + TypeScript and Vite&lt;/strong&gt; as a startup tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing Technologies
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;The first crucial decision is &lt;strong&gt;choosing the project type&lt;/strong&gt; and the appropriate technologies, since the choice of project type can indirectly define some of the technologies that will be used.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project Type&lt;/th&gt;
&lt;th&gt;Recommended Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Simple Landing Page&lt;/td&gt;
&lt;td&gt;HTML, CSS, JavaScript&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Website with Login/Components&lt;/td&gt;
&lt;td&gt;React, Vue&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Complex Application&lt;/td&gt;
&lt;td&gt;React + TypeScript, Vuejs, Nuxt, Next&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;For this tutorial, we chose React&lt;/strong&gt; because of its gentle learning curve.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Managing Packages in Node.js
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fvvigtlulapumi6a8hx3p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fvvigtlulapumi6a8hx3p.png" alt="Node Package Manager" width="800" height="311"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Node.js uses a package manager called NPM (Node Package Manager).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is responsible for installing, updating, and removing libraries used by your project. These libraries &lt;em&gt;(also called dependencies)&lt;/em&gt; are listed in the package.json file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NPM is automatically installed with Node.js&lt;/strong&gt; and is one of the most important tools for any modern JavaScript or TypeScript project.&lt;/p&gt;

&lt;h3&gt;
  
  
  📦 Main NPM Commands
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;🧩 Action&lt;/th&gt;
&lt;th&gt;💻 Command&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Install a package&lt;/td&gt;
&lt;td&gt;npm install package-name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Uninstall a package&lt;/td&gt;
&lt;td&gt;npm uninstall package-name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Install development dependency&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npm install -D package-name&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Check installed dependencies&lt;/td&gt;
&lt;td&gt;Check the &lt;code&gt;package.json&lt;/code&gt; file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  💡 Tips
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;NPM creates a folder called &lt;strong&gt;&lt;code&gt;node_modules&lt;/code&gt;&lt;/strong&gt;, where all installed packages are stored.&lt;/li&gt;
&lt;li&gt;If you prefer, you can also use &lt;strong&gt;Yarn&lt;/strong&gt;, an alternative to NPM with similar commands (e.g., &lt;code&gt;yarn add&lt;/code&gt;, &lt;code&gt;yarn remove&lt;/code&gt;, etc.).&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Step 1 — Creating the repository on GitHub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fr6w3j22myqsa77lz4mql.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fr6w3j22myqsa77lz4mql.png" alt="Git &amp;amp; Github" width="800" height="565"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I like to first create a &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;repository on GitHub&lt;/a&gt; and clone it to my machine, as this makes it easier to version code directly in the project repository, both locally and remotely after using git commands.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Access your &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;GitHub Account&lt;/a&gt; and&lt;/li&gt;
&lt;li&gt;Create a new repository (public or private)&lt;/li&gt;
&lt;li&gt;Copy the repository's HTTPS link&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In the explorer, clone the repository using the command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/your-username/your-repository.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then access the cloned repository.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2 — Installing React with Vite
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F0de68o7manp19wttjat0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F0de68o7manp19wttjat0.png" alt="vite" width="711" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://vite.dev/" rel="noopener noreferrer"&gt;Vite &lt;/a&gt;is a lightning-fast frontend build tool that powers the next generation of web applications.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Open the terminal inside your repository folder and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm create vite
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;This will download essential dependencies and libraries to start the project.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;During the interactive setup, &lt;strong&gt;you can use the arrow keys to navigate and the keyboard to type in the terminal&lt;/strong&gt;, for example:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Enter/Set the project name&lt;/li&gt;
&lt;li&gt;Select React as the main library&lt;/li&gt;
&lt;li&gt;Choose TypeScript (TS) as the language (or JavaScript if you prefer)&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 3 — Installing Dependencies
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Dependencies are small pieces and snippets of code&lt;/em&gt; responsible for managing the application between high- and low-level modules, things that this blog won't delve into at this time.&lt;/p&gt;

&lt;p&gt;Therefore, open the terminal in the project folder (project root) and run the following command to install these software dependencies for your project.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 4 — Running the Project
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;To run the project, you need to check which scripts are provided in the package.json file.&lt;/strong&gt; In this case, we're looking for the dev script.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The dev script makes the new application run, as if we were going to play&lt;/strong&gt; it. Therefore, in your project's terminal in VScode &lt;em&gt;(or any other IDE you're using)&lt;/em&gt;, run the command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;And That's It!&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your project is running on &lt;strong&gt;localhost:5173 (Vite's default port).&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Localhost means your project is running only with the files they already have&lt;/strong&gt; or even the files you've written, but it's not yet online—that is, it exists only locally on your computer. &lt;strong&gt;Only you can access it.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5 — Installing Additional Libraries (Tailwind CSS)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fmkgkcnhtzuij3nb9aih0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fmkgkcnhtzuij3nb9aih0.png" alt="Tailwind" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Tailwind its Rapidly build modern websites without ever leaving your HTML.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind &lt;/a&gt;is a famous CSS library widely used in frontend development due to its versatility and mobile-first foundation. This means that &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind's &lt;/a&gt;intention is to style the project responsively—in other words, to have a UI that works for desktops, tablets, and mobile platforms.&lt;/p&gt;

&lt;p&gt;To install &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind &lt;/a&gt;CSS (example of an additional library):&lt;/p&gt;

&lt;p&gt;in the terminal, at the project root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-D&lt;/span&gt; tailwindcss
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Furthermore, it's important to clarify that it's &lt;strong&gt;EXTREMELY necessary to read the libraries you want to include in your project&lt;/strong&gt;, since code generated by &lt;strong&gt;Generative Artificial Intelligence tends to be poorly&lt;/strong&gt; written and outdated.&lt;/p&gt;

&lt;p&gt;Therefore, &lt;strong&gt;as a professional concerned with your work, it's also your job to read these important documents about the dependencies&lt;/strong&gt; you want to have in your own project.&lt;/p&gt;

&lt;p&gt;Furthermore, &lt;strong&gt;installation alone doesn't guarantee that the dependency is 100% working; it's also necessary to configure it&lt;/strong&gt;, and these configurations are usually found in the first pages of the library and framework documentation.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Your package.json contains important scripts&lt;/strong&gt; for running the project.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F6s3sladqups60b5ojg73.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F6s3sladqups60b5ojg73.png" alt="package.json" width="800" height="334"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Package.json is an extremely important file for web projects, as it contains the main information about the system/project, such as name, version, repository, main dependencies, and scripts.&lt;/p&gt;

&lt;p&gt;For example, within the &lt;strong&gt;"scripts"&lt;/strong&gt; object, we have the following scripts:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"scripts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"dev"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"vite"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"build"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tsc &amp;amp;&amp;amp; vite build"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nl"&gt;"preview"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"vite preview"&lt;/span&gt;&lt;span class="w"&gt;
 &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;npm run dev - Starts the development server&lt;/li&gt;
&lt;li&gt;npm run build - Generates the production build&lt;/li&gt;
&lt;li&gt;npm run preview - Views the production build&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Created Project Structure
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;your_project_name/
├── node_modules/ # Installed dependencies
├── public/ # Static files
├── src/
│ ├── assets/ # Images, fonts, etc.
│ ├── components/ # React Components
│ ├── App.tsx # Main Component
│ ├── main.tsx # Entry Point
│ └── index.css # Global Styles
├── index.html # Main HTML
├── package.json # Dependencies and Scripts
├── tsconfig.json # TypeScript Configuration
└── vite.config.ts # Vite Configuration
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  💡 Important Tips
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Always consult the official documentation&lt;/li&gt;
&lt;li&gt;ChatGPT may display outdated and incorrect code.&lt;/li&gt;
&lt;li&gt;Keep your package.json up to date&lt;/li&gt;
&lt;li&gt;Use Git for version control from the start&lt;/li&gt;
&lt;li&gt;No AI replaces the user manual**&lt;/li&gt;
&lt;li&gt;Official documentation is always more reliable&lt;/li&gt;
&lt;li&gt;Check dependencies in package.json after each installation&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  To recap what was done:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;✅ Created repository on GitHub&lt;/li&gt;
&lt;li&gt;✅ Cloned to your machine&lt;/li&gt;
&lt;li&gt;✅ Initialized project with Vite + React + TypeScript (via NPM)&lt;/li&gt;
&lt;li&gt;✅ Installed dependencies&lt;/li&gt;
&lt;li&gt;✅ Ran the project locally&lt;/li&gt;
&lt;li&gt;✅ Added Tailwind CSS (optional)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  🔗 Useful Links
&lt;/h3&gt;

&lt;p&gt;📚 &lt;a href="https://react.dev/" rel="noopener noreferrer"&gt;React Documentation&lt;/a&gt;&lt;br&gt;
⚡ &lt;a href="https://vite.dev/" rel="noopener noreferrer"&gt;Vite Documentation&lt;/a&gt;&lt;br&gt;
🎨 &lt;a href="https://tailwindcss.com/" rel="noopener noreferrer"&gt;Tailwind CSS Documentation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This guide was created based on practical development experience&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Author: &lt;a href="https://www.linkedin.com/in/ruan-rickelme-ramos-387623232/" rel="noopener noreferrer"&gt;Ruan Rickelme Ramos&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;💡 Remember: &lt;strong&gt;This is a guide for beginners who want to get started quickly.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;As your project grows, explore more advanced concepts like routing, state management, and testing.&lt;/p&gt;

&lt;p&gt;THANKKSS!!&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>reactjsdevelopment</category>
    </item>
    <item>
      <title>How to Study Machine Learning with Two Variables</title>
      <dc:creator>Naur</dc:creator>
      <pubDate>Fri, 17 Oct 2025 19:37:13 +0000</pubDate>
      <link>https://dev.to/naur_io/how-to-study-machine-learning-with-two-variables-534p</link>
      <guid>https://dev.to/naur_io/how-to-study-machine-learning-with-two-variables-534p</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In software development, a common question is: Do more features generate more bugs?&lt;/p&gt;

&lt;p&gt;Understanding this relationship can help teams better plan new features, prioritize fixes, and anticipate problems.&lt;/p&gt;

&lt;p&gt;In this project, we'll show how to train a machine to analyze a small dataset with two variables:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Features → Number of features added&lt;/li&gt;
&lt;li&gt;Bugs → Number of errors detected&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We'll use data visualization techniques with scatter plots and learn how to create and interpret a simple decision tree to classify cases into quadrants.&lt;/p&gt;




&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Define the variables you'll use for training (dataset).&lt;/p&gt;

&lt;p&gt;In this example, we use a simple dataset, based on a Cartesian plane of &lt;strong&gt;bugs x features&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Frqmkl1xbbq4m4ra3qjgt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Frqmkl1xbbq4m4ra3qjgt.png" alt="Cartesian plane" width="705" height="538"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This first step simply displays the dataset, without sorting it. We manually classified the cases and obtained the following result:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Flgwdl8x8lye2or1rjl44.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Flgwdl8x8lye2or1rjl44.png" alt="Manual Classification" width="718" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cases:&lt;/strong&gt; 36&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Features:&lt;/strong&gt; 21&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bugs:&lt;/strong&gt; 15&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Setting Thresholds
&lt;/h2&gt;

&lt;p&gt;To organize the data and prepare for decision tree training, we set &lt;strong&gt;thresholds&lt;/strong&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;By drawing a vertical line at the value of &lt;strong&gt;features = 3.6&lt;/strong&gt; (approximately 4), we divide the dataset into &lt;strong&gt;Side A&lt;/strong&gt; and &lt;strong&gt;Side B&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F2m7lkyq61qqg83byz76w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F2m7lkyq61qqg83byz76w.png" alt="Vertical border" width="800" height="602"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This generates &lt;strong&gt;quadrants A and B&lt;/strong&gt;, with their respective case, feature, and bug counts:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fv6my6k8631n3bgzs9sxe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fv6my6k8631n3bgzs9sxe.png" alt="Quadrants A and B" width="800" height="605"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;By drawing another horizontal line, we create two more quadrants (&lt;strong&gt;C and D&lt;/strong&gt;), with their own data:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Feyz6b9zs784bpvbg5kqt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Feyz6b9zs784bpvbg5kqt.png" alt="Quadrants C and D" width="753" height="558"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With this, we can choose any quadrant to explore and train a decision tree based on the &lt;strong&gt;features&lt;/strong&gt; and &lt;strong&gt;bugs&lt;/strong&gt; variables.&lt;/p&gt;




&lt;h2&gt;
  
  
  Exploring Quadrants and Decision Trees
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Quadrant A (Side A)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fwyvwc18yqu0901bsbgsx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fwyvwc18yqu0901bsbgsx.png" alt="Quadrant A" width="781" height="599"&gt;&lt;/a&gt;&lt;br&gt;
By isolating the &lt;code&gt;features = 3.6&lt;/code&gt; variable or rounding it to 4, we can train the tree:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fs092hhnp3uy9ttw3e9r7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fs092hhnp3uy9ttw3e9r7.png" alt="Quadrant A Tree" width="800" height="541"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Quadrant B (Side B, encompassing B and D)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fut7gb5hg31acniv4lw2e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fut7gb5hg31acniv4lw2e.png" alt="Quadrant B" width="800" height="613"&gt;&lt;/a&gt;&lt;br&gt;
By isolating &lt;code&gt;features = 3.6&lt;/code&gt; or rounding, the tree can be trained:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Feyxpy59n712lprdjl9pu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Feyxpy59n712lprdjl9pu.png" alt="Quadrant Tree B" width="725" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The final result of the Cartesian plane with all quadrants:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2F4kmg55t3gnjuyxrfg4j8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F4kmg55t3gnjuyxrfg4j8.png" alt="Final Cartesian plane" width="800" height="606"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Google Colab and Excalidraw
&lt;/h2&gt;

&lt;p&gt;Also, the drawing may contain errors, so I also created a Google Colab in Python that reads, cleans, maintains, and structures the decision tree of this dataset:&lt;br&gt;
&lt;a href="https://colab.research.google.com/drive/1Wk4u2aOEn2k5ajsZ8khlXPpzrvEbQW6r?usp=sharing" rel="noopener noreferrer"&gt;Open in Colab&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Furthermore, the study design is available in Excalidraw:&lt;br&gt;
&lt;a href="https://excalidraw.com/" rel="noopener noreferrer"&gt;Open in Excalidraw&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;This approach is a small step toward understanding how machine learning works in decision tree logic.&lt;/p&gt;

&lt;p&gt;If you've reached the end of this mini-article, be sure to follow me on Github and LinkedIn!&lt;/p&gt;

&lt;p&gt;Happy studying!&lt;/p&gt;

&lt;h2&gt;
  
  
  Contacts
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/srluc" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/ruan-rickelme-ramos-387623232/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>beginners</category>
      <category>machinelearning</category>
      <category>python</category>
    </item>
    <item>
      <title>React Native Offline First Starter Pack: The Essential Toolkit</title>
      <dc:creator>Naur</dc:creator>
      <pubDate>Thu, 16 Oct 2025 12:31:51 +0000</pubDate>
      <link>https://dev.to/naur_io/react-native-fullstack-starter-pack-the-essential-toolkit-1f9c</link>
      <guid>https://dev.to/naur_io/react-native-fullstack-starter-pack-the-essential-toolkit-1f9c</guid>
      <description>&lt;p&gt;Introduction&lt;br&gt;
Building a robust, production-ready mobile app these days requires more than just React Native. It requires a curated ecosystem of libraries that cover state management, API synchronization, secure storage, user interface (UI), and especially offline capabilities.&lt;/p&gt;

&lt;p&gt;We don't want our system to crash when we don't have internet, do we? Hahaha&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This guide introduces the React Native Fullstack Starter Pack.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A curated list of dependencies that provides all the components needed to launch a real app, complete with secure authentication, global state, API integration, and a beautiful user interface.&lt;/p&gt;

&lt;p&gt;Why "Fullstack" Mobile?&lt;br&gt;
This term applies because this setup offers everything you need to manage the entire mobile app lifecycle: from the user interface (frontend) to communication with any backend (Node.js, NestJS, Firebase, etc.).&lt;/p&gt;
&lt;h1&gt;
  
  
  📦 The Core Toolkit: Dependencies at a Glance
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;react-native-async-storage/async-storage&lt;/strong&gt; → storing simple data (e.g., token).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;@react-navigation/native&lt;/strong&gt; + &lt;strong&gt;@react-navigation/native-stack&lt;/strong&gt; → navigation between screens.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;@tanstack/react-query&lt;/strong&gt; → caching + API synchronization (much better than just axios).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;axios&lt;/strong&gt; → HTTP client.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;jwt-decode&lt;/strong&gt; → reading data from the JWT token.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;react-hook-form&lt;/strong&gt; + &lt;strong&gt;yup&lt;/strong&gt; → forms with validation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;zustand&lt;/strong&gt; → simple and lightweight global state.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;styled-components&lt;/strong&gt; → styling with CSS-in-JS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;react-native-paper&lt;/strong&gt; → ready-made UI library (inputs, buttons, cards). - &lt;strong&gt;react-native-reanimated&lt;/strong&gt; + &lt;strong&gt;react-native-gesture-handler&lt;/strong&gt; → native animations and gestures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;react-native-safe-area-context&lt;/strong&gt; + &lt;strong&gt;react-native-screens&lt;/strong&gt; → safe browsing support.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;react-native-vector-icons&lt;/strong&gt; → icons.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;realm&lt;/strong&gt; → local database, useful for offline apps.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  🏗️ &lt;strong&gt;Why is this a Fullstack starter pack?&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;This set covers the entire lifecycle of a real mobile app:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;UI/Frontend → react-navigation, react-native-paper, styled-components&lt;/li&gt;
&lt;li&gt;State Management → zustand&lt;/li&gt;
&lt;li&gt;API Communication (backend) → axios + react-query&lt;/li&gt;
&lt;li&gt;Secure Authentication → async-storage + keychain + jwt-decode&lt;/li&gt;
&lt;li&gt;Offline First → realm (local database)&lt;/li&gt;
&lt;li&gt;Forms and Validation → react-hook-form + yup&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;📂 Initial File Structure&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;src/
 ├── api/
 │   └── client.ts        &lt;span class="c"&gt;# axios &lt;/span&gt;
 ├── screens/
 │   ├── LoginScreen.tsx  &lt;span class="c"&gt;# login screen&lt;/span&gt;
 │   └── HomeScreen.tsx   &lt;span class="c"&gt;# inital screen&lt;/span&gt;
 ├── store/
 │   └── authStore.ts     &lt;span class="c"&gt;# zustand for login/logout&lt;/span&gt;
 └── services/
     └── auth.ts          &lt;span class="c"&gt;# auth functions&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  ⚡ &lt;strong&gt;Code Skeleton (&lt;code&gt;App.tsx&lt;/code&gt;)&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;Here's an example of a starter app with &lt;br&gt;
✅ Fake Login ✅ Navigation ✅ Global State ✅ Authentication&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// App.tsx&lt;/span&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="s2"&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;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="s2"&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="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createNativeStackNavigator&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="s2"&gt;@react-navigation/native-stack&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;QueryClient&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;QueryClientProvider&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="s2"&gt;@tanstack/react-query&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;SafeAreaProvider&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="s2"&gt;react-native-safe-area-context&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;LoginScreen&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./src/screens/LoginScreen&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;HomeScreen&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./src/screens/HomeScreen&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;useAuthStore&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;./src/store/authStore&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;Stack&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createNativeStackNavigator&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;queryClient&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;QueryClient&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="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="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useAuthStore&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;SafeAreaProvider&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;QueryClientProvider&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;queryClient&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;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;Stack&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="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;user&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;lt;&lt;/span&gt;&lt;span class="nx"&gt;Stack&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="p"&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;lt;&lt;/span&gt;&lt;span class="nx"&gt;Stack&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;Login&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;LoginScreen&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="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Stack.Navigator&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;/NavigationContainer&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;/QueryClientProvider&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;/SafeAreaProvider&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;In other words:&lt;/p&gt;

&lt;p&gt;👉 You already have everything you need to create an app with login, backend integration, caching, global state, a ready-made UI, and a local database.&lt;/p&gt;

&lt;p&gt;This is why it is considered a &lt;strong&gt;start pack for any fullstack React Native application&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You have all the pieces from beautiful UI to secure offline data—ready to connect to any backend (Node, Nest, Firebase, etc.).&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>mobile</category>
      <category>mentorship</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
