<?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: Oleg Goncharenko</title>
    <description>The latest articles on DEV Community by Oleg Goncharenko (@oleg_goncharenko).</description>
    <link>https://dev.to/oleg_goncharenko</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%2F469537%2Fd6cf638f-10f9-4876-a33f-e007746db30c.jpeg</url>
      <title>DEV Community: Oleg Goncharenko</title>
      <link>https://dev.to/oleg_goncharenko</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/oleg_goncharenko"/>
    <language>en</language>
    <item>
      <title>React vs. Vue.js. An in-depth overview of their main differences.</title>
      <dc:creator>Oleg Goncharenko</dc:creator>
      <pubDate>Fri, 25 Jun 2021 09:09:31 +0000</pubDate>
      <link>https://dev.to/brocoders/react-vs-vue-js-an-in-depth-overview-of-their-main-differences-59ha</link>
      <guid>https://dev.to/brocoders/react-vs-vue-js-an-in-depth-overview-of-their-main-differences-59ha</guid>
      <description>&lt;p&gt;Vue.js and React have lots of similar features. Although React is a library, it suits building the view of the single-page application the same efficiently as Vue.js.&lt;/p&gt;

&lt;h3&gt;
  
  
  Common features in Vue.js and React:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;They enable writing front-end with JavaScript and utilize the virtual DOM for fast data rendering.&lt;/li&gt;
&lt;li&gt;Components have the same single file structure and support JSX.&lt;/li&gt;
&lt;li&gt;Both systems allow uni- and bidirectional data flow for the components.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's study the component build principles in detail. At the end of our journey, we will uncover the key difference between React and Vue.js.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Component build principles in React and Vue.js&lt;/li&gt;
&lt;li&gt;How do components impact browser DOM?&lt;/li&gt;
&lt;li&gt;Data binding of the components&lt;/li&gt;
&lt;li&gt;Brief industry comparison of React and Vue.js&lt;/li&gt;
&lt;li&gt;Useful resources&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Component build principles in React and Vue.js
&lt;/h2&gt;

&lt;h3&gt;
  
  
  JSX and single-file component structure in React
&lt;/h3&gt;

&lt;p&gt;The reason why JavaScript is used for front-end development could be explained so: Google Chrome and Safari have inbuilt JavaScript engines in their core. Hence, developing the code that directly talks to the browser methods makes sense.&lt;/p&gt;

&lt;p&gt;Since the UI is represented with components that need to pass the HTML data, React and Vue.js come up with their syntax extensions to JavaScript.&lt;/p&gt;

&lt;p&gt;React is using JSX, the JavaScript syntax extension, which allows either to return HTML in JavaScript, or it could be executed in HTML. Also, JavaScript variables can be assigned with HTML tags, like this:&lt;/p&gt;

&lt;p&gt;const message = &lt;/p&gt;
&lt;h1&gt;React is cool!&lt;/h1&gt;

&lt;p&gt;Dynamic variables could be put into bracket syntax ( { ... } ) in the middle of JSX.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OqOIB_wp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6wflwxec633djz5dt0fy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OqOIB_wp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6wflwxec633djz5dt0fy.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;An example of React component, written with JSX&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;However, web browsers can not execute JavaScript, which includes HTML tags. To make the code readable, React uses Babel to transpile it to regular JS code.&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://stackshare.io/react"&gt;Stackshare&lt;/a&gt; statistics, the most favorite features of React are components (747) and simplicity (484). JSX, though, takes less user appreciation (31).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9D-UL7b5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5gi4mkxb6hxiurpl3cso.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9D-UL7b5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5gi4mkxb6hxiurpl3cso.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I think the biggest concern about JSX is that it doesn't require a specific code structure. The logic and UI of components are in one file so that it could lead to messy code.&lt;/p&gt;

&lt;p&gt;The idea of the single-file component is opposed to Angular, which proposed keeping HTML, JavaScript and CSS in separate files. Completing components in a single file didn't get enough popularity unless Airbnb and Netflix joined the React community and began using React for their MVP construction.&lt;/p&gt;

&lt;p&gt;When searched for materials related to our topic, I found the 'Do Better Dev Show podcast'. In &lt;a href="https://podcasts.google.com/feed/aHR0cHM6Ly9hbmNob3IuZm0vcy80NjY3ZDcyMC9wb2RjYXN0L3Jzcw/episode/MWE0NzYwODAtZjYyNi00MzI5LWE0MjEtZTBmNmU4YjhhMWM1?ep=14"&gt;one&lt;/a&gt; of their episodes, Nathan Calvank and his co-host Gyanesh Mishra discussed the main difference between Vue and React. In the middle of the podcast show, Nathan shared his technique of code adjustment in React:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;JSX combines logic and presentation. You have got your HTML alongside your JavaScript in the same component. The way it is separated now: you have all your logic at the top, and you just return all your JSX below that.&lt;/p&gt;

&lt;p&gt;If you have a sufficiently complex application, you can pull out all of that logic to a container. The container holds all that logic and loads components, including this logic".&lt;/p&gt;

&lt;p&gt;You will get the benefit of JSX, getting the separation of concerns from the development side.&lt;/p&gt;

&lt;p&gt;So, dealing with the potential frustration of those things combined, this is a reasonable way of keeping these things separated.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Vue.js follows HTML templates for the component design
&lt;/h3&gt;

&lt;p&gt;The same as React, Vue.js proposes keeping the UI and logic in the same file. The component code in Vue.js is contained within a specific HTML template.&lt;/p&gt;

&lt;p&gt;The templating brings a clear image of the component code. It helps programmers keep an eye on the methods, view the properties and observe the render functions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pRIt5DM9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dphrgutas3owprqnmbaw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pRIt5DM9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dphrgutas3owprqnmbaw.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vue.js has a specific syntax. It uses double braces  as place-holders for data. HTML attributes are the directives in Vue.js and contain the prefix v-.&lt;/p&gt;

&lt;p&gt;The framework's system involves objects, classes and behavior categories. It matches with the experience of programmers who had worked with object-oriented programming.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--44hTr-uh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zehb35wosy25jyvv2lh7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--44hTr-uh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zehb35wosy25jyvv2lh7.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the meanwhile, Vue.js enables writing with JSX, which extends the programmatic power of the framework.&lt;/p&gt;

&lt;h3&gt;
  
  
  Summary of the requirements:
&lt;/h3&gt;

&lt;p&gt;React requires solid JavaScript skills, while Vue.js is more oriented to novice developers. Similar to React, Vue.js enables writing with JSX, but the components are written with HTML templates.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do components impact browser DOM?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  React renders data through the virtual copy of browser DOM
&lt;/h3&gt;

&lt;p&gt;When a user opens the web page, the Internet browser parses it to a tree-like structure and reads it up to down. This tree-structured file is called the Document Object Model (DOM).&lt;/p&gt;

&lt;p&gt;If the user did some action on the page, the browser needs to recreate and re-read the DOM. It takes more loads and decreases the resources of the browser.&lt;/p&gt;

&lt;p&gt;React avoided the traditional DOM rendering and leveraged the capacity of data rendering in the browser.&lt;/p&gt;

&lt;p&gt;Pete Hunt, a core member of React team, described the idea for the InfoWorld magazine:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The browser itself is retain mode. You click an HTML element on the screen, and then you change it over time. The programming model we wanted for React was basically to throw out and redraw everything. We think that's easier to understand. However, the browser is not designed to work like that. What we did is we built something that we're calling the virtual DOM to abstract that. And so we have a way of basically rendering to a virtual DOM, throwing out the whole virtual DOM and re-creating it every time the data changes, and then React under the hood will convert that, will get the old virtual DOM with the new virtual DOM and then convert that to manipulations of the real browser DOM.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Thank you, Pete. Based on your explanation, we could figure out how does the Virtual DOM operates:&lt;/p&gt;

&lt;p&gt;Before the web page is loaded in the web browser, React makes a copy of the DOM and places all the objects in a new component.&lt;br&gt;
When a user opens the web page, React doesn't access a real DOM but renders the copy of DOM. It is called the Virtual DOM.&lt;br&gt;
While the user walks through the page, React is computing the changes. If the user clicked a button or performed any other action, React creates a new snapshot of the DOM and compares it with the previous version.&lt;br&gt;
If one more node element has changed, React updates the page rendering the real DOM.&lt;br&gt;
Amazingly, that React team kept in mind an idea of the game engine when developed the virtual DOM:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The difference with React is the way that your program is much more like a game engine, as opposed to these alternative approaches, with data-binding.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Further, he explains: "With a game engine effectively what happens is the screen is cleared at the beginning of every frame, and then you redraw the scene.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QQTSdeJT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9rad41i3rsb0t6f1c00p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QQTSdeJT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9rad41i3rsb0t6f1c00p.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Vue.js is tracking only the dynamic parts in virtual DOM
&lt;/h3&gt;

&lt;p&gt;Vue.js has followed the idea of React's virtual DOM, but it is processing differently.&lt;/p&gt;

&lt;p&gt;Evan You, a founder of Vue.js, made a critical review of React virtual DOM. He shared his insights during the presentation in Toronto:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Some of you might know that virtual DOM allows us to compare two snapshots of your view structure and figure out what actual changes you should apply to the DOM. In most cases, it is relatively cheap and fast. However, there is still a cost because you are recreating lots of JavaScript objects. You have to walk through the whole tree on each update to figure out what has actually changed. And it counts pounds as your application gets larger. But the worst part about the virtual DOM is no matter how little dynamic content you have in your template, you always have to walk through the whole tree to find out what has exactly changed.&lt;/p&gt;

&lt;p&gt;Vue.js is now tracking the dependencies within each object of the DOM tree.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qBqJA_Et--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n8jm41o70z1tsmpjjgiq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qBqJA_Et--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n8jm41o70z1tsmpjjgiq.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The virtual DOM in Vue 3.0.11 is tracking the dynamic elements only, which contain &lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Summary on comparison of the virtual DOM processing:
&lt;/h3&gt;

&lt;p&gt;Templating in Vue.js helps to represent a mini-DOM of a component. Instead of tracking each object, Vue.js goes over the dynamic parts in templates. So, it sufficiently optimized the operation of virtual DOM and leveraged the client-side rendering in Vue.js projects.&lt;/p&gt;

&lt;p&gt;Virtual DOM in React needs to track all the nodes in the tree, whether they are static or dynamic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data binding of the components
&lt;/h2&gt;

&lt;p&gt;While looking through the articles comparing React vs. Vue.js, you could find different views regarding the data binding. You could often read that React follows just a one-way data flow. Meanwhile, Vue.js provides just the two-way binding like Angular. That is not true.&lt;/p&gt;

&lt;p&gt;Both React and Vue.js support the one- and two-way data flow simultaneously. Moreover, they suggest the one-way data flow as most preferred.&lt;/p&gt;

&lt;p&gt;Let's get a look at the piece of &lt;a href="https://v3.vuejs.org/guide/component-props.html#one-way-data-flow"&gt;documentation on Vue 3.0.11&lt;/a&gt; that emphasizes the benefits of one-way data-binding:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;All props form a one-way-down binding between the child property and the parent one: when the parent property updates, it will flow down to the child, but not the other way around. This prevents child components from accidentally mutating the parent state, which can make your app's data flow harder to understand.&lt;/p&gt;

&lt;p&gt;In addition, every time the parent component is updated, all props in the child component will be refreshed with the latest value. This means you should not attempt to mutate a prop inside a child component. If you do, Vue will warn you in the console.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Even though React components are designed for one-way flow, they could work with the two-way direction.&lt;/p&gt;

&lt;p&gt;React supports callback functions so that the children components could fetch the props to their parents. For example, if a user is typing the text in the input field of the child component, these changes will reflect the parent and update its content.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7U78FA3J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eess9628h8ro7hqnw6l9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7U78FA3J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eess9628h8ro7hqnw6l9.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With that said, the React community is provided with react-hook libraries, which enable two-way data binding.&lt;/p&gt;

&lt;p&gt;We leverage the full potential of React.js to build highly competitive and scalable web and mobile solutions&lt;/p&gt;

&lt;h3&gt;
  
  
  Summary:
&lt;/h3&gt;

&lt;p&gt;Vue.js and React support one-way as well as two-way data binding for components. In general, one-way data flow helps establish better control of the project functionality. Both frameworks recommend it as the best option.&lt;/p&gt;

&lt;h2&gt;
  
  
  Brief industry comparison of React and Vue.js
&lt;/h2&gt;

&lt;h3&gt;
  
  
  React
&lt;/h3&gt;

&lt;p&gt;React.js is flexible and open to a variety of choices. It doesn't imply any opinionated direction or mentality for development. However, this approach has some cost because the developers need to have a strong knowledge of JavaScript and be experienced with Single page applications (SPA) design.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pros of React:
&lt;/h3&gt;

&lt;p&gt;Fast client-side rendering.&lt;br&gt;
Good control of the data flow.&lt;br&gt;
Light-weight architecture.&lt;br&gt;
Extensibility and scalability.&lt;br&gt;
Large community support.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cons of React:
&lt;/h3&gt;

&lt;p&gt;Steep learning curve.&lt;br&gt;
Does not operate without other libraries and services, like Redux, routing, etc.&lt;br&gt;
Structure-free code may get to spaghetti and boilerplate.&lt;/p&gt;

&lt;h3&gt;
  
  
  What companies should choose React:
&lt;/h3&gt;

&lt;p&gt;Early-stage startups that need fast feature development and validation campaigns on the market.&lt;br&gt;
Companies that are looking to outsource their development. It is much easier to find a React developer compared to the one with Vue.js expertise.&lt;br&gt;
Product-based companies will also require cross-platforming app development (React Native based on React technology, that it will be a good fit).&lt;/p&gt;

&lt;h3&gt;
  
  
  Vue.js
&lt;/h3&gt;

&lt;p&gt;Vue.js combined the top-level features of React and Angular, but its main feature is the perfect user experience. Also, it leveraged the capacity of the virtual DOM and optimized the code structure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pros of Vue.js:
&lt;/h3&gt;

&lt;p&gt;Developer-friendly framework.&lt;br&gt;
Outstanding performance.&lt;br&gt;
Well-structured code.&lt;br&gt;
Elegant language syntax.&lt;br&gt;
Fine user documentation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cons of Vue.js:
&lt;/h3&gt;

&lt;p&gt;Lack of experienced developers.&lt;br&gt;
Small community.&lt;br&gt;
A big part of the documentation is written solely in Chinese.&lt;/p&gt;

&lt;h3&gt;
  
  
  What companies should choose Vue.js:
&lt;/h3&gt;

&lt;p&gt;Companies that approach the market of web-based products.&lt;br&gt;
Companies that are looking to implement a single flow in their development process.&lt;br&gt;
Companies with no previous experience of using frameworks in their build process or those looking to leverage their proficiency with JavaScript.&lt;/p&gt;

&lt;h3&gt;
  
  
  Top 10 companies that built their projects with React:
&lt;/h3&gt;

&lt;p&gt;Atlassian (Jira, Trello)&lt;br&gt;
Codecademy&lt;br&gt;
Dropbox&lt;br&gt;
Netflix&lt;br&gt;
Airbnb&lt;br&gt;
Facebook&lt;br&gt;
Instagram&lt;br&gt;
Twitter&lt;br&gt;
Reddit&lt;br&gt;
WhatsApp&lt;/p&gt;

&lt;h3&gt;
  
  
  Top 10 companies that constructed their projects with Vue.js:
&lt;/h3&gt;

&lt;p&gt;Behance&lt;br&gt;
Dribbble&lt;br&gt;
Adobe&lt;br&gt;
GitLab&lt;br&gt;
Alibaba&lt;br&gt;
Grammarly&lt;br&gt;
Nintendo&lt;br&gt;
Zoom&lt;br&gt;
Louis Vuitton&lt;br&gt;
Google Careers&lt;/p&gt;

&lt;h2&gt;
  
  
  Useful resources
&lt;/h2&gt;

&lt;p&gt;You may find these materials helpful&lt;/p&gt;

&lt;h3&gt;
  
  
  Articles and tutorials
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.infoworld.com/article/2608181/react--making-faster--smoother-uis-for-data-driven-web-apps.html"&gt;React: Making faster, smoother UIs for data-driven Web apps&lt;/a&gt;, by Paul Krill, InfoWorld.&lt;br&gt;
&lt;a href="https://www.doria.fi/bitstream/handle/10024/177433/levlin_mattias.pdf?sequence=2&amp;amp;isAllowed=y"&gt;DOM benchmark comparison of the front-end JavaScript frameworks React, Angular, Vue, and Svelte, master’s thesis in computer science&lt;/a&gt; by Mattias Levin.&lt;br&gt;
&lt;a href="https://www.w3schools.com/whatis/whatis_react.asp"&gt;What is Vue.js?, What is React? | Tutorials at W3schools&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Podcast shows
&lt;/h3&gt;

&lt;p&gt;&lt;a href=""&gt;React vs Vue vs Angular, 03.29.2021 | Do Better Dev Show podcast&lt;/a&gt;&lt;br&gt;
&lt;a href="https://podcasts.google.com/feed/aHR0cHM6Ly9waW5lY2FzdC5jb20vZmVlZC9sYWR5YnVnLXBvZGNhc3Q/episode/aHR0cHM6Ly9waW5lY2FzdC5jb20vZ3VpZC9jNWYxNDUxZC1mNTg3LTQ0OTgtYWE0ZS1lZGU2OTYxMjk0OTI?ep=14"&gt;React, Vue, &amp;amp;&amp;amp; Angular, OH MY!, 10.14.2019 | Ladybug Podcast&lt;/a&gt;&lt;br&gt;
&lt;a href="https://podcasts.google.com/feed/aHR0cHM6Ly9hbmNob3IuZm0vcy8xM2NkYzc0OC9wb2RjYXN0L3Jzcw/episode/MTAwZjRmMDYtZDBlMC00YmYxLThkM2QtNzViZjczZjZmNzQ0?ep=14"&gt;A Conversation about ReactJS, 05.26.2020 | Headless {Creator Podcast}&lt;/a&gt;&lt;br&gt;
&lt;a href="https://podcasts.google.com/feed/aHR0cHM6Ly9yc3MuY3RvLmFpL2lmZWxzZQ/episode/OTcyNzBhMzMtMWI4Yi00MjMyLWI5YWQtODY5MTAzNzBhOTEy?ep=14"&gt;React vs. Vue: With Guests Cassidy Williams &amp;amp; Erik Hanchett, 10.21.2019 | If/Else&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Videos on YouTube:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://youtu.be/WLpLYhnGqPA"&gt;Design Principles of Vue 3.0&lt;/a&gt; by Evan You.&lt;br&gt;
&lt;a href="https://youtu.be/1oK8AvSlXyM"&gt;Differences between Vue and React&lt;/a&gt; (an interview with Sara Vieira).&lt;br&gt;
&lt;a href="https://youtu.be/DUP5TJtBL3I"&gt;Tech Talk: 1 vs 2 way Data Binding in React and Angular&lt;/a&gt; (Matthew Elmquist for Fullstack Academy).&lt;/p&gt;

</description>
      <category>vue</category>
      <category>react</category>
      <category>frontend</category>
    </item>
    <item>
      <title>How To Hire React Native Developer - A Guide For The Founder</title>
      <dc:creator>Oleg Goncharenko</dc:creator>
      <pubDate>Wed, 23 Jun 2021 09:12:02 +0000</pubDate>
      <link>https://dev.to/brocoders/how-to-hire-react-native-developer-a-guide-for-the-founder-2419</link>
      <guid>https://dev.to/brocoders/how-to-hire-react-native-developer-a-guide-for-the-founder-2419</guid>
      <description>&lt;p&gt;The hiring process of &lt;strong&gt;React Native developers&lt;/strong&gt; involves different parts, each of them requiring essential time and effort. To make the process less stressful, we suggest you follow these five steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Prepare the specifications.&lt;/li&gt;
&lt;li&gt;Outline the job requirements.&lt;/li&gt;
&lt;li&gt;Create a shortlist of candidates.&lt;/li&gt;
&lt;li&gt;Arrange the job interviews.&lt;/li&gt;
&lt;li&gt;Qualify the candidates.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In this post, we will uncover the first three parts of the hiring process:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How to create the specification for a React Native project.&lt;/li&gt;
&lt;li&gt;How to complete the job overview.&lt;/li&gt;
&lt;li&gt;How to shortlist the candidates.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By the end of the reading, you will get prepared to reach out to potential candidates. In the second part of the article, we will observe the job interview process and qualifying the candidates.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to create the specification for a React Native project
&lt;/h2&gt;

&lt;p&gt;Finding the best candidate requires good preparation. Your first goal will be to outline the project requirements.&lt;/p&gt;

&lt;p&gt;Be as specific as you can. Detailed documentation draws the attention of professional developers and encourages them to apply.&lt;/p&gt;

&lt;p&gt;What is needed to complete the project specifications:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explain the user flows.&lt;/li&gt;
&lt;li&gt;Create graphic layouts.&lt;/li&gt;
&lt;li&gt;Outline technical requirements.&lt;/li&gt;
&lt;li&gt;Explain the user flows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;User flows help to convey the core idea of the app. Based on that, the potential developer will evaluate the scope and define the biggest challenges in upcoming work.&lt;/p&gt;

&lt;p&gt;After finishing this part, you will get the confidence to explain your product specifics to potential contractors. Except for that, you will check if your product app is ready for the market. These questions will help you to revise your current progress:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is your application flow simple and easy to use?&lt;/li&gt;
&lt;li&gt;Does your app help users achieve their primary goals?&lt;/li&gt;
&lt;li&gt;What are the most priority features in your app?&lt;/li&gt;
&lt;li&gt;How do you encourage users to purchase the extra services?&lt;/li&gt;
&lt;li&gt;What advantages do you offer to your users?&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Writing the user flows is a crucial part of the product build. Here is the list of suggested questions that will help you develop the user flow overview:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What are user types (customers, suppliers, supervisors) presented in my application?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What abilities does each user category have?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What information will users request after their registration?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do I need users to confirm their registration via email or SMS?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How could users view the other user profile?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How can users communicate with other users?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What kind of third-party applications would I like to integrate with my app?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How will the users complete the purchase process in my app?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How do I want to track the information about new and returned users?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Do I want to view the billing information (invoices, payments)?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What types of notifications do I want to display to users?&lt;br&gt;
sample-of-user-flows&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YIdWE6n_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gj7ly6zq1nr56mqsy760.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YIdWE6n_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gj7ly6zq1nr56mqsy760.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Example of the user flows overview&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create graphic layouts
&lt;/h3&gt;

&lt;p&gt;Now that you have the end-to-end descriptions of the user flows, your next turn will be to translate them to the graphic UI design.&lt;/p&gt;

&lt;p&gt;Benefits of the graphic UI design:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It helps reflect the graphic animations and business logic.&lt;/li&gt;
&lt;li&gt;It makes it possible to find out the challenges and risks.&lt;/li&gt;
&lt;li&gt;It enables making a realistic timeline and cost evaluation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most popular tools for the graphic UI design:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Figma;&lt;/li&gt;
&lt;li&gt;Sketch;&lt;/li&gt;
&lt;li&gt;Adobe XD.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In general, mobile applications contain a different number of screens. There could be 20+ screens if it comes to developing a small social media app or 200+ screens if we talk about business-class mobile applications.&lt;/p&gt;

&lt;p&gt;So, depending on your case and engagement, you could choose your way: master any of the UI design tools, create the screens by yourself or outsource this work to the UI/UX designer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TseC3DKb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qixh947hzz14w825x4zz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TseC3DKb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qixh947hzz14w825x4zz.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Outline technical requirements
&lt;/h3&gt;

&lt;p&gt;React Native developers are creating the mobile UI. Their responsibility is to wire it up with the back-end. To handle this integration, developers need to obtain the documentation on the API first. &lt;/p&gt;

&lt;p&gt;It should involve the following parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Resource descriptions.&lt;/li&gt;
&lt;li&gt;Endpoints and methods.&lt;/li&gt;
&lt;li&gt;Parameters.&lt;/li&gt;
&lt;li&gt;Request samples.&lt;/li&gt;
&lt;li&gt;Response examples.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are a non-technical specialist, you could ask for the help of a consultant specializing in developing the API specification.&lt;/p&gt;

&lt;p&gt;There are a few ways to find an eligible consultant:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ask a question on Quora or Stack Overflow.&lt;/li&gt;
&lt;li&gt;Invite an expert via Upwork or Toptal.&lt;/li&gt;
&lt;li&gt;Book a call with a consultant at Clarity.fm.&lt;/li&gt;
&lt;li&gt;Find a consultancy through Clutch, Upwork, YouTeam and book a call with them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Consultants usually possess any of these positions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Business analysts at a software development agency (most of the agencies produce the end-to-end documentation for the new projects).&lt;/li&gt;
&lt;li&gt;Software engineers with the back-end background (there could be either the back-end or full-stack engineers).&lt;/li&gt;
&lt;li&gt;Technical writers who specialize in back-end documentation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The specification on the back-end will help your team keep organized and deliver the project without unexpected distractions.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to complete the job overview
&lt;/h2&gt;

&lt;p&gt;We have reached the middle point of our road. From now, every new step will be easier to take.&lt;/p&gt;

&lt;p&gt;Your current task is to create the job overview. Generally, it includes the technical requirements along with preferences regarding the skills of the candidate.&lt;/p&gt;

&lt;p&gt;You could use the following template of the job overview for React Native developers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Job requirements template
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Project overview&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tell about your company and the core idea of the project.&lt;/li&gt;
&lt;li&gt;Provide a brief summary of the user roles.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Main technical requirements&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mention the technological stack of your project.&lt;/li&gt;
&lt;li&gt;Preferences on UI design (graphic rendering, specific features).&lt;/li&gt;
&lt;li&gt;Third-party integrations, like map and geo-location services, mail and SMS integrations, payment gateways.&lt;/li&gt;
&lt;li&gt;Location.&lt;/li&gt;
&lt;li&gt;Language.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Expectations&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project duration.&lt;/li&gt;
&lt;li&gt;Work engagement (full-time or part-time).&lt;/li&gt;
&lt;li&gt;Time zone preference.&lt;/li&gt;
&lt;li&gt;Working environment (management system and approaches).
*Budget expectations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Skills requirements&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Development experience.&lt;/li&gt;
&lt;li&gt;Special technical skills.&lt;/li&gt;
&lt;li&gt;Projects on GitHub.&lt;/li&gt;
&lt;li&gt;Portfolio works.&lt;/li&gt;
&lt;li&gt;Education.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;References to the materials&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User flows overview.&lt;/li&gt;
&lt;li&gt;Graphic UI design.&lt;/li&gt;
&lt;li&gt;Back-end specification.&lt;/li&gt;
&lt;li&gt;Sample of the job overview&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Job post example
&lt;/h3&gt;

&lt;p&gt;Let's bring more practice to our process. At present, many companies are moving forward with creating ride-sharing services. Imagine for a moment that you represent the management of the transportation company.&lt;/p&gt;

&lt;p&gt;Our current task is to hire a React Native developer who will accomplish the front-end for the upcoming mobile service app. The first step will be to write down the announcement for a job post.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project overview&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;The logistics company Rideshare Services Int. is looking to extend its customer service and hopes to create a cross-platforming mobile application. The app is aimed to help car drivers to make an additional income to minimize their transportation expenses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;User roles&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;There are three main user categories within the app: driver, passenger, admin.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Drivers indicate their daily route on the map and set a schedule. Based on that, the mobile app should find the passenger looking to request the ride at a specified time.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Passengers can offer an individual price for the desired service. Drivers could take on the opportunity if they agree on the proposed cost.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The admin user should be able to view the general statistics and moderate users.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Technological stack&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;The mobile UI code needs to be created with React Native. The app developer is free of choice regarding the state management service - Redux or Mobx will work fine.&lt;/p&gt;

&lt;p&gt;The specification is ready and could be shared with the eligible candidate. The back-end is built with Node.js (Nest.js). The database is based on Postgresql. Preferred cloud service: Amazon Web Services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Preferences on UI design&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;The screen designs are already completed with Figma. There are 90 screens ready for implementation. The requirements for the graphic animation are minimal since the project is at the early MVP stage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skills requirements&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;previous experience of utilizing React-hook-forms in the project is much preferred;&lt;/li&gt;
&lt;li&gt;experience of work with Swift and Android Studio (to be able to work with native modules on iOS and Android platforms);&lt;/li&gt;
&lt;li&gt;knowledge of TypeScript is must have;&lt;/li&gt;
&lt;li&gt;experience of work with Google Map API;&lt;/li&gt;
&lt;li&gt;experience with Twilio and Stripe will be a big advantage.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Location and language&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Our project will be based only in the UK for the initial stage, so that we would require only one language there. In the future, we are hoping to extend it with Norwegian and Dutch versions.&lt;/p&gt;

&lt;p&gt;We are working in the UK time zone, but we are flexible as for your time preferences. We hope to have 3-4 hours overlap within our time zones, preferably in the morning hours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Duration of the project&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Based on our preliminary estimation, the project would take 3,5 - 4 months to finish. Since the deadline is tight, you need to work full-time (40 hours per week).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Working environment&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;We use GitHub for the code repository.&lt;br&gt;
All communications are run through Slack and Zoom.&lt;br&gt;
We manage the tasks with Jira.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Budget expectations&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Our budget capacity varies within USD 30-35K (based on our assumptions regarding the timeline).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Required skills&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Master's or bachelor's degree in computer sciences.&lt;br&gt;
3+ years of experience with React Native, both iOS and Android.&lt;br&gt;
You have a good understanding of Agile and Scrum principles.&lt;br&gt;
Project materials:&lt;/p&gt;

&lt;p&gt;Besides the graphic UI layouts and specifications on the back-end, we are willing to share the user flows overview. We will send you the documentation after reviewing your application form.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Notes&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Please, send us your resume once you are interested in taking this job position. In your answer, describe your skills regarding the project requirements.&lt;br&gt;
Share the links to the mobile apps you have done before and specify your team's role while working on the project.&lt;/p&gt;

&lt;p&gt;Now we are ready to publish the job overview. You will receive a significant number of replies after placing the job announcement on those social platforms:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hub Staff Talent;&lt;/li&gt;
&lt;li&gt;Topdevelopers.co;&lt;/li&gt;
&lt;li&gt;LinkedIn;&lt;/li&gt;
&lt;li&gt;Youteam;&lt;/li&gt;
&lt;li&gt;Upwork;&lt;/li&gt;
&lt;li&gt;Toptal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Except for the mentioned, there are some global social websites, which provide job search opportunities to their community. &lt;br&gt;
So, you could also use their service to hire the React Native developers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stack Overflow;&lt;/li&gt;
&lt;li&gt;AngelList;&lt;/li&gt;
&lt;li&gt;GitHub;&lt;/li&gt;
&lt;li&gt;Dev.to&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each platform will make a difference in your outreach process. For example, Upwork ensures you will get over 100 proposals on the first day. To prove our expectations, we simulated the hiring process on that platform.&lt;/p&gt;

&lt;p&gt;We published the same job overview and requirements as we mentioned in our sample. Now you could check the outcomes of this experiment. The activity was so high that we obtained over 40 proposals in the first two hours.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--moIbP3r0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/74zpqmneybi0tkvfr2br.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--moIbP3r0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/74zpqmneybi0tkvfr2br.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Break down your job requirements so that the applicants will grasp your project idea and respond fast&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So, it makes sense to iterate your publications and post your requirements on the web resources one by one.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;How to shortlist the candidates&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You will get dozens of applications straight after publishing your post. Now you need to pre-qualify the candidates based on the following criteria:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Did the applicant specify the works related to your industry area?&lt;/li&gt;
&lt;li&gt;Did the applicant describe their skills and experience based on your mentioned requirements?&lt;/li&gt;
&lt;li&gt;Could the applicant work full-time on your project?&lt;/li&gt;
&lt;li&gt;Did the candidate describe their role in the previous projects?&lt;/li&gt;
&lt;li&gt;Did the applicant provide the link to their profile at GitHub?&lt;/li&gt;
&lt;li&gt;Do they have some recommendations from past clients or employers?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EHhcx3rm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c1ww0vb3g52f8gnsvb9c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EHhcx3rm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c1ww0vb3g52f8gnsvb9c.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create a list of the first 20 candidates matching your expectations. Respond to them via email or the job search platform, appreciating their time and interest. Propose them to book a meeting with you, sending them a link over Calendly or any other booking service that you normally use. Along with that, share your specifications with the candidates, so they could prepare for a job interview.&lt;/p&gt;

&lt;p&gt;In our next post, we will provide you with further details on the hiring process of the React Native engineer. The essential part of it will be devoted to the questions you could ask your candidate during the job interview.&lt;/p&gt;

&lt;p&gt;Thanks for reading, and good luck with your preparation!&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>hiring</category>
    </item>
    <item>
      <title>React vs Angular, who wins the competition?</title>
      <dc:creator>Oleg Goncharenko</dc:creator>
      <pubDate>Mon, 22 Mar 2021 15:47:31 +0000</pubDate>
      <link>https://dev.to/brocoders/react-vs-angular-who-wins-the-competition-30o2</link>
      <guid>https://dev.to/brocoders/react-vs-angular-who-wins-the-competition-30o2</guid>
      <description>&lt;p&gt;Choosing the best option for front-end development&lt;/p&gt;

&lt;p&gt;React.js vs Angular. They are equally good at building web-based applications. Some of the world projects are built with React.js, others of the same size, with Angular.&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%2Fdeqpnufjg49yo4djtebd.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%2Fdeqpnufjg49yo4djtebd.png" alt="Companies that use React.js and Angular"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These examples emphasizing both React.js and Angular are suited for making large and scalable platforms, handling massive requests per moment.&lt;/p&gt;

&lt;p&gt;React.js gets on the top position and overruns Angular with the number of Node Package Manager (NMP) downloads on GitHub. The difference is huge.&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%2F9sdo1rkq6p90lol2nitt.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%2F9sdo1rkq6p90lol2nitt.png" alt="React.js is more popular than Angular"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Last year's survey among Stackoverflow's users demonstrates that React.js is 10% more popular than Angular.&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%2Ftcrctmix13fcjcobvc1y.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%2Ftcrctmix13fcjcobvc1y.png" alt="Technology survey on Stackoverflow"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Does it mean that something goes wrong with Angular? Or, does it imply React.js offered better solutions than Angular?&lt;/p&gt;

&lt;h3&gt;
  
  
  Main principles of Angular
&lt;/h3&gt;

&lt;p&gt;Let's figure it out by overviewing both systems in a nutshell. Angular originates from the startup products of Google, where the key of product development was to manage multiple processes in one place. Any unreasonable decision could lead to a problem and affect billions of user operations run in a moment.&lt;/p&gt;

&lt;p&gt;Angular became a monolithic framework that predefined programming steps. Even though it enriches the development process with the services, controllers and modules, it dictates its own way of thinking and working. That places a distance between programmer and framework.&lt;/p&gt;

&lt;p&gt;Along with that, there are a few other factors that make Angular less accessible:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Angular uses object-oriented programming (OOP), so its knowledge is hard-skill.&lt;/li&gt;
&lt;li&gt;Developers should have a good command of TypeScript.&lt;/li&gt;
&lt;li&gt;Knowledge of RxJS is a must-have too.&lt;/li&gt;
&lt;li&gt;Apparently, the learning curve is very high. Unlike React.js, Angular demands more OOP-related experience from developers. That worked for Google, considering their team's high expertise. Angular was envisioned as an end-to-end solution and was compatible with their advanced programming culture.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Despite the complexity of the architecture, Angular has its indisputable benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Two-way data binding&lt;/strong&gt; automates synchronization between the Model and the View. Say, if the data was changed in the Model, it would be changed automatically in the View (DOM). Such a function takes off the need to write more additional code. Just imagine Google Drive's document, as a user types text in the document, it is viewed by another one in real-time. Such function is possible due to the Two-way data binding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dependency injection (DI)&lt;/strong&gt;, makes it possible to deliver the dependency from one to another class. Due to DI, server-side services could be delegated to a client-side. So, it is a serious advantage of OOP usage in Angular.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Directives&lt;/strong&gt; aimed to enrich the HTML by providing a new syntax to it. The most common directive is the component. Using it, programmers could create any attribute for an existing element and change its behavior. This is a helpful feature, which makes working with the DOM very flexible.
Angular is enriched with many other valuable features, like UI Material, making it possible to reuse the code of components in other parts of the project, but this is similar to what React offers too.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Who chooses Angular today?
&lt;/h3&gt;

&lt;p&gt;Experienced front-end developers share that Angular fits well with enterprise solutions and the corporate sector when React.js is a better choice for early-stage startups and smaller companies. This could be explained that big business does not change their priorities very often and the strategic goals are known to their CTOs far earlier.&lt;/p&gt;

&lt;p&gt;The main point you could take from our overview is to remember that &lt;strong&gt;Angular is a better option for long-term projects requiring reliability above anything else&lt;/strong&gt;. Besides others mentioned in the list, a few more companies are using Angular: Microsoft Office, Deutsche Bank and Samsung.&lt;/p&gt;

&lt;p&gt;React.js even doesn't call itself a framework but a JS library. Unlike Angular, React.js makes it a developer's responsibility to set a project structure, find relevant services for HTTP routing, and so on. At this point, React's ideology is to be agile and provide developers with absolute freedom. As a result, it leads to minimizing the project's size from start, as they could involve those libraries that they need by a certain time.&lt;/p&gt;

&lt;p&gt;Let's imagine that you are the only front-end developer on the project, or there are just a few. The main goals are set for the shortest perspective here. You should be both fast and productive, be able to adjust to startup goals. The straight rules and architecture demands of Angular will slow down the process of development.&lt;/p&gt;

&lt;p&gt;So, following single policies is not a major priority for the React.js community. In fact, this is straight opposite to Angular.&lt;/p&gt;

&lt;p&gt;It is worth mentioning, React.js couldn't work alone, as it is only the View (V) and needs an engine for data processing. A developer needs to figure out its implementation, manage with Redux and Saga, and arrange that individually.&lt;/p&gt;

&lt;h3&gt;
  
  
  What makes React.js different?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The learning curve is low. A developer with HTML and JavaScript experience could take on web development and show their first outcomes soon.&lt;/li&gt;
&lt;li&gt;The architecture is simple and doesn't take much time to study all its structure.&lt;/li&gt;
&lt;li&gt;Virtual DOM made server-side rendering less time-consuming.&lt;/li&gt;
&lt;li&gt;Huge community support that regularly contributes to React.js collection.&lt;/li&gt;
&lt;li&gt;Intuitive environment, pleasant interface to work with.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What problem does virtual DOM solve?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The current situation is next: if anything has been changed in a user browser while clicking on a page, these changes will be automatically recorded to the DOM. To show the changes on the web-page, the browser should reload the entire DOM structure. It brings more loads to the browser and slows down the performance of the application.&lt;/p&gt;

&lt;h3&gt;
  
  
  React.js innovations in performance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;React.js creates a snapshot of the DOM, which is named the virtual DOM (VDOM).&lt;/li&gt;
&lt;li&gt;Every new change in the UI component is to be recorded to the new virtual DOM first, not the regular one.&lt;/li&gt;
&lt;li&gt;React.js compares the new version of the VDOM and determines if those changes were essential to update the browser's DOM.&lt;/li&gt;
&lt;li&gt;If the changes were essential, React.js updates the DOM with the latest portion of changes.&lt;/li&gt;
&lt;li&gt;React.js has such computing algorithms that allow it to decide when to update the DOM in the browser. That makes front-end applications very performative. Unlucky, Angular doesn't have anything similar to this feature.&lt;/li&gt;
&lt;/ul&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%2F248956p6ard19wc0x5q2.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%2F248956p6ard19wc0x5q2.png" alt="Virtual Dom and Browser Dom comparison"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With that said, React.js helps to write clean JavaScript code for the projects when Angular complements the HTML with many extensions. This becomes messy in a while and hard to deal with such an enlarged code.&lt;/p&gt;

&lt;p&gt;It is time to say: React.js dominates in the front-end development area today.&lt;/p&gt;

&lt;p&gt;Advanced features, ease of use, extensive collection of javascript libraries placed React.js in a higher position than Angular. That proves an idea that the user-centered approach is a king. React.js has become an intuitive and powerful resource for making front-end applications.&lt;/p&gt;

&lt;p&gt;The discussions like 'Angular vs. React' are obviously coming to an end because of the React.js win. Nowadays, the community is much interested in other frameworks like Vue.js and comparison of that kind will be more actual today.&lt;/p&gt;

</description>
      <category>react</category>
      <category>angular</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Progressive Web Apps vs Native Apps: Which One Is the Best for Your Business</title>
      <dc:creator>Oleg Goncharenko</dc:creator>
      <pubDate>Tue, 23 Feb 2021 15:45:34 +0000</pubDate>
      <link>https://dev.to/brocoders/progressive-web-apps-vs-native-apps-which-one-is-the-best-for-your-business-389p</link>
      <guid>https://dev.to/brocoders/progressive-web-apps-vs-native-apps-which-one-is-the-best-for-your-business-389p</guid>
      <description>&lt;p&gt;Previously, we shared our thoughts on Progressive Web Apps driven by our hands-on expertise in PWA development. This time around, we decided to dive deeper and explain the major difference between PWA and Native App.&lt;/p&gt;

&lt;p&gt;However, it should be noted that there is no winner here since the choice depends on your particular needs and business requirements in the first place.&lt;/p&gt;

&lt;p&gt;For instance, people open web pages and consume twice as much content on their smartphones as they do on desktop devices, according to &lt;a href="https://www.smartinsights.com/mobile-marketing/mobile-marketing-analytics/mobile-marketing-statistics/"&gt;SmartInsights&lt;/a&gt;. And the number of users who opt for mobile devices will only keep skyrocketing. So it’s no wonder why most efficiently-run companies use both PWAs and Native Apps in order to stay ahead of the mobile domain curve.&lt;/p&gt;

&lt;p&gt;Now, before we can share our insights on which solution can best serve your users or fit your business goals, let’s start by refreshing our memory of what Progressive Web App is.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--16jfLEdL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gupsti1icmsdv8crrfdv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--16jfLEdL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gupsti1icmsdv8crrfdv.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Simply put, Progressive Web Apps are web-related solutions that combine features of a website and a Native App. In other words, these are websites that mimic a Native App behavior, thus creating an app-like experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Here are the major PWA benefits:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;It can run on any device or OS&lt;/li&gt;
&lt;li&gt;You don’t need a large budget to develop a PWA&lt;/li&gt;
&lt;li&gt;You can save your money and resources since it is developed only once&lt;/li&gt;
&lt;li&gt;All new features are available automatically once you issued an update&lt;/li&gt;
&lt;li&gt;You can rely on SEO practices since a PWA is a website&lt;/li&gt;
&lt;li&gt;It feels and looks like a Native App&lt;/li&gt;
&lt;li&gt;It’s memory-friendly and takes only a small portion of the device’s storage&lt;/li&gt;
&lt;li&gt;It can work offline&lt;/li&gt;
&lt;li&gt;It has rock-solid security since it based on HTTPS, which allows browser-to-server encryption&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On the other hand, there are a few drawbacks as well:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It has limited functionality on some OS&lt;/li&gt;
&lt;li&gt;Fast battery consumption since a PWA requires more CPU&lt;/li&gt;
&lt;li&gt;PWAs may not have full access to as many device’s features as Native Apps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That said, any business can develop a PWA solution to expand its digital footprint and ensure a delightful user experience. However, some companies may consider developing a Native App as of the features that a PWA still can’t provide. But again, it’s only for you to decide which option to adopt for your business goals.&lt;/p&gt;

&lt;p&gt;If you want to learn more about PWAs and our case studies, please read &lt;a href="https://brocoders.com/blog/why-progressive-web-application-might-be-right-option-for-you/"&gt;the previous article&lt;/a&gt;. Now, let’s get to Native Apps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Native Apps: pros and cons
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8wjLSVXW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/04ux96kzcupzmxoghemh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8wjLSVXW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/04ux96kzcupzmxoghemh.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Benefits of IOS and Android App Development&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Native Apps are written to run on mobile devices, providing enhanced performance and a broader scope of features compared to PWAs. These apps types are developed for specific OS platforms (usually built separately for Android or iOS) or even for particular smartphones. In fact, almost any app you download from Google’s Play Market or Apple’s App Store is a native solution by its very nature.&lt;/p&gt;

&lt;p&gt;Generally, there are four most widely-accepted programming languages that developers use to create Native Apps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Swift or Objective-C for iOS&lt;/li&gt;
&lt;li&gt;Java or Kotlin for Android&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, there is an alternative — you can utilize cross-platform frameworks like React Native. We at Brocoders have been using this &lt;a href="https://brocoders.com/services/product-development/"&gt;product development approach&lt;/a&gt; for over 9 years now. It allows building hybrid apps in JavaScript-like code and submitting the final solutions to both Android and iOS platforms in one go. React Native apps demonstrate outstanding efficiency and feel almost like native ones.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lqcsRqjt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/747da0jfq12doyv3tenw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lqcsRqjt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/747da0jfq12doyv3tenw.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Benefits of Coding Apps with React Native&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Now let’s move on to the key Native Apps pros over PWAs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Enhanced performance and UI/UX
&lt;/h3&gt;

&lt;p&gt;Since code is written for a specific device or a particular OS, a Native App integrates seamlessly with its ecosystem and gets access to all APIs. It’s faster and provides greater capabilities in terms of UI/UX experience. Besides, Native Apps can smoothly interact with other native apps offered by Google or Apple.&lt;/p&gt;

&lt;h3&gt;
  
  
  Monetization privilege
&lt;/h3&gt;

&lt;p&gt;Unlike a PWA that requires a custom payment processing solution, Native Apps can be monetized using in-built App Stores’ payment systems. Users can then make purchases and buy subscriptions with ease.&lt;/p&gt;

&lt;h3&gt;
  
  
  App Store Support
&lt;/h3&gt;

&lt;p&gt;While PWAs are SEO-friendly, Native Apps got App Store Optimization (ASO) and Apple Search Ads (ASA) alternatives instead. These are cost-efficient approaches (keyword research, eye-catching titles, meta descriptions and so on) that allow you to acquire new users by increasing your rank in App Store’s search results. Besides, users can rate your app, which by itself is an additional traffic source (if your rating is positive).&lt;/p&gt;

&lt;h3&gt;
  
  
  Security
&lt;/h3&gt;

&lt;p&gt;PWAs have decent security since they run under HTTPS. However, Native Apps have primary access to all the device’s hardware and software features. That said, it’s much easier for a developer to implement the best security algorithms such as two-factor authentication. Besides, a Native App must meet the requirements of multiple standards set by app stores before it can be approved.&lt;/p&gt;

&lt;p&gt;On the flip side of the coin, Native Apps have a few weak spots.&lt;/p&gt;

&lt;h3&gt;
  
  
  Costly development
&lt;/h3&gt;

&lt;p&gt;You need at least two development teams to build a project from scratch for each platform. Thus, you can ensure that both Android and iOS users will utilize your mobile app. Moreover, the final product requires constant updates and maintenance on two different OS. But again, you can save your budget and significantly reduce development time by &lt;a href="https://beta-app.brocoders-dev.brocoders.xyz/technologies/reactjs-development-services/"&gt;hiring React Native experts&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Need time to launch
&lt;/h3&gt;

&lt;p&gt;As mentioned above, Native Apps should be approved by Google’s Play Market or Apple’s App Store first before users can download them. The process can take up to a week or more. In some cases, apps can be rejected for several reasons, such as plagiarism or copyright infringement. If you have a tight time-to-market deadline, it’ll be way faster to create a PWA instead of time-consuming native platforms.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hard to promote
&lt;/h3&gt;

&lt;p&gt;Native Apps are not indexed or listed in the search engine, so you’ll probably have to reach out to third-party advertising services or buy promotional campaigns on popular websites in order to promote your app.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installation routine
&lt;/h3&gt;

&lt;p&gt;Users don’t like it when they are forced to go through the searching, downloading and installation processes. Especially when they just need to make a purchase or take a quick glance at a catalog, for example. That’s why they would rather &lt;a href="https://www.thinkwithgoogle.com/search/#?query=Mobile&amp;amp;page=0,0&amp;amp;sort_field=date&amp;amp;limit=12&amp;amp;locale=en-us&amp;amp;current_source=data_points&amp;amp;advertising_channels=Apps"&gt;use a website or a PWA instead&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Native Apps vs. Progressive Web App Comparison
&lt;/h2&gt;

&lt;p&gt;Now let’s make a comparison table to enable a clearer insight.&lt;/p&gt;

&lt;h2&gt;
  
  
  Native and Progressive Web App Comparison
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Mi8_Senq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z4emkpxqdioo4zi77h4e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Mi8_Senq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z4emkpxqdioo4zi77h4e.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;p&gt;With a bunch of advantages of both Native Apps and PWAs, it’s crucial for you to ponder over every detail and choose the right course based on your business strategy and resources that you have at the moment. As you can see, PWAs and Native Apps are equally vital for any business type and size, whether that be startups, fast-growing companies or enterprises.&lt;/p&gt;

&lt;p&gt;In some cases, you may need a fast and cost-efficient solution, so it’s better to opt for a PWA. On the other hand, a PWA may not provide a required performance level or cover all the device’s features. In such a way, you may want to consider developing a Native App. Otherwise, you can create both to enhance the customer experience and reach a wider audience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VskJTIBd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ac8epl8o3cr0z6o3c61.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VskJTIBd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ac8epl8o3cr0z6o3c61.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
When to build PWA/Native App&lt;/p&gt;

&lt;p&gt;With almost 100 successful projects under our belt, our in-house software engineers have substantial experience in creating future-proof PWAs and React Native Apps. We are excited to help you reach your business goals and build new innovative projects together. Please don’t hesitate to &lt;a href="https://brocoders.com/get-in-touch/"&gt;drop us a line&lt;/a&gt; if you want to learn more about the latest PWA vs Native 2020 trends.&lt;/p&gt;

</description>
      <category>progressivewebapp</category>
      <category>pwa</category>
      <category>nativeapp</category>
      <category>mobileapp</category>
    </item>
    <item>
      <title>Low-Code Development: Why It Is Important and Why It Can't Replace Traditional Approach</title>
      <dc:creator>Oleg Goncharenko</dc:creator>
      <pubDate>Tue, 23 Feb 2021 10:53:12 +0000</pubDate>
      <link>https://dev.to/brocoders/low-code-development-why-it-is-important-and-why-it-can-t-replace-traditional-approach-2fbb</link>
      <guid>https://dev.to/brocoders/low-code-development-why-it-is-important-and-why-it-can-t-replace-traditional-approach-2fbb</guid>
      <description>&lt;p&gt;In today's dynamic and fast-paced business ecosystem, a traditional development approach is often time-consuming and requires a lot of investment. Besides, you need highly-skilled and seasoned professionals to carry out the coding.&lt;/p&gt;

&lt;p&gt;On the flip side of the coin, many digital trends have boomed recently as of COVID-19, including the simplified interfaces that can help users quickly build and launch custom apps with minimal hand-coding. These factors, along with the fact that every company strives to streamline and automate its processes, allowed low code and no-code platforms to flourish.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The popularity of low-code application development has gained decent traction these days — according to &lt;a href="https://www.gartner.com/document/3902331"&gt;Gartner&lt;/a&gt;, low-code is forecast to comprise over 65% of application development by 2024.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Nevertheless, low code solutions aren't as great as you might think. In this short guide, we want to highlight the key features and pitfalls of this methodology.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Low Code?
&lt;/h2&gt;

&lt;p&gt;As the name implies, low-code is a software development methodology where you can create apps with little coding. That said, low code automation tools are visual-driven Integrated Development Environments (IDEs) designed for rapid application development. This inclusive approach was created in response to ever-augmenting business requirements and the shortage of skilled experts.&lt;/p&gt;

&lt;p&gt;Unlike traditional development that requires highly-skilled experts to handle all the code, low-code methodologies allow users to create apps with less manual coding through a graphical user interface (GUI) and its built-in drag-and-drop tooling. Thanks to the drag&amp;amp;drop technology, you can seamlessly add and move various elements, such as buttons, images, icons, text, maps, video, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--l7Y5JVQm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2kqwda7dc3gip8efyexd.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--l7Y5JVQm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2kqwda7dc3gip8efyexd.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the same time, low-code is different from no-code — while low-code still requires knowledge of technologies and frameworks, no-code enables users to build apps with almost no hand-coding. But let’s keep the no-code approach for later.&lt;/p&gt;

&lt;p&gt;Usually (even based on modern agile techniques), it takes a while before you can end up with a fully-functioning product. On the other hand, low-code allows users to skip a few development cycles and &lt;a href="https://brocoders.com/services/mvp-development/"&gt;get right to an MVP&lt;/a&gt; that can be tested with real users. That said, low-code platforms help businesses to acquire early adopters, validate an idea, and ensure faster development and delivery.&lt;/p&gt;

&lt;p&gt;There are several leading low-code application platforms (LCAP) on the market, like &lt;a href="http://mendix.com/"&gt;Mendix low code software&lt;/a&gt;, &lt;a href="https://www.outsystems.com/"&gt;OutSystems&lt;/a&gt; or &lt;a href="https://www.appian.com/"&gt;Appian&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OHBhiOjE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/itb0eea0bypfvfs6nk2c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OHBhiOjE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/itb0eea0bypfvfs6nk2c.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is Low-Code popular?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;The future of coding is no coding at all.&lt;/p&gt;

&lt;p&gt;Chris Wanstrath, CEO of GitHub&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Citizen developers and non-tech-savvy users can utilize low-code/no-code platforms to build custom-designed products while avoiding some hand-coding tasks. On top of that, seasoned experts and software providers can also use low-code solutions as a supplementary tool in addition to their traditional toolset.&lt;/p&gt;

&lt;p&gt;Low code can enhance the entire workflow and propel your IT teams' productivity by equipping them with the powerful tools for quick and smooth app creation. Now, let's look at the major benefits this development technique can offer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Improved speed
&lt;/h3&gt;

&lt;p&gt;You can create solutions for several platforms in one go and demonstrate investors or stakeholders a fully-functioning MVP within the shortest time possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources saving
&lt;/h3&gt;

&lt;p&gt;If you are about to start a new big project, you don’t have to wait for your experts to finish their projects. With low-code, you can save your time and the company’s resources by getting things done more quickly and at a lower cost compared to a traditional approach.&lt;/p&gt;

&lt;h3&gt;
  
  
  Low risk and high ROI
&lt;/h3&gt;

&lt;p&gt;Low-code platforms are backed by the best industry standards and security practices: cross-platform support, data integration and up-to-date security algorithms are built-in features. Hence, you can focus on more important business tasks while ensuring your entire workflow is highly protected and customized.&lt;/p&gt;

&lt;h3&gt;
  
  
  Easy deployment
&lt;/h3&gt;

&lt;p&gt;Most often than not, the launch day is all about unexpected problems and new emergency bugs. With low code, you can roll all changes back to a stable version with just a single click and fix the issues early on.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lifecycle support and seamless integration
&lt;/h3&gt;

&lt;p&gt;Low code platforms support the entire application development lifecycle from idea to exit, including DevOps and CI/CD. Besides, the low code platform APIs allow for external integration with tools to support project management, DevOps, testing and CICD pipelines.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the cons of Low-Code?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Low-code isn't the future of code. It certainly has a place in the future and will be leveraged to make many applications. It will not replace other ways of creating software because low-code breaks down when the solution's complexity increases. We saw the same thing with Visual Basic in the '90s. VB was valuable, and a lot of software was written in VB. In the end, it was complexity required by some applications that caused VB to break down and no longer be a good solution. Low code will be the same.&lt;/p&gt;

&lt;p&gt;Thomas Stiehm, CTO of Coveros&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;At first glance, low code software is a perfect solution for app development, but there are multiple drawbacks as well.&lt;/p&gt;

&lt;h3&gt;
  
  
  Business logic complication
&lt;/h3&gt;

&lt;p&gt;Low code tools like Mendix are an excellent option for the automation of simple processes or prototyping. However, once the prototyping stage is passed, the business logic becomes more complex eventually. To develop a project any further, you'll need an expert team. Today's low code platforms are not perfect yet, so it's not good to rely on them in the long run. Otherwise, you risk jeopardizing your business.&lt;/p&gt;

&lt;h3&gt;
  
  
  Limited functionality
&lt;/h3&gt;

&lt;p&gt;In a low code development tool, the number of functions that you can implement is limited. It is a quick way to build applications, but you do not have many options if you want to try out something different.&lt;/p&gt;

&lt;p&gt;For sure, drag &amp;amp; drop functionality features can be useful under certain circumstances. But when you need a unique feature that's not available, you will need some custom code. Sometimes integrating this custom code can also cost a lot more than a completely customized solution built from scratch.&lt;/p&gt;

&lt;h3&gt;
  
  
  No technical background myth
&lt;/h3&gt;

&lt;p&gt;Despite the name, you still need a robust technical background to use low-code tools. Furthermore, you first need to examine basic low-code development requirements and technologies, which by itself take time to learn and adapt to.&lt;/p&gt;

&lt;h3&gt;
  
  
  Security limitations
&lt;/h3&gt;

&lt;p&gt;Low-code solutions indeed have in-build security protocols, but they still can't provide the same security level as standalone development technologies. With an application based on low-code, you have neither full control over data security or access to source code. Hence, you can’t define all the possible vulnerabilities out there.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Now that we know the major pros and cons of low-code methodology, we can understand that it is not meant to replace traditional development or professional software providers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZlByHcqY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ks3jj8xrki1tjqudlxt2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZlByHcqY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ks3jj8xrki1tjqudlxt2.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instead, it’s essential for companies to utilize low-code practices to strengthen a traditional approach and fill its gaps. When combined, low-code and traditional techniques can ensure faster and more productive application development.&lt;/p&gt;

&lt;p&gt;With this in mind, low code significantly enhances speed-to-market and improves the overall business efficiency when used in tandem with traditional methods. All in all, there is no silver bullet that can turbo-boost your business, so it’s vital to consider multiple options and get professional advice. We at Brocoders are always eager to share our best expertise with you. Please, feel free to &lt;a href="https://brocoders.com/get-in-touch/"&gt;drop us a line&lt;/a&gt; any time you see fit.&lt;/p&gt;

</description>
      <category>lowcodevelopment</category>
      <category>mendix</category>
      <category>coding</category>
    </item>
  </channel>
</rss>
