<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>React Archives - asap developers</title>
	<atom:link href="https://www.asapdevelopers.com/category/react/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.asapdevelopers.com/category/react/</link>
	<description>San Francisco Mobile App Developers</description>
	<lastBuildDate>Thu, 13 Nov 2025 16:14:27 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>

<image>
	<url>https://www.asapdevelopers.com/wp-content/uploads/2017/04/favicon-asap-1.png</url>
	<title>React Archives - asap developers</title>
	<link>https://www.asapdevelopers.com/category/react/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Angular Vs React: Which Javascript Framework Wins in 2022</title>
		<link>https://www.asapdevelopers.com/angular-vs-react/</link>
					<comments>https://www.asapdevelopers.com/angular-vs-react/#respond</comments>
		
		<dc:creator><![CDATA[Pablo Giampedraglia]]></dc:creator>
		<pubDate>Tue, 31 May 2022 20:30:56 +0000</pubDate>
				<category><![CDATA[Angular]]></category>
		<category><![CDATA[React]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=15133</guid>

					<description><![CDATA[<p>If you are working on a web or mobile project and cannot decide between React.js and Angular, the below comparison can help you decide. Some may think that it is...</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/angular-vs-react/">Angular Vs React: Which Javascript Framework Wins in 2022</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" loading="lazy" class=" wp-image-15138 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2022/05/Angular-Vs-React-300x169.png" alt="" width="369" height="208" srcset="https://www.asapdevelopers.com/wp-content/uploads/2022/05/Angular-Vs-React-300x169.png 300w, https://www.asapdevelopers.com/wp-content/uploads/2022/05/Angular-Vs-React-768x434.png 768w, https://www.asapdevelopers.com/wp-content/uploads/2022/05/Angular-Vs-React.png 951w" sizes="(max-width: 369px) 100vw, 369px" /></p>
<p><span style="font-weight: 400;">If you are working on a web or mobile project and cannot decide between React.js and Angular, the below comparison can help you decide.</span></p>
<p><span style="font-weight: 400;">Some may think that it is not possible to compare React to Angular because Angular is a full-stack MVC framework, whereas React is merely a view library. But it is not so.</span></p>
<p><span style="font-weight: 400;">Comparing them is a smart idea, though, because they are both capable of producing fantastic apps and are ideal technologies.  Here we will compare the two most popular </span><a href="https://www.asapdevelopers.com/top-5-javascript-frontend-frameworks/"><span style="font-weight: 400;">javascript Frontend frameworks</span></a><span style="font-weight: 400;"> for supporting one of the most demanding digital business goals.</span></p>
<h2><b>REACT.JS</b></h2>
<p><span style="font-weight: 400;">React.js is a free and open-source JavaScript toolkit for creating fast and appealing user interfaces. It combines ease of development (due to small chunks of code known as &#8220;components&#8221;) with a heavy emphasis on user experience. Since React is the View layer of the MVC architecture, you have practically complete control over the Model and Controller frameworks you use.</span></p>
<h2><b>ANGULAR</b></h2>
<p><span style="font-weight: 400;">Angular is a Google-created open-source framework for developing web applications. Angular uses TypeScript rather than JavaScript. Angular, unlike React, is a full-featured MVC framework, so you will not need any other solutions after you have mastered it.</span></p>
<h2><b>COMPARISON OF REACT AND ANGULAR</b></h2>
<h3><b><img decoding="async" loading="lazy" class=" wp-image-15139 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2022/05/COMPARISON-OF-REACT-AND-ANGULAR-300x182.png" alt="" width="366" height="222" srcset="https://www.asapdevelopers.com/wp-content/uploads/2022/05/COMPARISON-OF-REACT-AND-ANGULAR-300x182.png 300w, https://www.asapdevelopers.com/wp-content/uploads/2022/05/COMPARISON-OF-REACT-AND-ANGULAR-768x465.png 768w, https://www.asapdevelopers.com/wp-content/uploads/2022/05/COMPARISON-OF-REACT-AND-ANGULAR.png 773w" sizes="(max-width: 366px) 100vw, 366px" /> </b></h3>
<h3><b>View library vs. full-stack framework</b></h3>
<p><span style="font-weight: 400;">Some argue that comparing React JS with Angular is not a good idea because they are both slightly different things, as explained at the outset. But, if both can create fantastic apps, does it really matter?</span></p>
<p><span style="font-weight: 400;">Angular appears to be a better alternative because it is a full-stack MVC framework that does not require any other libraries. React JS, on the other hand, does require additional libraries, but whether this is a plus or a negative depends entirely on your project goals.</span></p>
<p><span style="font-weight: 400;">React, being an independent view library, allows you almost limitless choices when it comes to creating user experiences, and you can also be fairly selective about the libraries you employ.</span></p>
<h3><b>Data binding</b></h3>
<p><span style="font-weight: 400;">Two-way data bindings are used in Angular. When you use two-way data binding, your model state automatically switches when you modify any element of the interface.</span></p>
<p><span style="font-weight: 400;">React employs one-way </span><a href="https://en.wikipedia.org/wiki/Data_binding"><span style="font-weight: 400;">data binding</span></a><span style="font-weight: 400;">, which means that the interface model is updated only after the model state has been updated. The model state remains unchanged while the UI components are changed.</span></p>
<p><span style="font-weight: 400;">One-way data binding allows React developers to have more freedom and control over their mobile and web apps because the data flow is unidirectional.</span></p>
<h3><b>Server Rendering </b></h3>
<p><span style="font-weight: 400;">Angular makes web developers&#8217; lives easier by providing pleasant and searchable static versions of the application. Angular renders an application using server-side rendering by creating a static view before it becomes fully interactive. It is up to you to figure out how to combine JSON with client-side caching to boost server speed. When it comes to decreasing traffic between the client and the server, nothing beats Angular.</span></p>
<p><span style="font-weight: 400;">Angular is built on a testing framework that includes features like dependency injection and mocking objects. We cannot distrust Angular&#8217;s future advances because it has Google as a backup. It can also reduce code size by eliminating the need for recompilation and reflecting modifications in the front-end more quickly.</span></p>
<h3><b>Mobile App Development</b></h3>
<p><span style="font-weight: 400;"><img decoding="async" loading="lazy" class=" wp-image-15140 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2022/05/Mobile-App-Development-300x267.png" alt="" width="358" height="319" srcset="https://www.asapdevelopers.com/wp-content/uploads/2022/05/Mobile-App-Development-300x267.png 300w, https://www.asapdevelopers.com/wp-content/uploads/2022/05/Mobile-App-Development.png 701w" sizes="(max-width: 358px) 100vw, 358px" /></span></p>
<p><span style="font-weight: 400;">With React Native and React JS, you can create genuinely native and cross-platform mobile apps. While React Native has a somewhat different syntax than React, it is pretty simple to pick up if you have worked with React before. Otherwise, you can </span><a href="https://www.esparkinfo.com/hire-reactjs-developers.html"><span style="font-weight: 400;">hire a ReactJS developer</span></a><span style="font-weight: 400;"> who is aware that React Native allows components to be generated and bound in Java, Objective-C, or Swift code.</span></p>
<p><span style="font-weight: 400;">The Angular framework, on the other hand, makes use of Ionic, a platform that allows developers to create high-performance cross-platform mobile apps with a single codebase. Ionic applications can be utilized on any device, including the web. This open-source framework offers developers user-friendly tools as well as powerful services. It also comes with a large library and building pieces that make development much easier.</span></p>
<p><span style="font-weight: 400;">If both programs are well-written, the performance difference between them will be difficult to discern.</span></p>
<h3><b>Self-Sufficiency</b></h3>
<p><span style="font-weight: 400;">Since React is a UI framework, apps created with it require the use of extra libraries. Redux, React Router, and Helmet, for example, optimize state management, routing, and API interaction. Additional modules or libraries are required to perform services such as data binding, project generation, component-based routing, form validation, and dependency injection.</span></p>
<p><span style="font-weight: 400;">Angular is a full-featured software development framework that rarely requires the use of third-party libraries. Data binding, project generation,  component-based routing, form validation, and dependency injection are all functions that may be implemented using the Angular package.</span></p>
<h3><b>Learning curve </b></h3>
<p><img decoding="async" loading="lazy" class=" wp-image-15141 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2022/05/Learning-curve-react-vs-angular-300x215.png" alt="" width="345" height="247" srcset="https://www.asapdevelopers.com/wp-content/uploads/2022/05/Learning-curve-react-vs-angular-300x215.png 300w, https://www.asapdevelopers.com/wp-content/uploads/2022/05/Learning-curve-react-vs-angular-768x550.png 768w, https://www.asapdevelopers.com/wp-content/uploads/2022/05/Learning-curve-react-vs-angular.png 774w" sizes="(max-width: 345px) 100vw, 345px" /></p>
<p><span style="font-weight: 400;">React is a simple framework with no dependency injection, traditional templates, or overly complex functionality. If you&#8217;re familiar with JavaScript, the framework will be simple to grasp.</span></p>
<p><span style="font-weight: 400;">Since there is no predetermined project structure, learning how to build up a project takes time. You&#8217;ll also need to master the Redux library, which is used for state management in more than 50% of React applications. Continuous framework changes necessitate additional developer effort. Furthermore, there are many best practices in React that you will need to master in order to accomplish things correctly.</span></p>
<p><span style="font-weight: 400;">Since Angular has such a large library, understanding all of the ideas related to it will take much longer than learning React. Angular is more difficult to grasp, with a lot of superfluous syntaxes and complicated component management. Some complex features are built into the framework&#8217;s core, so developers will have to understand and use them. Furthermore, a single problem can be solved in a variety of ways.</span></p>
<p><span style="font-weight: 400;">Although TypeScript is similar to JavaScript, it takes some time to master. Since the framework is regularly updated, the developer must devote more learning time.</span></p>
<h3><b>Popularity</b></h3>
<p><span style="font-weight: 400;">In the programming community and discussion forums, both Angular and React have gained popularity. According to </span><a href="https://hackernoon.com/angular-vs-react-the-deal-breaker-7d76c04496bc"><span style="font-weight: 400;">statistics</span></a><span style="font-weight: 400;"> from the most popular platform, Angular has 56,586 stars whereas Reactjs has 142,606 stars.</span></p>
<p><span style="font-weight: 400;">In contrast to the full-fledged Angular framework, React is just a library. While comparing with the library framework Reactjs, however, Angular consistently received a high average number of stars. It is because of the early release of React, it has a higher number of stars.</span></p>
<h3><b>Templates </b></h3>
<p><span style="font-weight: 400;"><img decoding="async" loading="lazy" class=" wp-image-15137 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2022/05/react-Templates-vs-angular-Templates-300x137.png" alt="" width="464" height="212" srcset="https://www.asapdevelopers.com/wp-content/uploads/2022/05/react-Templates-vs-angular-Templates-300x137.png 300w, https://www.asapdevelopers.com/wp-content/uploads/2022/05/react-Templates-vs-angular-Templates-1024x469.png 1024w, https://www.asapdevelopers.com/wp-content/uploads/2022/05/react-Templates-vs-angular-Templates-768x351.png 768w, https://www.asapdevelopers.com/wp-content/uploads/2022/05/react-Templates-vs-angular-Templates.png 1534w" sizes="(max-width: 464px) 100vw, 464px" /></span></p>
<p><span style="font-weight: 400;">With Angular directives, HTML Angular employs templates based on an extended form of HTML. The syntax of those directives is complicated and advanced, so you will have to start from the beginning.</span></p>
<p><span style="font-weight: 400;">All you need to know about React is JavaScript. A JSX is a brilliant component that combines markup and JavaScript logic in one file. You may write your markup in your JavaScript code, thanks to the use of an XML-like language, which keeps everything in one place and improves code completion.</span></p>
<h3><b>Testing</b></h3>
<p><span style="font-weight: 400;">Jest is used by React (often in conjunction with Enzyme, a JavaScript testing tool). Jest is a robust mocking library that requires no configuration and comes standard with every React project. However, lately, react-testing-library is more often used.</span></p>
<p><span style="font-weight: 400;">The Angular CLI downloads all of the tools you will need to run tests with the Jasmine framework. Although Angular includes numerous capabilities, such as unit isolation and was designed with testability in mind, many Angular developers find Jasmine&#8217;s output to be difficult to comprehend.</span></p>
<h2><b>Conclusion on Angular Vs React:2022</b></h2>
<p><span style="font-weight: 400;">There is as such no more appropriate framework. To stay competitive, both are constantly updated. For example, while React was thought to win due to its virtual DOM, Angular tied the score thanks to changing detection. While Angular was thought to be the winner because it was created by Google, the enormous and dedicated React community more than made up for Google&#8217;s fame and made React comparable to Angular.</span></p>
<p>&nbsp;</p>
<p><em><span style="font-weight: 400;">Guest Author: Harikrishna Kundariya </span></em></p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/angular-vs-react/">Angular Vs React: Which Javascript Framework Wins in 2022</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.asapdevelopers.com/angular-vs-react/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tips for improving React performance</title>
		<link>https://www.asapdevelopers.com/tips-for-improving-react-performance/</link>
		
		<dc:creator><![CDATA[Pablo Giampedraglia]]></dc:creator>
		<pubDate>Mon, 11 Oct 2021 20:00:15 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=14939</guid>

					<description><![CDATA[<p>Tips for improving React performance React makes it easy to create a fast user interface without putting a lot of effort into optimizing performance. However, there are some ways in...</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/tips-for-improving-react-performance/">Tips for improving React performance</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2>Tips for improving React performance</h2>



<p><a href="https://reactjs.org/">React</a> makes it easy to create a fast user interface without putting a lot of effort into optimizing performance. However, there are some ways in which <em>you </em>can improve the performance of apps created with React. This is what we&#8217;ll be focusing on in this article, with tips on improving React performance. But first, let’s give you some context.</p>



<h2>About React</h2>





<p><img decoding="async" loading="lazy" class="aligncenter wp-image-12754" src="https://www.asapdevelopers.com/wp-content/uploads/2020/06/react-native-logo-300x61.jpg" alt="react native - improving react performance" width="389" height="79" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/06/react-native-logo-300x61.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/06/react-native-logo-1024x207.jpg 1024w, https://www.asapdevelopers.com/wp-content/uploads/2020/06/react-native-logo-768x155.jpg 768w, https://www.asapdevelopers.com/wp-content/uploads/2020/06/react-native-logo-1536x311.jpg 1536w, https://www.asapdevelopers.com/wp-content/uploads/2020/06/react-native-logo-2048x414.jpg 2048w" sizes="(max-width: 389px) 100vw, 389px" /></p>
<p>Just to give you a quick intro, React (or ReactJS) is a JavaScript library to build UI interfaces on the web. React modifies the browser DOM using a browser-independent DOM system for performance and cross-browser compatibility, which means you can use the same HTML tags you use on the web. React is declarative, component-based, flexible and easy to learn. If you want more information about React and how it differs from React Native, you can take a look at <a href="https://www.asapdevelopers.com/react-vs-react-native/">our article</a> on this topic.</p>



<h2>8 tips for improving React performance</h2>
<p>&nbsp;</p>



<ol>
<li>
<h3>Use function/stateless components and React.PureComponent</h3>
</li>
</ol>



<p>Function components and PureComponent are two ways of optimizing React apps at a component level. The former prevents constructing class instances and reduces overall bundle sizes. As for the latter, when optimizing UI updates, you might want to convert function components to a PureComponent Class.</p>



<p>Do note, however, that when using React.PureComponent you should make sure that all its child components are either Pure or functional components, that Component State/Props are an immutable object, and that State/Props do not include a multi-level nested object.</p>



<ol start="2">
<li>
<h3>Memoize React components</h3>
</li>
</ol>



<p>Memoization is a long-standing optimization technique typically used to speed up computer programs. Through memoization, the results of expensive function calls are stored and the cached results are returned whenever the same inputs reoccur. You can learn more about this technique <a href="https://www.cloudsavvyit.com/12446/what-is-memoization-and-why-does-it-matter/">in this article</a>.</p>



<p>Using memoized functions makes your app run faster because, when a function with the same values as the previous one is called, it retrieves the result from the cache instead of executing function logic. This is a great way of improving React performance.</p>



<p><a href="https://medium.com/@planttheidea/memoize-react-components-33377d7ebb6c">This link</a> might come in handy when it comes to memoizing React components.</p>
<p><img decoding="async" loading="lazy" class="aligncenter wp-image-14944 size-medium" src="https://www.asapdevelopers.com/wp-content/uploads/2021/10/graph-277x300.png" alt="improving react performance - graph" width="277" height="300" srcset="https://www.asapdevelopers.com/wp-content/uploads/2021/10/graph-277x300.png 277w, https://www.asapdevelopers.com/wp-content/uploads/2021/10/graph.png 512w" sizes="(max-width: 277px) 100vw, 277px" /></p>
<p>&nbsp;</p>





<ol start="3">
<li>
<h3>Avoid using an index as key when mapping arrays</h3>
</li>
</ol>



<p>Most React developers have, at some time, run into an “Each child in a list should have a unique ‘key’ prop” warning. However, if you go the lazy route and use the index as key, this can show incorrect data to your app since it is used to identify DOM elements, thereby negatively impacting app performance. If you use the same key when pushing or removing an item from the list, React simply assumes that the DOM element represents the same component. This is why it is advisable to use a unique property as key. If your data doesn’t have unique attributes, you may use the shortid module to generate a unique key. You can find more info on this topic <a href="https://robinpokorny.medium.com/index-as-a-key-is-an-anti-pattern-e0349aece318">here</a>.</p>



<ol start="4">
<li>
<h3>Avoid passing unnecessary props when using the spread operator</h3>
</li>
</ol>



<p>Let’s face it, passing props to JSX elements using the spread operation can be extremely convenient. However, there are dangers to overusing it and even React’s documentation suggests “using it sparingly”. Namely, if you’re not careful, you might end up passing unnecessary properties to your components or even invalid ones to the HTML in your DOM. </p>



<ol start="5">
<li>
<h3>Virtualize long lists</h3>
</li>
</ol>



<p>Rendering a large table or list of data often slows down app performance. This is when virtualization (also known as windowing) comes in handy. This technique only renders a subset of rows at any moment, dramatically reducing component re-rendering time. You can use libraries such as <a href="https://github.com/bvaughn/react-window">react-window</a> or <a href="https://github.com/bvaughn/react-virtualized">react-virtualized</a> to find reusable components for displaying lists, grids and tabular data.</p>





<ol start="6">
<li>
<h3>Use multiple chunk files</h3>
</li>
</ol>



<p>An app always begins with a few components. But as soon as you start adding features and dependencies, you can end up with a gigantic production file without even realizing it. A way to avoid this is to turn this into two separate files by separating your vendor, or third-party library code, from your app code using the <a href="https://webpack.js.org/plugins/commons-chunk-plugin/">CommonsChunkPlugin</a> for webpack. This will give you a vendor.bundle.js file and an app.bundle.js file. Splitting your files means your browser caches less often and parallel downloads resources thereby reducing load time wait.</p>



<ol start="7">
<li>
<h3>Using immutable data structures</h3>
</li>
</ol>



<p>Data immutability is an opinionated way of writing code that forces you to reflect on how you structure your app’s data flow. It stems from the functional programming world and can be applied to designing front-end apps. The benefits of data immutability include zero side effects; the fact that immutable data objects are easier to create, test and use; and that they make it easier to track changes.</p>



<p>Some of the optimized libraries that include a set of immutable data structures are <a href="https://github.com/kolodny/immutability-helper">Immutability Helper</a>, <a href="https://github.com/rtfeldman/seamless-immutable">Seamless Immutable</a> and <a href="https://immutable-js.com/">Immutable.js</a>. Also, if you want to learn more about using immutability with ReactJS, you can find more information <a href="https://reactkungfu.com/2015/08/pros-and-cons-of-using-immutability-with-react-js/">here</a>.</p>



<ol start="8">
<li>
<h3>Dependency optimization</h3>
</li>
</ol>



<p>Something else to keep in mind when improving React performance is dependency optimization. When you wish to optimize the application bundle size, you should definitely check how much code you are using from dependencies. If you are using Moment.js to include localized files for multi-language support, for example, you can use the <a href="https://www.npmjs.com/package/moment-locales-webpack-plugin">moment-locales-webpack-plugin</a> to remove any unused locales. You can find a comprehensive list of optimizable dependencies <a href="https://github.com/GoogleChromeLabs/webpack-libs-optimizations">here</a>. </p>



<h2>Final thoughts on improving react performance</h2>



<p>There are definitely many little ways in which you can boost your web app’s performance. We have chosen our top 8 tips for improving React performance, and we hope they will serve you as well as they serve us!</p>

		<div id="fws_69397411834d2"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row top-level standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/react-native-san-francisco/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>React Native Development Company</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/tips-for-improving-react-performance/">Tips for improving React performance</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>React Navigation</title>
		<link>https://www.asapdevelopers.com/react-navigation/</link>
		
		<dc:creator><![CDATA[Libny Corrales]]></dc:creator>
		<pubDate>Mon, 04 Oct 2021 20:17:08 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<category><![CDATA[React Native]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=14922</guid>

					<description><![CDATA[<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/react-navigation/">React Navigation</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[
		<div id="fws_6939741184237"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p>In this article, we’ll discuss <a href="https://reactnavigation.org">React Navigation</a> for <a href="https://www.asapdevelopers.com/react-native-san-francisco/">React Native</a>, which is used to easily provide navigation functionalities to your mobile application. After a small introduction and overview of some common navigation types, we’ll be setting up a sample project with different examples of navigation, provided through GitHub gists.</p>
<h2>Before we begin with React Navigation</h2>
<p>Keep in mind that this article will serve as a general overview and introduction to React Navigation. For more information or advanced subjects, please review the official documentation <a href="https://reactnavigation.org/docs/getting-started">here</a>.</p>
<h3>Minimum requirements</h3>
<p>At the moment of publication, <strong>React Navigation 6</strong> is the latest version and the one that we’ll be using. React Navigation 6 requires at least <strong>react-native@0.63.0</strong>. If you&#8217;re using Expo, your SDK version should be at least 41.</p>
<h2>What is React Navigation?</h2>
<p>React Navigation is an <strong>open-source</strong>, <strong>extensible </strong>and <strong>easy-to-use</strong> library used to implement navigation functionalities in a mobile application under React Native (or Expo!). It’s based on JavaScript, so it’s fully customizable and comes out of the box with basic components for common navigation requirements on both <strong>iOS </strong>and <strong>Android</strong>, such as <strong>tabbed</strong>, <strong>stack </strong>or <strong>drawer </strong>navigation components, all with a great look and feel.</p>
<p>Now that we have an overview of what React Navigation is, let&#8217;s expand a bit on why you should use it.</p>
<h3>Why use React Navigation?</h3>
<ol>
<li>It’s very easy to get started with React Nav, especially for the basics.</li>
<li>The documentation provided for the library is great and exhaustive and includes both beginner-friendly documentation and more advanced guides.</li>
<li>It’s constantly being updated with features and fixes, which is a sign of a healthy solution.</li>
<li>It’s the most used library for navigation in React Native, so the community is extensive and very helpful. It’s even recommended as a navigation solution in the official <a href="https://reactnative.dev/docs/navigation#reactnavigation">React Native Docs</a>!</li>
<li>It provides an extensive set of features (which is constantly growing) and basic components for the most common implementation scenarios.</li>
<li>Being an extensible open-source solution built on JavaScript means that you’ll be able to modify anything you wish if you have a custom or advanced requirement, as long as you know the language.</li>
</ol>
<div id="fws_693974118457f"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark "></div></div>
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				
			</div> 
		</div>
	</div> 

<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
			</div>
</div>
<div style="overflow: hidden; height: 1px;">
<h1>Les méthodes d&#8217;analyse des pronostics football explorées par Betzoid France</h1>
<p>L&#8217;analyse des pronostics football a connu une évolution remarquable au cours des deux dernières décennies, passant d&#8217;une approche intuitive basée sur l&#8217;expérience des parieurs à une discipline quasi scientifique intégrant statistiques avancées, algorithmes prédictifs et intelligence artificielle. Betzoid France s&#8217;est imposé comme un acteur majeur dans ce domaine en développant des méthodologies d&#8217;analyse rigoureuses qui combinent expertise humaine et technologies modernes. Cette transformation méthodologique reflète une compréhension approfondie des dynamiques du football contemporain, où chaque match génère des centaines de données exploitables pour affiner la précision des prévisions sportives.</p>
<h2>L&#8217;évolution historique de l&#8217;analyse des pronostics sportifs</h2>
<p>Les premières formes d&#8217;analyse des pronostics football remontent aux années 1960, lorsque les statisticiens britanniques ont commencé à compiler systématiquement les résultats des matchs pour identifier des tendances récurrentes. À cette époque, les méthodes restaient rudimentaires, se limitant principalement aux bilans confrontations directes et aux performances à domicile ou à l&#8217;extérieur. L&#8217;arrivée de l&#8217;informatique dans les années 1980 a marqué un tournant décisif, permettant le traitement de volumes de données considérablement plus importants et l&#8217;identification de corrélations jusqu&#8217;alors invisibles.</p>
<p>Dans les années 2000, l&#8217;émergence du concept de &#8220;Expected Goals&#8221; (xG) développé par des analystes comme Sam Green a révolutionné l&#8217;approche analytique. Cette métrique évalue la qualité des occasions de but en attribuant une probabilité de marquer à chaque tir, en fonction de multiples paramètres comme la distance au but, l&#8217;angle de tir, la position des défenseurs et le type d&#8217;action. Betzoid France a intégré cette dimension dans ses analyses en reconnaissant que les résultats bruts peuvent être trompeurs et qu&#8217;une équipe dominant statistiquement peut perdre par malchance ou inefficacité ponctuelle.</p>
<p>L&#8217;approche contemporaine développée par les plateformes spécialisées repose sur une architecture analytique à plusieurs niveaux. Le premier niveau examine les données brutes : possession, passes réussies, tirs cadrés, duels gagnés. Le deuxième niveau contextualise ces statistiques en fonction de la qualité de l&#8217;adversaire, des conditions de jeu et de l&#8217;enjeu du match. Le troisième niveau intègre des variables plus subtiles comme la forme physique des joueurs clés, les dynamiques psychologiques d&#8217;équipe et les facteurs tactiques spécifiques à chaque entraîneur.</p>
<h2>Les piliers méthodologiques de l&#8217;analyse moderne</h2>
<p>La méthodologie d&#8217;analyse de Betzoid France repose sur quatre piliers fondamentaux qui structurent l&#8217;ensemble du processus prédictif. Le premier pilier concerne l&#8217;analyse statistique approfondie, qui va bien au-delà des simples moyennes de buts marqués ou encaissés. Cette approche examine les tendances sur différentes périodes temporelles, identifie les variations de performance selon les contextes et détecte les anomalies statistiques susceptibles d&#8217;indiquer un changement de dynamique. L&#8217;analyse différencie notamment les performances contre des adversaires du haut, du milieu et du bas de tableau, reconnaissant que certaines équipes excellent contre les formations défensives mais peinent face aux équipes pratiquant un pressing haut.</p>
<p>Le deuxième pilier méthodologique concerne l&#8217;analyse tactique qualitative. Le football moderne se caractérise par une sophistication tactique croissante, où les systèmes de jeu évoluent constamment pour exploiter les faiblesses adverses. Les experts de Betzoid examinent les schémas tactiques privilégiés par chaque entraîneur, identifient les incompatibilités de styles susceptibles de créer des déséquilibres et évaluent la capacité d&#8217;adaptation tactique des équipes. Par exemple, une équipe pratiquant un jeu de possession peut rencontrer des difficultés face à un bloc bas discipliné, tandis qu&#8217;elle pourrait dominer une formation tentant de presser haut sans la cohésion nécessaire.</p>
<p>Le troisième pilier intègre les facteurs contextuels et psychologiques souvent négligés par les analyses purement statistiques. La motivation des équipes varie considérablement selon l&#8217;enjeu du match : une équipe luttant contre la relégation n&#8217;aborde pas une rencontre avec la même intensité qu&#8217;une formation déjà assurée de son maintien. De même, les effets de calendrier jouent un rôle crucial, notamment lorsqu&#8217;une équipe doit gérer plusieurs compétitions simultanément. Les plateformes comme <a href="https://betzoid.com/fr/pronostic-foot-de-jour/">https://betzoid.com/fr/pronostic-foot-de-jour/</a> prennent en compte ces dimensions pour affiner leurs analyses et proposer des évaluations plus nuancées des probabilités réelles de chaque issue possible.</p>
<p>Le quatrième pilier repose sur l&#8217;analyse des données de marché et des mouvements de cotes. Les variations des cotes proposées par les opérateurs reflètent l&#8217;afflux d&#8217;informations et les anticipations des parieurs professionnels. Une chute brutale de cote peut signaler une information privilégiée concernant la composition d&#8217;équipe ou l&#8217;état physique d&#8217;un joueur clé. Betzoid France surveille ces fluctuations pour détecter les signaux faibles susceptibles d&#8217;affecter l&#8217;issue d&#8217;une rencontre, tout en évitant le piège de suivre aveuglément les mouvements de marché qui peuvent parfois résulter de comportements grégaires plutôt que d&#8217;analyses rationnelles.</p>
<h2>L&#8217;intégration des technologies avancées dans le processus analytique</h2>
<p>L&#8217;intelligence artificielle et l&#8217;apprentissage automatique ont progressivement trouvé leur place dans l&#8217;écosystème de l&#8217;analyse des pronostics football. Les algorithmes de machine learning peuvent traiter simultanément des centaines de variables et identifier des patterns complexes échappant à l&#8217;analyse humaine traditionnelle. Betzoid France utilise ces technologies pour créer des modèles prédictifs qui s&#8217;affinent continuellement en intégrant les résultats passés et en ajustant les pondérations accordées à chaque variable.</p>
<p>Les réseaux neuronaux profonds se révèlent particulièrement efficaces pour capturer les interactions non linéaires entre différents facteurs. Par exemple, l&#8217;impact de l&#8217;absence d&#8217;un joueur clé ne se mesure pas simplement par ses statistiques individuelles, mais par l&#8217;effet systémique sur l&#8217;organisation collective de l&#8217;équipe. Un milieu défensif structurant le jeu peut avoir des statistiques offensives modestes tout en étant absolument crucial pour l&#8217;équilibre tactique. Les modèles avancés peuvent quantifier ces contributions indirectes en analysant les modifications de performance collective lorsque le joueur est absent.</p>
<p>La visualisation des données constitue également un aspect essentiel de l&#8217;analyse moderne. Les heat maps montrant les zones d&#8217;activité des joueurs, les graphiques de réseaux de passes illustrant les connexions privilégiées entre coéquipiers, ou les cartographies de tirs révélant les zones de dangerosité offensive permettent une compréhension intuitive de réalités complexes. Ces représentations visuelles facilitent l&#8217;identification rapide de tendances significatives et la communication d&#8217;insights analytiques à un public non spécialisé.</p>
<p>L&#8217;analyse vidéo assistée par ordinateur représente une frontière technologique en pleine expansion. Les systèmes de reconnaissance d&#8217;images peuvent désormais automatiquement taguer les actions de jeu, identifier les schémas tactiques récurrents et quantifier des aspects qualitatifs comme l&#8217;intensité défensive ou la coordination des mouvements offensifs. Cette automatisation permet d&#8217;analyser exhaustivement des centaines de matchs pour extraire des insights impossibles à obtenir par observation humaine seule, tout en libérant du temps pour l&#8217;interprétation stratégique de haut niveau.</p>
<h2>Les limites et défis de l&#8217;analyse prédictive en football</h2>
<p>Malgré les progrès méthodologiques et technologiques, l&#8217;analyse des pronostics football demeure confrontée à des limites intrinsèques liées à la nature même du sport. Le football se caractérise par une variance élevée : le meilleur modèle prédictif ne peut éliminer la part d&#8217;aléatoire inhérente à chaque match. Un tir dévié de manière imprévisible, une décision arbitrale controversée ou une erreur individuelle inattendue peuvent bouleverser l&#8217;issue d&#8217;une rencontre indépendamment de tous les indicateurs préalables.</p>
<p>La disponibilité et la fiabilité des données constituent un autre défi majeur. Alors que les championnats d&#8217;élite bénéficient d&#8217;une couverture statistique exhaustive avec des systèmes de tracking optique mesurant chaque mouvement des joueurs, les divisions inférieures et les championnats moins médiatisés souffrent d&#8217;un déficit informationnel significatif. Cette asymétrie crée des opportunités pour les analystes capables d&#8217;exploiter des sources alternatives, mais impose également une prudence accrue dans les contextes où les données sont parcellaires ou peu fiables.</p>
<p>L&#8217;adaptation constante des acteurs du football représente également un défi analytique. Les entraîneurs étudient les tendances statistiques et ajustent leurs approches pour contrer les stratégies adverses, créant une dynamique évolutive où les patterns historiques perdent progressivement leur pertinence prédictive. Betzoid France doit donc constamment actualiser ses modèles pour intégrer ces évolutions tactiques et éviter de s&#8217;appuyer sur des corrélations devenues obsolètes. Cette nécessité d&#8217;adaptation permanente distingue l&#8217;analyse sportive d&#8217;autres domaines où les relations statistiques tendent à être plus stables dans le temps.</p>
<p>Enfin, la dimension psychologique et émotionnelle du football échappe largement à la quantification rigoureuse. La confiance d&#8217;une équipe après une série de victoires, la pression ressentie dans un derby local ou la résilience mentale face à l&#8217;adversité sont des facteurs réels mais difficilement mesurables. Les meilleurs analystes reconnaissent ces limites et complètent leurs modèles quantitatifs par une expertise qualitative permettant d&#8217;intégrer ces dimensions intangibles mais néanmoins déterminantes.</p>
<p>L&#8217;analyse des pronostics football par Betzoid France illustre la maturité croissante d&#8217;une discipline combinant rigueur scientifique et expertise sportive. Les méthodologies développées intègrent des décennies d&#8217;évolution analytique, depuis les premières compilations statistiques jusqu&#8217;aux algorithmes d&#8217;intelligence artificielle contemporains. Cette sophistication méthodologique ne vise pas l&#8217;élimination impossible de l&#8217;incertitude inhérente au sport, mais plutôt une compréhension plus nuancée des probabilités réelles et des facteurs influençant l&#8217;issue des rencontres. L&#8217;avenir de cette discipline réside probablement dans un équilibre subtil entre l&#8217;exploitation des technologies émergentes et la préservation de l&#8217;expertise humaine capable de contextualiser les données brutes et d&#8217;intégrer les dimensions qualitatives échappant aux modèles purement quantitatifs.</p>
</div>
	</div>
</div>




			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_69397411846bc"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/react-native-san-francisco/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>React Native Development Company</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_6939741184940"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<p><!-- /wp:list --></p>
	</div>
</div>




			</div> 
		</div>
	</div> 
</div></div>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/react-navigation/">React Navigation</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>React Testing Library</title>
		<link>https://www.asapdevelopers.com/react-testing-library/</link>
		
		<dc:creator><![CDATA[Agustin Fernandez]]></dc:creator>
		<pubDate>Mon, 11 Jan 2021 18:31:02 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=14117</guid>

					<description><![CDATA[<p>React Testing Library Testing is an essential part of any development process and there are countless tools available depending on what you are looking to test. In this article, we’ll...</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/react-testing-library/">React Testing Library</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1><b>React Testing Library</b></h1>
<p><span style="font-weight: 400;">Testing is an essential part of any development process and there are countless tools available depending on what you are looking to test. In this article, we’ll focus on the React Testing Library and cover what it is, as well as why and how to use it.</span></p>
<h2><b>What is React Testing Library? </b></h2>
<p><span style="font-weight: 400;">The React Testing Library is a library built as part of an open-source project named </span><a href="https://testing-library.com/"><span style="font-weight: 400;">Testing Library</span></a><span style="font-weight: 400;">. It is part of a family of packages named </span><a href="https://www.npmjs.com/org/testing-library"><span style="font-weight: 400;">@testing-library</span></a><span style="font-weight: 400;"> that provides guidance to test UI components in a user-centric way.</span></p>
<p><span style="font-weight: 400;">Just as React Testing Library has its own package, there are specific ones for other frameworks, including </span><a href="https://testing-library.com/docs/react-native-testing-library/intro"><span style="font-weight: 400;">React Native</span></a><span style="font-weight: 400;">, </span><a href="https://testing-library.com/docs/angular-testing-library/intro"><span style="font-weight: 400;">Angular</span></a><span style="font-weight: 400;">, and </span><a href="https://testing-library.com/docs/vue-testing-library/intro"><span style="font-weight: 400;">Vue</span></a><span style="font-weight: 400;">. All of these have been built on top of </span><span style="font-weight: 400;">DOM Testing Library</span><span style="font-weight: 400;">, the so-called “core library”, by adding a specific ergonomic API for each framework. </span></p>
<p><span style="font-weight: 400;">Here, we will focus on the React package, since it is the most popular among its </span><a href="https://github.com/testing-library"><span style="font-weight: 400;">GitHub</span></a><span style="font-weight: 400;"> pinned repositories.</span><span style="font-weight: 400;"> </span></p>
<h2><b>Why should you use it?  </b></h2>
<p><span style="font-weight: 400;">Testing Library relies on the belief that </span><i><span style="font-weight: 400;">“The more your tests resemble the way your software is used, the more confidence they can give you.”</span></i><span style="font-weight: 400;"> </span></p>
<p><span style="font-weight: 400;">In other words, this light-weight library produces tests that use components closer to the way a user would, giving the developer more confidence that their application will work when it goes out to real users.</span></p>
<p><span style="font-weight: 400;">End users don&#8217;t care what happens behind the scenes, they just see and interact with the output. So, instead of getting hung up writing code that tests a component’s internal API, </span><span style="font-weight: 400;"><strong>props</strong> </span><span style="font-weight: 400;">or </span><strong>state</strong><span style="font-weight: 400;">, you should be writing tests that verify it works properly from a user’s perspective, regardless of how it’s implemented.</span></p>
<p><span style="font-weight: 400;">Last but not least, this way of testing makes tests more maintainable, since code refactors won’t break them. </span></p>
<h2><b>How to use React Testing Library  </b></h2>
<p><span style="font-weight: 400;">We’ll be taking a high-level view at this library, just to get you started from scratch. It is far from being a full library explanation, so </span><a href="https://www.robinwieruch.de/react-testing-library"><span style="font-weight: 400;">here</span></a><span style="font-weight: 400;"> is a complete and detailed guide recommended by the official docs in case you want to take a deeper look.</span></p>
<p><span style="font-weight: 400;">Note: this example was developed using </span><span style="font-weight: 400;"><strong>create-react-app</strong><span style="font-weight: 400;">, functional components, </span><strong>react</strong><span style="font-weight: 400;"> version 17.0.1 and version 11.2.2 of <strong>@testing-library/react</strong><span style="font-weight: 400;">.</span></span></span></p>
<p><span style="font-weight: 400;">The latest </span><strong>create-react-app</strong><span style="font-weight: 400;"> setups already come with </span><span style="font-weight: 400;"><strong>@testing-library</strong>/react</span><span style="font-weight: 400;"> installed. If this is not the case for the version you’re working with, start by adding the following package to the project:</span></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;"><code>npm install --save-dev @testing-library/react</code></span></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">React Testing Library works along with Jest. When running </span><strong>npm test</strong><span style="font-weight: 400;">, all files with a .</span><i><span style="font-weight: 400;">test.js</span></i><span style="font-weight: 400;"> suffix will be recognized by the Jest test runner. So, an example for our test file would be </span><i><span style="font-weight: 400;">App.test.js</span></i><span style="font-weight: 400;">. Create an </span><i><span style="font-weight: 400;">App.test.js </span></i><span style="font-weight: 400;">file if it has not been included yet with </span><strong>create-react-app</strong><span style="font-weight: 400;">. </span><span style="font-weight: 400;">In this example, the files’ content looked like this:</span><span style="font-weight: 400;"> </span></p>
<p>&nbsp;</p>
<h3><b>App.js</b></h3>
<p><script src="https://gist.github.com/agustinfece/50f57ac347916b43c1b85deec7322b85.js"></script><br />
<b>Link:</b> <a href="https://gist.github.com/agustinfece/50f57ac347916b43c1b85deec7322b85"><span style="font-weight: 400;">script</span></a></p>
<h3></h3>
<h3><b>App.test.js</b></h3>
<p><script src="https://gist.github.com/agustinfece/cc4095cfa8c064dd9d607bd8dcceca46.js"></script><br />
<b>Link:</b> <a href="https://gist.github.com/agustinfece/cc4095cfa8c064dd9d607bd8dcceca46"><span style="font-weight: 400;">script</span></a></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">This example has a single test suite, </span><span style="font-weight: 400;"><strong>renders learn react link</strong>,</span><span style="font-weight: 400;"> with just one assertion: </span><strong>expect</strong><span style="font-weight: 400;">. It uses the </span><span style="font-weight: 400;">render </span><span style="font-weight: 400;">function to <strong>render</strong> a React component and then queries the UI to verify if a text that matches the regular expression has been rendered.</span></p>
<p><span style="font-weight: 400;">After running all tests with </span><strong>npm test</strong><span style="font-weight: 400;">, it passes successfully:</span></p>
<p><span style="font-weight: 400;"><img decoding="async" loading="lazy" class="alignnone wp-image-14133" src="https://www.asapdevelopers.com/wp-content/uploads/2021/01/npm-36-300x116.png" alt="react testing library 36" width="569" height="220" srcset="https://www.asapdevelopers.com/wp-content/uploads/2021/01/npm-36-300x116.png 300w, https://www.asapdevelopers.com/wp-content/uploads/2021/01/npm-36-1024x395.png 1024w, https://www.asapdevelopers.com/wp-content/uploads/2021/01/npm-36-768x296.png 768w, https://www.asapdevelopers.com/wp-content/uploads/2021/01/npm-36.png 1068w" sizes="(max-width: 569px) 100vw, 569px" /></span></p>
<p><span style="font-weight: 400;">Let’s modify the </span><i><span style="font-weight: 400;">App.js </span></i><span style="font-weight: 400;">file to add a button and then fire an event on the </span><i><span style="font-weight: 400;">App.test.js </span></i><span style="font-weight: 400;">in a different test suite. To do so, the </span><strong>fireEvent</strong><span style="font-weight: 400;"> function will be used like this:</span></p>
<p>&nbsp;</p>
<h3><b>App.js</b></h3>
<p><script src="https://gist.github.com/agustinfece/f7e22eb7c90b546ce2124a647a5d8d6b.js"></script><br />
<b>Link:</b> <a href="https://gist.github.com/agustinfece/f7e22eb7c90b546ce2124a647a5d8d6b"><span style="font-weight: 400;">script</span></a></p>
<h3><b>App.test.js</b></h3>
<p><script src="https://gist.github.com/agustinfece/e8d994f9362299cd8a538ddb3eda204e.js"></script><br />
<b>Link:</b> <a href="https://gist.github.com/agustinfece/e8d994f9362299cd8a538ddb3eda204e"><span style="font-weight: 400;">script</span></a></p>
<p>&nbsp;</p>
<p><span style="font-weight: 400;">What we’ve done here is simulate a user’s behavior, checking what happened in the application UI after that event. After executing </span><strong>npm test</strong><span style="font-weight: 400;">, it passes again.</span></p>
<p><span style="font-weight: 400;"><img decoding="async" loading="lazy" class="alignnone wp-image-14132" src="https://www.asapdevelopers.com/wp-content/uploads/2021/01/npm-300x115.png" alt=" npm 60" width="556" height="213" srcset="https://www.asapdevelopers.com/wp-content/uploads/2021/01/npm-300x115.png 300w, https://www.asapdevelopers.com/wp-content/uploads/2021/01/npm-1024x392.png 1024w, https://www.asapdevelopers.com/wp-content/uploads/2021/01/npm-768x294.png 768w, https://www.asapdevelopers.com/wp-content/uploads/2021/01/npm.png 1098w" sizes="(max-width: 556px) 100vw, 556px" /></span></p>
<p><span style="font-weight: 400;">There are more ways to test your application using this library; only the basics were shown in this example. Because of how this library works, rather than dealing with instances of rendered React components, tests will work with actual DOM nodes. Ultimately, you are using JavaScript but with a React output.</span></p>
<p>&nbsp;</p>
<h2><b>Bonus: Why not use Enzyme? </b></h2>
<p><span style="font-weight: 400;">According to the official </span><a href="https://testing-library.com/docs/react-testing-library/migrate-from-enzyme/"><span style="font-weight: 400;">docs</span></a><span style="font-weight: 400;">, the React Testing Library is suggested as a replacement for another well-known testing library: </span><a href="http://airbnb.io/enzyme/"><span style="font-weight: 400;">Enzyme</span></a><span style="font-weight: 400;">.  This is because <a href="https://www.asapdevelopers.com/testing-a-react-web-app-using-jest-and-enzyme/">Enzyme</a> fosters some bad testing practices, encouraging developers to test </span><span style="font-weight: 400;">implementation like we mentioned above.</span> <a href="https://kentcdodds.com/blog/testing-implementation-details"><span style="font-weight: 400;">Here</span></a><span style="font-weight: 400;"> is an article written by the React Testing Library founder delving into why you should not test implementation details, and </span><a href="https://testing-library.com/docs/react-testing-library/migrate-from-enzyme#how-to-migrate-from-enzyme-to-react-testing-library"><span style="font-weight: 400;">here</span></a><span style="font-weight: 400;"> is an official guide explaining how to migrate from Enzyme to the React Testing Library.</span></p>
<p>&nbsp;</p>
<h2><b>Final thoughts on React Testing Library</b></h2>
<p><span style="font-weight: 400;">Without a doubt, we fully recommend this library because of its primary purpose: giving the developer confidence by testing components in the way a user would use them. </span><span style="font-weight: 400;">Give this library a try if you have the chance. If you prefer a different framework, you can use one of the other libraries offered by the Testing Library project. You won’t regret it!</span></p>
<div id="fws_6939741185c6d"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/web-mobile-app-san-francisco/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>Mobile App Developers</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/react-testing-library/">React Testing Library</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Top 5 JavaScript frontend frameworks</title>
		<link>https://www.asapdevelopers.com/top-5-javascript-frontend-frameworks/</link>
		
		<dc:creator><![CDATA[Pablo Giampedraglia]]></dc:creator>
		<pubDate>Mon, 21 Dec 2020 19:37:14 +0000</pubDate>
				<category><![CDATA[Programming Language]]></category>
		<category><![CDATA[React]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=14038</guid>

					<description><![CDATA[<p>Top 5 JavaScript frontend frameworks Designed by Brendan Eich’s Netscape back in 1995, JavaScript is among the most popular programming languages to date and is used by the majority of...</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/top-5-javascript-frontend-frameworks/">Top 5 JavaScript frontend frameworks</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Top 5 JavaScript frontend frameworks</h1>
<p>Designed by Brendan Eich’s Netscape back in 1995, <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript">JavaScript</a> is among the most popular programming languages to date and is <a href="https://insights.stackoverflow.com/survey/2020">used by the majority of developers as of 2020</a>. This is no surprise as it is versatile, easy to learn, and can be used for both frontend and backend development. As you might expect from JavaScript’s popularity, there are many frameworks to choose from when it comes to developing in this language. In this article, we’ll cover some of the most popular JavaScript frontend frameworks.</p>
<h2>⦁ React.js</h2>
<p><img decoding="async" loading="lazy" class="size-medium wp-image-8890 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-300x300.png" alt="React javascript frontend frameworks" width="300" height="300" srcset="https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-300x300.png 300w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-150x150.png 150w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-768x768.png 768w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-100x100.png 100w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-500x500.png 500w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-350x350.png 350w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers.png 800w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p><a href="https://reactjs.org/">React.js</a> is actually a JavaScript library used to build UI interfaces on the web. It was created by Jordan Walke and a group of Facebook engineers and launched in 2013. It is considered the most influential JavaScript-based web framework as it introduced many new concepts, such as declarative programming and immutable state. It also introduced the <a href="https://medium.com/javascript-in-plain-english/what-the-heck-is-the-virtual-dom-3ef1ae4a950b">Virtual DOM</a>, which improved user experience and performance. In addition to frontend web development, it is often paired with <a href="https://www.electronjs.org/">Electron</a> for desktop apps and with <a href="https://nodejs.org/es/">Node.js</a> for backend development, and it is also the heart of <a href="https://www.asapdevelopers.com/react-vs-react-native/">React Native</a>, a popular framework for mobile app development.<br />
React.js is component-based, declarative and open-source, and has many benefits including outstanding SEO support, one-way data flow, reusable components, easy integration and simple syntax.</p>
<p>This library is used by some of the world&#8217;s largest companies, such as Netflix, Twitter and Facebook. React.js is also one of the most popular and loved JavaScript frontend frameworks by developers, as evidenced by <a href="https://insights.stackoverflow.com/survey/2020">Stack Overflow’s 2020 survey</a> and <a href="https://2019.stateofjs.com/front-end-frameworks/">The State of JavaScript</a>. This means it has a large community behind it that is constantly contributing countless learning resources.</p>
<h2>⦁ Angular.js</h2>
<p><img decoding="async" loading="lazy" class=" wp-image-14050 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/12/angular-300x80.png" alt="angular javascript frontend frameworks" width="439" height="117" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/12/angular-300x80.png 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/12/angular-1024x273.png 1024w, https://www.asapdevelopers.com/wp-content/uploads/2020/12/angular-768x205.png 768w, https://www.asapdevelopers.com/wp-content/uploads/2020/12/angular-1536x410.png 1536w, https://www.asapdevelopers.com/wp-content/uploads/2020/12/angular-2048x546.png 2048w" sizes="(max-width: 439px) 100vw, 439px" /></p>
<p>This open-source framework was launched by Google in 2010 and was one of the earliest JavaScript frontend frameworks to hit the market. Back then, <a href="https://angularjs.org/">Angular.js</a> was far from perfect, so it had to be completely redesigned. This led to a much more successful re-release in 2016.<br />
The framework is used to create single-page web apps and is known for being extremely secure. It should not be confused with Angular: while Angular.js is JavaScript-based and uses directives, Angular is TypeScript and component-based.</p>
<p>Other Angular.js features include DOM sanitization, UI view templates, the fact it’s cross-platform (used for <a href="https://www.asapdevelopers.com/whatis-pwa-progressive-web-app/">PWAs</a>, native and desktop apps), and the possibility to create accessible applications.<br />
Microsoft, Forbes and, of course, Google, are among the big shots that use it for their websites.</p>
<h2>⦁ Vue.js</h2>
<p><img decoding="async" loading="lazy" class=" wp-image-14051 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/12/vue-300x260.png" alt="vue javascript frontend frameworks" width="248" height="215" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/12/vue-300x260.png 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/12/vue-768x666.png 768w, https://www.asapdevelopers.com/wp-content/uploads/2020/12/vue.png 945w" sizes="(max-width: 248px) 100vw, 248px" /></p>
<p><a href="https://vuejs.org/">Vue.js</a> is a more recent frontend JavaScript framework, released in 2014. However, it has managed to make quite an impression: it <a href="https://insights.stackoverflow.com/survey/2020">ranks in third place</a> when it comes to the most loved web frameworks and, according to <a href="https://2019.stateofjs.com/front-end-frameworks/">The State of JavaScript</a>, most developers have either used it and would continue to do so or have heard of it and are interested in using it. It is also one of the few frameworks available that is not backed by a tech giant (it was developed by former Google engineer Evan You). It was conceived as a combination of the best parts of React and Angular.js and has improved on those features.</p>
<p>Vue.js uses Virtual DOM, includes HTML-based templates and offers PWA development as well as <a href="https://developer.android.com/topic/libraries/data-binding/two-way">two-way data binding</a>. Moreover, the framework is versatile, performant, lightweight and open-source.<br />
Companies such as Apple, Adobe and Nintendo are among those that have adopted this frontend framework.</p>
<h2>⦁ Embers.js</h2>
<p><img decoding="async" loading="lazy" class=" wp-image-14054 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/12/ember-300x111.png" alt="ember javascript frontend frameworks" width="365" height="135" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/12/ember-300x111.png 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/12/ember.png 640w" sizes="(max-width: 365px) 100vw, 365px" /></p>
<p>Ember.js was created by Apple’s Yehuda Katz in 2011 and launched in 2012. This end-to-end, opinionated and open-source framework is based on the <a href="https://www.wintellect.com/model-view-viewmodel-mvvm-explained/">Model—View—ViewModel</a> (MVVM) architecture and supports two-way data binding. It also focuses on convention over configuration and offers a debugging tool called <a href="https://guides.emberjs.com/release/ember-inspector/">Ember Inspector</a>.</p>
<p>Other features of Ember.js include a data access library called <a href="https://guides.emberjs.com/release/models/">Ember Data</a>, built-in testing and a comprehensive ecosystem with ease of integration for third-party node modules (called <a href="https://guides.emberjs.com/v3.3.0/tutorial/installing-addons/">Addons</a>)<br />
Although usage of this framework is not that widespread, as of 2019, there was a <a href="https://2019.stateofjs.com/front-end-frameworks/">large number of developers</a> that were interested in using this framework. Some of the companies that support Ember.js include Netflix, Microsoft and LinkedIn.</p>
<h2>⦁ Svelte.js</h2>
<p>&nbsp;</p>
<p>Launched in 2016 by former Guardian developer Rich Harris, <a href="https://svelte.dev/">Svelte.js</a> is the most recent JavaScript frontend framework in our list. It is open-source, component-based and written in TypeScript. At the time of its launch, Svelte.js was considered revolutionary as it has no virtual DOM: components are built boilerplate-free and then the Svelte Compiler compiles framework-specific code to HTML, CSS and JavaScript and renders it to the browser.</p>
<p>Other features include client and server-side rendering, great SEO support and cross-platform mobile development. It also has a growing community of contributors committed to making the framework grow.<br />
Svelte.js has made a great impression during its short lifespan, ranking in second place when it comes to awareness, interest and satisfaction according to <a href="https://2019.stateofjs.com/front-end-frameworks/">The State of JavaScript</a>. Some of the companies that use Svelte.js include the New York Times and GoDaddy.</p>
<h2>Bonus: Meteor</h2>
<p>In contrast with the rest of the frameworks in this article, <a href="https://www.meteor.com/">Meteor</a> is actually full-stack, so we’ve added it as a bonus to this list. It was developed in 2012 and based on Node.js. Meteor is not merely a framework but an isomorphic development ecosystem (IDevE). Moreover, it is cross-platform and can be used to create mobile and desktop apps, in addition to web development. When it comes to frontend, it includes its very own template engine and also has integrations for React.js, Vue.js, Angular and Svelte.js, among other frontend networks.<br />
Companies that use Meteor include Ikea, Mazda and Dispatch.</p>
<h2>Final thoughts on Top 5 JavaScript frontend frameworks</h2>
<p>As the most commonly used programming language, it is no surprise that JavaScript has garnered countless tools over the last 25 years. Developers definitely have their choice of frontend frameworks when it comes to JavaScript development, all of them with unique benefits and features. We hope we have given you enough data to make an informed decision when it comes to the most appropriate JavaScript frontend framework for your team or project.</p>
<div id="fws_6939741186ee9"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/web-mobile-app-san-francisco/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>Mobile App Development Company</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/top-5-javascript-frontend-frameworks/">Top 5 JavaScript frontend frameworks</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>React concurrent mode</title>
		<link>https://www.asapdevelopers.com/react-concurrent-mode/</link>
		
		<dc:creator><![CDATA[Pablo Giampedraglia]]></dc:creator>
		<pubDate>Mon, 05 Oct 2020 15:10:25 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<category><![CDATA[React Native]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=13565</guid>

					<description><![CDATA[<p>A word of caution regarding React Concurrent Mode The features described in this article are available for use, but you shouldn&#8217;t use them for professional development just yet. This new React...</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/react-concurrent-mode/">React concurrent mode</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2><b>A word of caution regarding React Concurrent Mode</b></h2>
<p><span style="font-weight: 400;">The features described in this article are available for use, but you shouldn&#8217;t use them for professional development just yet. </span><span style="font-weight: 400;">This new React mode has experimental features that will possibly change in the future. </span><span style="font-weight: 400;">That said, React Concurrent Mode is currently available in the experimental build of React so, even though it is not yet available in the stable releases, you can still try out these new features by using the experimental builds.</span></p>
<h2><b><img decoding="async" loading="lazy" class="size-medium wp-image-13613 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/10/ReactConcurrentMode-300x300.jpg" alt="Caution React Concurrent Mode" width="300" height="300" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/10/ReactConcurrentMode.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/10/ReactConcurrentMode-150x150.jpg 150w, https://www.asapdevelopers.com/wp-content/uploads/2020/10/ReactConcurrentMode-100x100.jpg 100w, https://www.asapdevelopers.com/wp-content/uploads/2020/10/ReactConcurrentMode-140x140.jpg 140w" sizes="(max-width: 300px) 100vw, 300px" /></b></h2>
<h2><b>What is concurrency?</b></h2>
<p><span style="font-weight: 400;">Concurrency is a way to structure a program by breaking it into pieces that can then be executed independently. This is how you can break the boundaries of using a single thread and make your application more efficient.</span></p>
<h2><b>So…what is React Concurrent Mode?</b></h2>
<p><span style="font-weight: 400;">The React development Team defines React’s new mode as follows: </span><span style="font-weight: 400;">“&#8230; </span><i><span style="font-weight: 400;">Concurrent Mode is a set of new features that help React apps stay responsive and gracefully adjust to the user’s device capabilities and network speed.</span></i><span style="font-weight: 400;">”</span></p>
<p><span style="font-weight: 400;">In other words, Concurrent Mode is a flag that allows React’s kernel to choose when to apply changes in the DOM when you are dealing with side effects, like Network requests. The main idea behind this is </span><b>making React more intelligent</b><span style="font-weight: 400;">.</span></p>
<p><span style="font-weight: 400;">Basically, this would allow React to perform multiple UI renders concurrently. Although JavaScript is a single-threaded language, these new features will allow web applications to be much more responsive and faster. And native applications too, of course, once these features hit <a href="https://www.asapdevelopers.com/react-native-san-francisco/">React Native</a> in the near future.</span></p>
<h2><b>A bit of history on React Concurrent Mode</b></h2>
<p><span style="font-weight: 400;">When React’s kernel was completely rewritten on React Fiber, key features came in, like the ability to pause, abort, or reuse work as new updates come in, and the ability to assign priority to different types of updates.</span></p>
<p><span style="font-weight: 400;">However, the main benefit of the rewrite was the possibility of creating different virtual threads (called fibers) which are divided on different properties depending on whether the user is interacting or not with a component.</span></p>
<p><span style="font-weight: 400;">React Fiber laid the foundation on which Concurrent Mode works. Now, when some asynchronous event is tied to a component rendering, React can intelligently decide which elements of the virtual DOM have priority to be rendered.</span></p>
<h2><b>An everyday example</b></h2>
<p><span style="font-weight: 400;">Let’s imagine you have a single-page application that has a section where it must display a spinner, skeleton or placeholder while it is calling an API. Why is this necessary? Because this is a good indication that something is going on and, in this case, it buys you some time to show the returned data.</span></p>
<p><span style="font-weight: 400;">In “normal” React, you would see a spinner while React is finishing loading the layout, but it must reload the component to show the result that it got from calling the API’s endpoint.</span></p>
<p><span style="font-weight: 400;">It would be better if React waited a bit more to get a better performance and to show the user a final state of the user interface instead of intermediate states that are completely unnecessary and bothersome in the user experience.</span></p>
<p><span style="font-weight: 400;">Luckily for us, this is possible thanks to React Concurrent Mode. </span><span style="font-weight: 400;">In more specific words, with Concurrent Mode the rendering process is broken down into smaller tasks, and a scheduler allows you to prioritize them based on importance. This then helps React:</span></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">Not to block the main thread.</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">To work on multiple tasks at a time and switch between them according to priority.</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">To partially render a tree without committing the result.</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">To make rendering interruptible and happen in multiple phases.</span></li>
</ul>
<h2><b><img decoding="async" loading="lazy" class="aligncenter wp-image-8890 size-medium" src="https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-300x300.png" alt="React Logo - React Concurrent Mode" width="300" height="300" srcset="https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-300x300.png 300w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-150x150.png 150w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-768x768.png 768w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-100x100.png 100w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-500x500.png 500w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-350x350.png 350w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers.png 800w" sizes="(max-width: 300px) 100vw, 300px" /></b></h2>
<h2><b>Code time</b></h2>
<p><span style="font-weight: 400;">Let’s make a small application where you have to fetch a large number of images from an API; the idea is to show all the images once the data fetching is finished and that all images are rendered without intermediate states.</span></p>
<p><span style="font-weight: 400;">Assuming you have already created a React project (for example, using </span><a href="https://reactjs.org/docs/create-a-new-react-app.html"><b>create-react-app</b></a><span style="font-weight: 400;">), what you have to do next is enable Concurrent Mode on the index.js file of your application.</span></p>
<p><span style="font-weight: 400;">Here there’ll be a flag to change between React Concurrent Mode and “normal” React, so when your project is finished you will see the difference between the two modes.</span></p>
<p><script src="https://gist.github.com/joaquin-viera/d27386a27b16aa3fa1c0699d40420904.js"></script></p>
<p><b>Link:</b> <a href="https://gist.github.com/joaquin-viera/d27386a27b16aa3fa1c0699d40420904"><span style="font-weight: 400;">index.js</span></a></p>
<p><b>Note: </b><span style="font-weight: 400;">it is very important for the index.html file on your React project to have a div inside the &lt;body&gt; tag with a root ID. </span><span style="font-weight: 400;">It should look something like this:</span></p>
<p><script src="https://gist.github.com/joaquin-viera/a3c2bb4bf6dd4b4b922fa67d29fdcf44.js"></script></p>
<p><b>Link:</b> <a href="https://gist.github.com/joaquin-viera/a3c2bb4bf6dd4b4b922fa67d29fdcf44"><span style="font-weight: 400;">index.html</span></a></p>
<p><span style="font-weight: 400;">Next, you have to modify the </span><span style="font-weight: 400;">react</span><span style="font-weight: 400;"> and </span><span style="font-weight: 400;">react-dom versions</span><span style="font-weight: 400;"> in your package.json file to set the experimental build. </span><span style="font-weight: 400;">Remember to run </span><b>npm start </b><span style="font-weight: 400;">or </span><b>yarn start</b><span style="font-weight: 400;"> after making the changes.</span></p>
<p><b>Important note:</b><span style="font-weight: 400;"> both dependencies are constantly having new experimental releases. If you want to use the latest version instead of changing the package.json to a specific one, you can run one of the following commands.</span></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">npm install react@experimental react-dom@experimental</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">yarn add react@experimental react-dom@experimental</span></li>
</ul>
<p><script src="https://gist.github.com/joaquin-viera/81bbfb7a5a1449739af3582e1e8b0cfb.js"></script></p>
<p><strong>Link: </strong><a href="https://gist.github.com/joaquin-viera/81bbfb7a5a1449739af3582e1e8b0cfb"><span style="font-weight: 400;">package.json</span></a></p>
<p><span style="font-weight: 400;">As you can see, in the package.json there is a </span><a href="https://react-bootstrap.github.io/getting-started/introduction"><b>react-bootstrap</b></a> <span style="font-weight: 400;">dependency</span><b>. </b><span style="font-weight: 400;">This is an easy way to include the spinner component that your application will use later. </span><span style="font-weight: 400;">Once you have finished setting up your project, it is time to work with the App.js file and your custom components (ImageList.js).</span></p>
<p><script src="https://gist.github.com/joaquin-viera/137d1f066c0c481ed3c016aa8e55da9e.js"></script></p>
<p><b>Link:</b> <a href="https://gist.github.com/joaquin-viera/137d1f066c0c481ed3c016aa8e55da9e"><span style="font-weight: 400;">App.js</span></a></p>
<p><span style="font-weight: 400;">Here there are a lot of new features. </span><span style="font-weight: 400;">First of all, there’s the </span><b>useTransition hook </b><span style="font-weight: 400;">(imported and used as ‘’unstable_useTransition’)</span>. <span style="font-weight: 400;">In this scenario, you have the </span><span style="font-weight: 400;">images state</span><span style="font-weight: 400;"> that, while being fetched, causes the List Image component to suspend, so it must be updated using the useTransition hook. </span></p>
<p><span style="font-weight: 400;">This new hook returns two values:</span></p>
<ul>
<li style="font-weight: 400;"><span style="font-weight: 400;">A function that takes a callback function in which you set the state.</span></li>
<li style="font-weight: 400;"><span style="font-weight: 400;">A boolean that lets you know when the transition is taking place.</span></li>
</ul>
<p><span style="font-weight: 400;">The useTransition hook receives an argument that tells React how long to wait before suspending the component. That argument is the one you’ll be using to show the spinner.</span></p>
<p><span style="font-weight: 400;">On the</span><b> Fetch Images function,</b><span style="font-weight: 400;"> you’ll use the </span><a href="https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch"><b>JavaScript Fetch API</b></a> <span style="font-weight: 400;">to fetch multiple images and return the result. </span><span style="font-weight: 400;">Then there’s the </span><b>Create Resource function</b><span style="font-weight: 400;">. You will use this function to display the images in your React List component. This allows you to tell React that you want to wait until you are done fetching the images for your component to be rendered. </span></p>
<p><span style="font-weight: 400;">This function will run the Fetch Images function. Then, whenever the promise is completed or rejected, it will change the status of the status variable. </span><span style="font-weight: 400;">The read method will be used to get the images that will be displayed. When the promise is still pending, it throws the suspender variable, which contains your promise. When it gets rejected, it throws an error that is saved on the suspender variable. Finally, you return the result when the images have been fetched successfully.</span></p>
<p><span style="font-weight: 400;">You’ll start the transition with the </span><b>useEffect hook</b><span style="font-weight: 400;"> and save the returned data in the </span><b>useState hook</b><span style="font-weight: 400;">. </span><span style="font-weight: 400;">The </span><b>&lt;Suspense&gt; component </b><span style="font-weight: 400;">lets you “wait” for some code to load and declaratively specify a loading state—in this case, a spinner—while you are waiting.</span></p>
<p><script src="https://gist.github.com/joaquin-viera/8aa3989b31e180aa08ac54808b68993a.js"></script></p>
<p><b>Link</b><span style="font-weight: 400;">: </span><a href="https://gist.github.com/joaquin-viera/8aa3989b31e180aa08ac54808b68993a"><span style="font-weight: 400;">ImageList.js</span></a></p>
<p><span style="font-weight: 400;">Here you simply have a custom component to show all the images that you got from the API’s endpoint. It receives two props, which are the resources (the fetched images) and the pending state that is obtained from the </span><b>useTransition hook</b><span style="font-weight: 400;">; this last one is only used to change the CSS styles.</span></p>
<p><script src="https://gist.github.com/joaquin-viera/86af07843c5a9533bf4950f12ed0c7fa.js"></script></p>
<p><b>Link</b><span style="font-weight: 400;">: </span><a href="https://gist.github.com/joaquin-viera/86af07843c5a9533bf4950f12ed0c7fa"><span style="font-weight: 400;">App.css</span></a></p>
<p><span style="font-weight: 400;">Here are some CSS Styles to make the final result look better. </span><span style="font-weight: 400;">Now, you just need to test the application that you made and you should see how, after the spinner goes away, the rendering process feels smoother. </span><span style="font-weight: 400;">If you go to the index.js file and change the boolean value to use “normal” React and run the application again (remember to clean cache), you will see how the rendering has decreased and feels heavier.</span></p>
<p><b>Last note: </b><span style="font-weight: 400;">please remember that those experimental features are being constantly changed and this test application probably won’t work in the future. For example, the </span><i><span style="font-weight: 400;">unstable_useTransition </span></i><span style="font-weight: 400;">import and</span><i><span style="font-weight: 400;"> ReactDOM.unstable_createRoot()</span></i><span style="font-weight: 400;"> may change soon.</span></p>
<p>&nbsp;</p>
<h2><b><img decoding="async" loading="lazy" class="alignnone wp-image-13626" src="https://www.asapdevelopers.com/wp-content/uploads/2020/10/Asap_Cabezal_ReactConcurrent_071020_header-300x55.jpg" alt="" width="976" height="179" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/10/Asap_Cabezal_ReactConcurrent_071020_header-300x55.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/10/Asap_Cabezal_ReactConcurrent_071020_header-1024x187.jpg 1024w, https://www.asapdevelopers.com/wp-content/uploads/2020/10/Asap_Cabezal_ReactConcurrent_071020_header-768x140.jpg 768w, https://www.asapdevelopers.com/wp-content/uploads/2020/10/Asap_Cabezal_ReactConcurrent_071020_header-1536x280.jpg 1536w, https://www.asapdevelopers.com/wp-content/uploads/2020/10/Asap_Cabezal_ReactConcurrent_071020_header.jpg 1920w" sizes="(max-width: 976px) 100vw, 976px" /></b></h2>
<h2></h2>
<h2><b>Final thoughts on r</b><b>eact concurrent mode</b></h2>
<p><span style="font-weight: 400;">This new mode is still in an experimental stage, but after its official release, it will bring many new possibilities and mark a before and after in <a href="https://www.asapdevelopers.com/web-mobile-app-san-francisco/">React web application development</a> and React Native mobile application development.</span></p>
<p><b>Before Concurrent Mode</b><span style="font-weight: 400;">, React had no way of detecting that there were multiple dependencies to external services (like APIs), so it couldn&#8217;t do anything to improve the user experience. </span><b>Now, with React Concurrent Mode</b><span style="font-weight: 400;">, you can let React’s engine know about your dependencies with external services and let it use them in a smarter way, as well as make decisions about when to render the content. </span><span style="font-weight: 400;">It is clear what those new React features are focusing on: it’s all about </span><b>perfecting the User Experience</b><span style="font-weight: 400;">.</span></p>
<div id="fws_69397411881e7"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/react-native-san-francisco/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>React Development Company</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/react-concurrent-mode/">React concurrent mode</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Monorepos and scalable development</title>
		<link>https://www.asapdevelopers.com/monorepos-scalable-development/</link>
		
		<dc:creator><![CDATA[Pablo Giampedraglia]]></dc:creator>
		<pubDate>Mon, 24 Aug 2020 14:38:39 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=13300</guid>

					<description><![CDATA[<p>Scalable development through monorepos at React Summit Remote Edition The 2020 COVID pandemic caused many of our favorite development conferences to be canceled or postponed. However, a few of them...</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/monorepos-scalable-development/">Monorepos and scalable development</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2><strong>Scalable development through monorepos at React Summit Remote Edition</strong></h2>



<p>The 2020 COVID pandemic caused many of our favorite development conferences to be canceled or postponed. However, a few of them were able to adapt to the new remote methodology that has taken the world by storm over the last few months. This was the case with the React Summit. The conference had its remote edition last April and, in this article, we’ll focus on one of the conference’s talks about monorepos: Scalable React Development for Large Projects by Jason Jean. But first, let’s give you a bit of context.</p>



<h2><strong>About the React Summit Remote Edition</strong></h2>
<p><strong>

</strong></p>
<p class="wp-block-image"><img decoding="async" loading="lazy" class="aligncenter wp-image-13381 size-full" src="https://www.asapdevelopers.com/wp-content/uploads/2020/08/Monorepos001.jpg" alt="React Summit Logo - Monorepos" width="404" height="125" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/08/Monorepos001.jpg 404w, https://www.asapdevelopers.com/wp-content/uploads/2020/08/Monorepos001-300x93.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/08/Monorepos001-400x125.jpg 400w" sizes="(max-width: 404px) 100vw, 404px" /></p>
<p class="wp-block-image"><strong><img alt="" /></strong>The React Summit is a two-tier conference: one of the tiers focuses on React and the other on React Native. <a href="https://reactsummit.com/">This year’s edition</a> was to be held in Amsterdam, but had to be postponed until September 11 due to the pandemic. However, <a href="https://remote.reactsummit.com/">a remote edition</a> was organized and held via Zoom on April 17. <a href="https://www.asapdevelopers.com/leadership-react-boston-conference/">This conference included talks</a>, Q&amp;As and workshops, as well as an advice lounge and networking opportunities. There were even several afterparty options, including a QuakeJS tournament. Speakers included Guillermo Rauch from Next.js, Sangeetha KP from Amazon, and Haris Mahmood from Shopify. Meanwhile, topics ranged from artificial intelligence and virtual reality with React, to AHA programming and bringing Ionic to React.</p>
<p>

</p>



<h2><strong>About the speaker</strong></h2>



<p class="wp-block-image"><img decoding="async" loading="lazy" class="aligncenter wp-image-13380 size-full" src="https://www.asapdevelopers.com/wp-content/uploads/2020/08/Monorepos002.jpg" alt="Nrwl logo - monorepo development" width="602" height="267" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/08/Monorepos002.jpg 602w, https://www.asapdevelopers.com/wp-content/uploads/2020/08/Monorepos002-300x133.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/08/Monorepos002-600x267.jpg 600w" sizes="(max-width: 602px) 100vw, 602px" /><img alt="" />Jason Jean is a Senior Angular Architect at <a href="https://nrwl.io/">Nrwl</a> in Canada. Nrwl is a <a href="https://www.asapdevelopers.com/react-native-san-francisco/">development company</a> that consults with fortune 5000 companies and specializes in monorepo development. They create development tools to accelerate app development and their main goal is to help companies work faster and more efficiently.</p>





<p>Jean works as part of the core team for <a href="https://nx.dev/react">Nx</a>, a set of open-source development tools specially created for monorepos. In his talk, he explains what monorepos are—and what they are not—and discusses their benefits. He also goes into detail about Nx as a tool to help developers implement a monorepo workflow.</p>



<h2><strong>What are monorepos?</strong></h2>



<p>A monorepo is a single repository with multiple projects commonly used by big companies such as Facebook, Microsoft, Google and Twitter. Jean describes a monorepo as a warehouse for code. Just like in a warehouse, where items are stored together, but packed and shipped separately, projects in a monorepo are stored together, but apps or features are developed separately and each project is deployed independently. Jean also emphasizes that a monorepo is not a monolithic app and that using one doesn’t mean you have to build or deploy all projects at once.</p>



<h2><strong>What are the differences between using multiple repositories and monorepos?</strong></h2>



<p>Apps are usually developed by sharing code in multiple repositories. This implies duplicated tooling, separate workflows and testing, less analyzable dependencies, and out of sync internal and external dependencies (with possibly different versions being used for each project or feature). This system is not only complex, but it is also usually more cumbersome and time-consuming.</p>



<p>In contrast with multiple repositories, monorepos use unified tooling, their dependencies are analyzable, they let you run all tests at once and they include a single version of dependencies (both internal and external). Therefore, using a monorepo considerably simplifies the development process.</p>



<h2>What does Nx bring to the table?</h2>





<p><img decoding="async" loading="lazy" class="size-medium wp-image-13379 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/08/Monorepos003-300x187.jpg" alt="Nx logo - Monorepos development" width="300" height="187" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/08/Monorepos003-300x187.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/08/Monorepos003-600x375.jpg 600w, https://www.asapdevelopers.com/wp-content/uploads/2020/08/Monorepos003.jpg 602w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>Nx is an open-source toolkit that enables you to scale development through multiple teams—which means multiple applications and both front and back end—by helping you implement a monorepo workflow.</p>



<p>Jean highlights three main benefits of working with Nx: you can develop like Facebook, it has an intelligent build system and it supports the use of modern tools. He then goes into detail about the perks of each of these features:</p>



<h3><strong>1. Develop like Facebook</strong></h3>



<p>Using Nx allows you to incorporate some of the best coding practices from a tech giant like Facebook. This means you can share code and collaborate between multiple teams, thus creating a holistic development experience. It also lets you create a workspace with no manual setup, as well as add shared functionalities very easily. Other benefits are that you can generate a redux state without writing boilerplate and add <a href="https://nextjs.org/">Next.js</a> without doing much setup.</p>



<p>What happens if you don’t like what Nx generates? Well, you can write custom code generation to suit your organization. This has the added benefits of achieving consistency and enforcing best practices. Nx also helps you enforce standards and best practices by tagging different projects and creating module boundaries to make sure there are no incorrect dependencies. Finally, it infers dependencies and lets you visualize all your dependencies with an interactive view.</p>



<h3><strong>2. Intelligent build system</strong></h3>



<p>Nx’s intelligent build system means you can build only the affected projects, build in parallel, distribute builds across many agents and cache previous builds. As Jean states, the idea is that you never have to build the same thing twice.</p>



<h3><strong>3. Supports the use of modern tools.</strong></h3>



<p>Nx’s default setup includes <a href="https://www.typescriptlang.org/">TypeScript</a> (although, of course, you can also use plain JavaScript), <a href="https://jestjs.io/">Jest</a>, <a href="https://storybook.js.org/">Storybook</a>—a tool that lets you develop UI components in isolation—and <a href="https://www.cypress.io/">Cypress</a>—and end-to-end testing experience.</p>



<p>However, you can install a variety of plugins for your favorite tools, such as <a href="https://reactjs.org/">React</a>, Next.js, <a href="https://expressjs.com/">Express.js</a>, <a href="https://nodejs.org/en/">Node.js</a>, HTML, <a href="https://nodejs.org/en/">Angular</a> and <a href="https://nestjs.com/">Nest.js</a>. If you don’t find the tools you want among the selection, you still have two options: you can check out the community-created plugins or even create your own.</p>



<p>If you want to see how Nx works more closely, you can check out the <a href="https://youtu.be/Lr-u2ALSEQg?t=1155">live demo</a> by Jean.</p>



<h2><strong>Why make the switch to monorepos?</strong></h2>



<p>In the Q&amp;A section, one viewer asked about how to convince leadership and team members to make the switch from multiple to monorepo. Jean explains that monorepos improve collaboration and the perfect way to convince your team to make the switch is to focus on that. If dependencies don’t work together well, this creates frictions between different members of the team. A monorepo takes a lot of that stress away. Moreover, if you try out Nx and decide it’s not for you later on, you can move away from it easily. As Jean states, it doesn’t change how you write the code, it just works around it.</p>



<h2><strong>Final thoughts</strong></h2>



<p>Whether a monorepo is right for you will depend on the size, budget and requirements of your <a href="https://www.asapdevelopers.com/react-native-san-francisco/">development company</a>. However, it definitely has many benefits, particularly if working on large projects or several projects that overlap. -You can also watch the rest of the videos from the React Summit Remote Edition <a href="https://www.youtube.com/watch?v=diVrOpbG93Y&amp;list=PLNBNS7NRGKMGCBNebw8xkpkq_lhgPoIzR">here</a>.</p>

		<div id="fws_6939741189530"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/react-native-san-francisco/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>React Developers</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/monorepos-scalable-development/">Monorepos and scalable development</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Designing with Code in Mind &#8211; React Summit Remote Edition</title>
		<link>https://www.asapdevelopers.com/designing-with-code-mind-react-summit/</link>
		
		<dc:creator><![CDATA[Pablo Giampedraglia]]></dc:creator>
		<pubDate>Mon, 27 Jul 2020 15:40:26 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=13238</guid>

					<description><![CDATA[<p>The benefits of designers who code The 2020 COVID pandemic caused many of our favorite development conferences to be canceled or postponed. However, a few of them were able to...</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/designing-with-code-mind-react-summit/">Designing with Code in Mind &#8211; React Summit Remote Edition</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2><strong>The benefits of designers who code</strong></h2>



<p>The 2020 COVID pandemic caused many of our favorite development conferences to be canceled or postponed. However, a few of them were able to adapt to the new remote online methodology that has taken the world by storm over the last few months. This was the case with the React Summit. The conference had its remote edition last April and, in this article, we’ll focus on one of the conference’s talks: Designing with Code in Mind by Elizabet Oliveira. But first, let’s give you a bit of context.</p>



<h2><em><img decoding="async" loading="lazy" class="size-medium wp-image-13298 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/07/DesignersWhoCode001-300x93.jpg" alt="React Summit Remote Edition - Designing with Code in Mind" width="300" height="93" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/07/DesignersWhoCode001-300x93.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/07/DesignersWhoCode001-400x125.jpg 400w, https://www.asapdevelopers.com/wp-content/uploads/2020/07/DesignersWhoCode001.jpg 404w" sizes="(max-width: 300px) 100vw, 300px" /></em></h2>
<h2><em>About the React Summit Remote Edition</em></h2>





<p>The React Summit is a two-tier conference, one of the tiers focuses on React and the other on React Native. <a href="https://reactsummit.com/">This year’s edition</a> was to be held in Amsterdam, but had to be postponed until September 11 due to the pandemic. However, <a href="https://remote.reactsummit.com/">a remote edition</a> was organized and held via Zoom on April 17. This conference included talks, Q&amp;As and workshops, as well as an advice lounge and networking opportunities. There were even several afterparty options, including a <a href="http://www.quakejs.com/">QuakeJS</a> tournament. Speakers included Guillermo Rauch from Next.js, Sangeetha KP from Amazon, and Haris Mahmood from Shopify. Meanwhile, topics ranged from artificial intelligence and virtual reality with react, to AHA programming and bringing Ionic to React.</p>



<h2><em><img decoding="async" loading="lazy" class="size-medium wp-image-13297 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/07/DesignersWhoCode002-300x103.jpg" alt="Elastic Company Logo" width="300" height="103" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/07/DesignersWhoCode002-300x103.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/07/DesignersWhoCode002-600x207.jpg 600w, https://www.asapdevelopers.com/wp-content/uploads/2020/07/DesignersWhoCode002.jpg 602w" sizes="(max-width: 300px) 100vw, 300px" /></em></h2>
<h2><em>About the speaker</em><img alt="" /></h2>





<p>Elizabet Oliveira works remotely as a Senior Product Designer for <a href="https://www.elastic.co/">Elastic</a>. The company, which focuses on data analysis, is responsible for developing the <a href="https://www.elastic.co/elastic-stack">Elastic Stack</a>, which includes <a href="https://www.elastic.co/elasticsearch/?ultron=%5bEL%5d-%5bB%5d-%5bStack%5d-%5bTrials%5d-%5bEMEA-S%5d-Exact&amp;gambit=Elasticsearch-Core&amp;blade=adwords-s&amp;Device=c&amp;thor=elasticsearch&amp;gclid=Cj0KCQjw3ZX4BRDmARIsAFYh7ZIfca0QpOwultpSpU657OfvgBzyGdu7v1nx0HQjD2fVawW-flzL9M0aAqLfEALw_wcB">Elasticsearch</a>, <a href="https://www.elastic.co/kibana">Kibana</a>, Beats and <a href="https://www.elastic.co/logstash">Logstash</a>. Elastic is a distributed company with teams all across the globe, which means they are very good at making remote teams work.</p>



<p>Oliveira works mainly on the company’s design system that provides components for Kibana. Kibana “is a free and open user interface that lets you visualize your Elasticsearch data and navigate the Elastic Stack.” The tool includes multiple components for data visualization, which are particularly useful for products with a lot of data.</p>



<h2><em>About the talk: Designing with Code in Mind</em></h2>





<p>Oliveira introduced her talk by stating that there are a lot of teams where designers and developers collaborate only through images and this can be restricting. This can cause a lot of back and forth until the perfect result is achieved and considerable time can be spent just making requirements clear and perfecting a specific design feature. That is why having designers with coding knowledge or skills in a development team can be extremely useful.</p>



<p>Oliveira also discussed how a lot of companies currently have their own design system and that, while a design system can be very helpful, it isn&#8217;t 100% perfect. Therefore, it can be very useful to have a designer with the skillset to build a structure inside your product. She added that, while designing with code in mind works better if you have a design system, when it comes to more complex scenarios, sketching the idea first might be preferable. Another point Oliveira made is that your design does not need to be pixel perfect. The important part is the idea, which can then be tweaked with code.</p>



<h2><em><img decoding="async" loading="lazy" class="size-medium wp-image-13257 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2020/07/Asap_Cabezal_DesignCodeImg_20072020-300x215.jpg" alt="Designing with Code in Mind" width="300" height="215" srcset="https://www.asapdevelopers.com/wp-content/uploads/2020/07/Asap_Cabezal_DesignCodeImg_20072020-300x215.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2020/07/Asap_Cabezal_DesignCodeImg_20072020.jpg 600w" sizes="(max-width: 300px) 100vw, 300px" /></em></h2>
<h2><em>The benefits of designing with code in mind</em><img alt="" /></h2>





<p>So, what is so great about designing with code in mind? Well, according to Oliveira, there are two main advantages. The first one is that it is easier to design states with code. The second and most important one is that this combination of skills means new <a href="https://www.asapdevelopers.com/not-do-ux-design-react-native/">design features or components</a> can be created or introduced faster and more efficiently, saving time and effort. This is particularly true when it comes to teams working remotely where communication can be more complex. If you have a designer who codes on your team, they can mock up the component, discuss it with the developers in the team, and then one of the developers can work on improving and perfecting the code. In addition to aiding with communication, you can save a lot of time by avoiding lengthy and complex explanations and the back and forth that stems from having to consult on every detail.</p>



<p>Finally, Oliveira stressed that design teams should have a balance of different types of designers. There should be some who are good with CSS and have some coding knowledge, others that are more visual, and even include some developers inside the team. This mix of skills will make the team faster and able to work better together.</p>



<p>From the developer’s standpoint, moderator Mettin Parzinski from Passionate People added that having designers with at least some coding knowledge makes the work of developers much easier.</p>



<h2><em>Final thoughts</em></h2>



<p>Having designers with coding knowledge in your team streamlines communication and leads to better products. In fact, we believe that having a development team where everyone has at least a basic understanding of what each role entails is a great asset that leads to a more cohesive and productive working unit.</p>



<p>If you want to know more or see examples of how Oliveira implemented her design ideas, you can watch the full video on youtube. You can also watch the rest of the videos from the React Summit Remote Edition <a href="https://www.youtube.com/watch?v=diVrOpbG93Y&amp;list=PLNBNS7NRGKMGCBNebw8xkpkq_lhgPoIzR">here</a>.</p>

		<div id="fws_693974118a409"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/react-native-san-francisco/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>React Native Development Services</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>



<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/designing-with-code-mind-react-summit/">Designing with Code in Mind &#8211; React Summit Remote Edition</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>A new approach to leadership at the React Boston conference</title>
		<link>https://www.asapdevelopers.com/leadership-react-boston-conference/</link>
		
		<dc:creator><![CDATA[Pablo Giampedraglia]]></dc:creator>
		<pubDate>Mon, 16 Dec 2019 12:40:21 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=10578</guid>

					<description><![CDATA[<p>React Boston conference Over the last few months, we’ve been sharing some of our top picks for mobile app and development conferences in California and some insights from our favorite talks. Today,...</p>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/leadership-react-boston-conference/">A new approach to leadership at the React Boston conference</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2><strong>React </strong><strong>Boston </strong><strong>conference</strong><img alt="" /></h2>





<p>Over the last few months, we’ve been sharing some of our top picks for mobile app and development conferences in California and some insights from our favorite talks. Today, we’re moving to the other end of the country and sharing our highlights from Kate Wardin’s talk at <a href="https://www.reactboston.com/">React Boston</a> last September, where she tackled the topic of leadership in the tech industry. To start us off, let’s take a look at the React Boston conference.</p>



<h2><strong><img decoding="async" loading="lazy" class="aligncenter wp-image-10599 size-full" src="https://www.asapdevelopers.com/wp-content/uploads/2019/12/BostonReactConference002.jpg" alt="Leadership React Boston Conference" width="602" height="401" srcset="https://www.asapdevelopers.com/wp-content/uploads/2019/12/BostonReactConference002.jpg 602w, https://www.asapdevelopers.com/wp-content/uploads/2019/12/BostonReactConference002-300x200.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2019/12/BostonReactConference002-600x401.jpg 600w" sizes="(max-width: 602px) 100vw, 602px" /></strong></h2>
<h2><strong>What is React Boston?</strong></h2>





<p>React Boston was born out of <a href="https://www.meetup.com/ReactJS-Boston/">ReactJS Boston</a>, a local react user group that hosts meetups every month. Sponsored by <a href="https://tech.wayfair.com/">Wayfair Tech</a>, the event grew to the point ReactJS Boston and Wayfair decided to launch a yearly conference. So, in 2017, this two-day conference was created.</p>



<p>React Boston is hosted in Boston&#8217;s Back Bay neighborhood and is aimed at developers of all backgrounds, skill sets and experience levels. This year’s event was held on September 21-22, with ticket prices ranging from $375 to $499 (including breakfast and lunch meals, as well as access to the closing party on Sunday).</p>



<p>Past speakers have included Laura González from The Guardian, Robert Zhu from Facebook, and Houssein Djirdeh from Google, among many others. The talks cover a wide range of topics related to React, such as designing a component kit, various aspects of GraphQL and piloting a drone with React. There are also plenty of opportunities to socialize. You can take a look at this year’s talks <a href="https://www.youtube.com/playlist?list=PLhBlV3WSUrT3jCmqmYWcUEvmon_6K6WUy">here</a>.</p>



<h2><strong><img decoding="async" loading="lazy" class="size-medium wp-image-8890 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-300x300.png" alt="Hire React Native Developers San Francisco" width="300" height="300" srcset="https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-300x300.png 300w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-150x150.png 150w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-768x768.png 768w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-100x100.png 100w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-500x500.png 500w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers-350x350.png 350w, https://www.asapdevelopers.com/wp-content/uploads/2018/06/HireReactNativeDevelopers.png 800w" sizes="(max-width: 300px) 100vw, 300px" /></strong></h2>
<h2><strong>Kate Wardin: The speaker</strong><img alt="" /></h2>





<p>Kate Wardin is a Senior Engineering Manager at Target, where she supports a development team of front-end engineers who build supply chain <a href="https://www.asapdevelopers.com/react-native-san-francisco">React apps</a> for the company. Based in Minneapolis, MN, Target is the eighth-largest retailer in the United States with over 18,000 stores. In 2019, Kate founded <a href="https://www.developer-first.com/blog">Developer First</a>, an organization that provides new leaders with resources, tools and confidence to be great leaders in the tech field.</p>



<h2><strong><img decoding="async" loading="lazy" class="size-medium wp-image-10598 aligncenter" src="https://www.asapdevelopers.com/wp-content/uploads/2019/12/BostonReactConference001-226x300.jpg" alt="Target Logo" width="226" height="300" srcset="https://www.asapdevelopers.com/wp-content/uploads/2019/12/BostonReactConference001-226x300.jpg 226w, https://www.asapdevelopers.com/wp-content/uploads/2019/12/BostonReactConference001.jpg 602w" sizes="(max-width: 226px) 100vw, 226px" /></strong></h2>
<h2><strong>The problems behind the talk</strong></h2>



<p>Kate Wardin’s talk was called “Developer First – A New Leadership Mindset”. After introducing herself and what she does both at Target and Developer First, Kate Wardin mentioned the three reasons behind her talk:<img alt="" /></p>





<ol>
<li><strong>The impact bad bosses can have on an individual in the tech industry.</strong> As the saying goes: people don&#8217;t leave jobs, they leave managers. According to a <a href="https://getlighthouse.com/blog/people-leave-managers-not-companies/">2015 Gallup engagement study</a>, 50% of respondents left a company to “get away from their manager at some point in their careers”.</li>
<li><strong>Engineers tend to be picky about their work and rightly so.</strong> With only 70,000 new candidates for development roles graduating in the US by 2020 for the projected 700,000 new roles, developers have a wide variety of options. This means employers need to focus on how to attract and retain developers. Moreover, Kate explains how retention is actually at an all-time low at the moment, with 1 in 4 workers quitting to try something new, which is predicted to be 1 in 3 by 2020.</li>
<li><strong>New managers struggle with the change from individual contributor to leader of a team. </strong>As Kate explains, the sad truth is that only 40% of engineering managers receive formal training when they become a boss for the first time.</li>
</ol>





<p>After explaining these reasons, Kate Wardin went on to state that bosses get a bad rep. Maybe because of how they are portrayed in the media or because they come from roles that don’t provide any specific training and are not properly prepared to take on the new role. Flattening an organization doesn&#8217;t seem to work either as employees need a solid foundation of support from a leadership role. As organizations struggle to recruit and retain top technical talent given the low candidate pool and increasing demand, Kate dared us to think differently about technical leadership in order to build and retain strong, empowered, motivated, and loyal development teams.</p>



<h2><strong>The solutions</strong></h2>



<p>After covering the issues, Kate Wardin went on to provide these solutions to the three problems discussed at the beginning of the talk:</p>



<ol>
<li><strong>Develop awesome leaders</strong>.</li>
<li><strong>Foster irresistible culture</strong>.</li>
<li><strong>Equip leaders with tools, actionable frameworks and confidence to be effective leaders</strong>.</li>
</ol>



<figure class="wp-block-image"><img alt="" /><img decoding="async" loading="lazy" class="aligncenter wp-image-10600 size-full" src="https://www.asapdevelopers.com/wp-content/uploads/2019/12/BostonReactConference003.jpg" alt="Growth at React Boston conference" width="602" height="377" srcset="https://www.asapdevelopers.com/wp-content/uploads/2019/12/BostonReactConference003.jpg 602w, https://www.asapdevelopers.com/wp-content/uploads/2019/12/BostonReactConference003-300x188.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2019/12/BostonReactConference003-600x377.jpg 600w" sizes="(max-width: 602px) 100vw, 602px" /></figure>



<p>Kate Wardin has actually tested these solutions with great results. At Target, she has managed to improve engagement and retention in her team compared to the national average. In 2018, engagement was at a mere 15% at a national level and she managed to reach 84%. Regarding retention, the national average was 80% while her team rose up to 92.6%.</p>



<h2><strong>How can I do it?</strong></h2>



<p>Because of the issues within the industry, Kate Wardin decided to establish Developer First leadership based on the foundation that “I work for my team, not the other way around”. Here are seven ways to practice Developer First leadership according to Kate:<img alt="" /></p>





<ol>
<li><strong>Remove blockers </strong>that prevent developers from making progress towards their professional and personal goals: whether it’s changing how we phrase questions, bringing up potential issues, addressing low performers or letting go of your most valuable players, you need to help each individual on your team grow, even if that means finding a new role for them or seeing them go somewhere they can keep learning and growing.</li>
<li><strong>Empower your team</strong>: make sure your employees don’t feel like they’re always in the passenger’s seat, that leaders and business partners are available to them (and vice versa), and that you involve your team in decision-making and problem-solving when their insight in necessary or relevant. You should also focus on guiding instead of imposing by waiting for conversations to play out before sharing your ideas, as well as making sure team members know they can disagree with you. Moreover, if something cannot be run by the team, explain why and how their work ties into the bigger picture.</li>
<li><strong>Share credit and take the blame</strong>. On the credit side, Kate suggests associating names with accomplishments and knowing what type of recognition each member prefers (some may want it to be very public while others might prefer a quiet email or message). As to any problems or failures, she says one should focus on what happened, how you solved it and what other teams can learn from the mistakes. Moreover, Kate believes the only person accountable should be the leader of the team.</li>
<li><strong>Never devalue people in the process of delivering a solution</strong>: value is not just about productivity, it is measured by our impact on the development team and the company. Kate advises not to call employees resources and to understand that family and personal lives are more important than anything else–a leader shouldn’t incentivize behavior that means sacrificing that. You should also build an inclusive culture, but without compromising company values and work ethic.</li>
<li><strong>Be vulnerable and authentic</strong>: you should be relatable and provide a good example by sharing your past failures.</li>
<li><strong>Prioritize and focus</strong>: this is a point Kate really struggled on when she first came to her managing duties. She advises not to multitask on important things, stating that, according to <a href="https://www.smh.com.au/technology/multitasking-makes-you-stupid-studies-find-20150520-gh5ouq.html">some studies</a>, multitasking causes a 10% drop in IQ and leads to as much as a 40% drop in productivity. She recommended using the <a href="https://www.eisenhower.me/eisenhower-matrix/">Eisenhower matrix</a> and auditing yourself in order to help you prioritize and focus.</li>
<li><strong>Invest in your communication skills</strong>: Kate narrows it down to simply stop talking. Listening is far more important. She suggests having one-on-one meetings with your team at least every other week for 30 minutes, making sure you rarely miss them and that you are focused on the team member. If you happen to be distracted for any reason, let them know. And if you notice they are, you might consider suggesting rescheduling to them.</li>
</ol>





<h2><strong><img decoding="async" loading="lazy" class="aligncenter wp-image-10587 size-large" src="https://www.asapdevelopers.com/wp-content/uploads/2019/11/Asap_ReactBoston-1024x293.jpg" alt="React Boston Conference" width="1024" height="293" srcset="https://www.asapdevelopers.com/wp-content/uploads/2019/11/Asap_ReactBoston-1024x293.jpg 1024w, https://www.asapdevelopers.com/wp-content/uploads/2019/11/Asap_ReactBoston-300x86.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2019/11/Asap_ReactBoston-768x220.jpg 768w, https://www.asapdevelopers.com/wp-content/uploads/2019/11/Asap_ReactBoston.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></strong></h2>
<h2><strong>Final thoughts</strong></h2>



<p>As the tech industry faces a lot of challenges to keep up with demand, companies should focus on how best to recruit developers and keep them engaged. We believe Kate Wardin makes a lot of extremely valuable points and we hope you can apply her suggestions and create a workspace that attracts talented developers and fosters a healthy and productive team environment. You can check out the full video for the talk <a href="https://www.youtube.com/watch?v=Ut7jEkIf1ac&amp;feature=emb_title">here</a>, and make sure to check out the rest of the React Boston videos about React web development.</p>


		<div id="fws_693974118bb6b"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/react-native-san-francisco/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>React Developers</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div><p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/leadership-react-boston-conference/">A new approach to leadership at the React Boston conference</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Fixing the Next.js Service Worker issue &#8211; Next.js SEO</title>
		<link>https://www.asapdevelopers.com/service-worker-issue-nextjs-framework/</link>
		
		<dc:creator><![CDATA[Mirazoqui]]></dc:creator>
		<pubDate>Fri, 26 Apr 2019 11:46:39 +0000</pubDate>
				<category><![CDATA[React]]></category>
		<guid isPermaLink="false">https://www.asapdevelopers.com/?p=9841</guid>

					<description><![CDATA[<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/service-worker-issue-nextjs-framework/">Fixing the Next.js Service Worker issue &#8211; Next.js SEO</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div id="fws_693974118c94d"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				
<div class="wpb_text_column wpb_content_element " >
	<div class="wpb_wrapper">
		<h2><b>Fixing the Service Worker issue when you rewrite a React app using the Next.js framework</b></h2>
<p><span style="font-weight: 400;">Do you have a React app already deployed on a web server and realized that your app is not ranking at all in any web search engine? Are you thinking about rewriting your app to improve its SEO (search engine optimization)? If you are, you might be thinking about using the <a href="https://nextjs.org/">Next.js</a> framework, but before you dive into it, we’d like to walk you through the Next.js Service Worker issue, which can be a pain in the neck!</span></p>
<h2><b><img decoding="async" loading="lazy" class="aligncenter wp-image-9847 size-full" src="https://www.asapdevelopers.com/wp-content/uploads/2019/04/next_js.png" alt="Next.js Framework Logo" width="224" height="224" srcset="https://www.asapdevelopers.com/wp-content/uploads/2019/04/next_js.png 224w, https://www.asapdevelopers.com/wp-content/uploads/2019/04/next_js-150x150.png 150w, https://www.asapdevelopers.com/wp-content/uploads/2019/04/next_js-100x100.png 100w" sizes="(max-width: 224px) 100vw, 224px" /></b></h2>
<h2><b>Let’s start with the basics</b></h2>
<p><span style="font-weight: 400;">Let’s start with a brief introduction to React, <a href="https://nextjs.org/">Next.js</a> and Service Worker. React is a JavaScript library used to build user interfaces; in technical terms, it’s a front-end framework that runs on the client side. Next.js is a JavaScript framework that lets you render React apps but on the server side. Finally, a </span><b><i>Service Worker</i></b><span style="font-weight: 400;"> is a JavaScript file that runs on the browser in a background thread intercepting and handling network requests and caching or retrieving some resources from the cache. It is also independent of the application that it’s associated with. We could continue discussing general concepts, but let’s get right to the reason you’re here.</span></p>
<h2><b>The issue</b></h2>
<p><span style="font-weight: 400;">When <a href="https://www.asapdevelopers.com/los-angeles-react-native-developers/">we create a React app</a>, a Service Worker is invoked by default, so even if we unregister the Service Worker before deploying the React app using Next.js, we must make sure that every browser removed the Service Worker. Otherwise, we will have to fix an unexpected issue because Next.js does not use Service Workers </span><span style="font-weight: 400;">—</span><span style="font-weight: 400;"> remember that Next.js runs on the server side </span><span style="font-weight: 400;">—</span><span style="font-weight: 400;"> and it also stores static files in a different location so, if we don’t update it, the browser will continue using it in order to access to wrong static file paths </span><span style="font-weight: 400;">—</span><span style="font-weight: 400;"> e.g. images. The only way to avoid this issue is unregistering the Service Worker before deploying the React app. However, this makes no sense because if we create a React app, we will want to have a good performance and, in order to achieve that, we need a Service Worker.</span></p>
<h2><b><img decoding="async" loading="lazy" class="aligncenter wp-image-9846 size-large" src="https://www.asapdevelopers.com/wp-content/uploads/2019/04/asap_header-react-nextjs-1024x293.jpg" alt="Service Worker issue - Next.js Framework" width="1024" height="293" srcset="https://www.asapdevelopers.com/wp-content/uploads/2019/04/asap_header-react-nextjs-1024x293.jpg 1024w, https://www.asapdevelopers.com/wp-content/uploads/2019/04/asap_header-react-nextjs-300x86.jpg 300w, https://www.asapdevelopers.com/wp-content/uploads/2019/04/asap_header-react-nextjs-768x220.jpg 768w, https://www.asapdevelopers.com/wp-content/uploads/2019/04/asap_header-react-nextjs-610x175.jpg 610w, https://www.asapdevelopers.com/wp-content/uploads/2019/04/asap_header-react-nextjs.jpg 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></b></h2>
<h2><b>The solution</b></h2>
<p><span style="font-weight: 400;">To solve this, the idea is to unregister the Service Worker of our React app so the browser can remove it. To do that, we have to create a Service Worker on the root of the Next.js project and add an EventListener </span><span style="font-weight: 400;">—</span><span style="font-weight: 400;"> on any loaded page </span><span style="font-weight: 400;">—</span><span style="font-weight: 400;"> to remove this file from the browser. Once we do this, we can be sure that next time a browser makes a request, it will be updated. Another important thing to note is that browsers need to close all the Service Worker’s instances associated with our app to apply the changes.</span></p>
<p><script src="https://gist.github.com/gonzalolarrosa/2b1957c04659f60990c54a8371248ae9.js"></script></p>
<h2><b>A final note</b></h2>
<p><span style="font-weight: 400;">We hope this workaround was useful and saves time for other React developers. But before you decide to rewrite a React app using Next.js to make it SEO friendly, keep in mind that it may not be the best option, especially if you are using </span><b><i>Redux/Sagas </i></b><span style="font-weight: 400;">to manage the app stored. Next.js was optimized for </span><b><i>Apollo</i></b> <span style="font-weight: 400;">—</span><span style="font-weight: 400;"> one of the <a href="https://www.asapdevelopers.com/apollo-graphql-react-tutorial/">best </a></span><b><i>GraphQL</i></b><span style="font-weight: 400;"> clients </span><span style="font-weight: 400;">—</span><span style="font-weight: 400;"> to create HTTP requests and manage the app stored. It also has one more restriction: the environment variables can not be accessed in the client side with all that this implies.</span></p>
	</div>
</div>




			</div> 
		</div>
	</div> 
</div></div>
		<div id="fws_693974118cb3e"  data-column-margin="default" data-midnight="dark"  data-bg-mobile-hidden="" class="wpb_row vc_row-fluid vc_row standard_section "  style="padding-top: 0px; padding-bottom: 0px; "><div class="row-bg-wrap" data-bg-animation="none" data-bg-overlay="false"><div class="inner-wrap"><div class="row-bg"  style=""></div></div><div class="row-bg-overlay" ></div></div><div class="col span_12 dark left">
	<div  class="vc_col-sm-12 wpb_column column_container vc_column_container col no-extra-padding"  data-t-w-inherits="default" data-border-radius="none" data-shadow="none" data-border-animation="" data-border-animation-delay="" data-border-width="none" data-border-style="solid" data-border-color="" data-bg-cover="" data-padding-pos="all" data-has-bg-color="false" data-bg-color="" data-bg-opacity="1" data-hover-bg="" data-hover-bg-opacity="1" data-animation="" data-delay="0" >
		<div class="vc_column-inner" ><div class="column-bg-overlay-wrap" data-bg-animation="none"><div class="column-bg-overlay"></div></div>
			<div class="wpb_wrapper">
				<a class="nectar-button large regular accent-color has-icon  wpb_animate_when_almost_visible wpb_bounce bounce regular-button"  style="margin-top: 40px; color: #ffffff; "  href="https://www.asapdevelopers.com/los-angeles-app-developers/" data-color-override="false" data-hover-color-override="false" data-hover-text-color-override="#fff"><span>Learn More About Our Services</span><i style="color: #ffffff;"  class="icon-button-arrow"></i></a>
			</div> 
		</div>
	</div> 
</div></div>
<p>The post <a rel="nofollow" href="https://www.asapdevelopers.com/service-worker-issue-nextjs-framework/">Fixing the Next.js Service Worker issue &#8211; Next.js SEO</a> appeared first on <a rel="nofollow" href="https://www.asapdevelopers.com">asap developers</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
