<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: tomgrabski</title>
    <description>The latest articles on DEV Community by tomgrabski (@tomgrabski).</description>
    <link>https://dev.to/tomgrabski</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F465617%2F8bdad32a-b5e8-4894-978c-f9911a6925f9.png</url>
      <title>DEV Community: tomgrabski</title>
      <link>https://dev.to/tomgrabski</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tomgrabski"/>
    <language>en</language>
    <item>
      <title>Costs of Hiring React Native Agency vs Developer</title>
      <dc:creator>tomgrabski</dc:creator>
      <pubDate>Thu, 19 Aug 2021 11:23:34 +0000</pubDate>
      <link>https://dev.to/pagepro_agency/costs-of-hiring-react-native-agency-vs-developer-4adc</link>
      <guid>https://dev.to/pagepro_agency/costs-of-hiring-react-native-agency-vs-developer-4adc</guid>
      <description>&lt;h2&gt;Introduction&lt;/h2&gt;

&lt;p&gt;The entire process of &lt;a href="https://pagepro.co/mobile-app-development.html" rel="noreferrer noopener"&gt;mobile app development&lt;/a&gt; consist of many steps, and choosing the right technology for a specific case is one of the crucial decision.&lt;/p&gt;

&lt;p&gt;This is why there were probably quite a few reasons you choose &lt;a href="https://pagepro.co/react-native-development.html" rel="noreferrer noopener"&gt;cross-platform development&lt;/a&gt;, and added &lt;a href="https://pagepro.co/blog/what-is-react-native/"&gt;React Native&lt;/a&gt; to your tech stack.&lt;/p&gt;

&lt;p&gt;The last question is: Is it better to outsource the work to a specialized agency, &lt;a href="https://pagepro.co/team-augmentation.html" rel="noreferrer noopener"&gt;rent a single React Native developer as a team augmentation&lt;/a&gt;, or &lt;a href="https://pagepro.co/blog/how-to-hire-best-react-developers/" rel="noreferrer noopener"&gt;hire an in-house developer&lt;/a&gt; and start building an internal team?&lt;/p&gt;

&lt;h2&gt;Should I hire a React Native Developer, or an Agency?&lt;/h2&gt;

&lt;p&gt;To decide between hiring an in-house React Native developer and outsourcing the work to &lt;a href="https://pagepro.co/react-native-development.html" rel="noreferrer noopener"&gt;React Native agency&lt;/a&gt;, you should consider the costs of each option and their pros and cons.&lt;/p&gt;

&lt;p&gt;Often these pros and cons can be translated into costs that can’t be expressed in monetary terms but have even higher value – for example, the cost may be your time that’s better spent elsewhere. Or in some cases, choosing one option may cost you more in monetary terms, but you will save time that’s worth more.&lt;/p&gt;

&lt;p&gt;Now, without further ado, let’s move to the relevant part of the article.&lt;/p&gt;

&lt;h2&gt;Hiring React Native Agency&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://pagepro.co/react-native-development.html" rel="noreferrer noopener"&gt;Outsourcing the React Native development&lt;/a&gt; might be a great solution if:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It will be a one-time project&lt;/li&gt;
&lt;li&gt;You don’t plan future updates&lt;/li&gt;
&lt;li&gt;You don’t have React Native experience&lt;/li&gt;
&lt;li&gt;There is no plan to build an in-house team (yet)&lt;/li&gt;
&lt;li&gt;You’re just building a PoC that might be canceled&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Pros and Cons of hiring an Agency&lt;/h3&gt;

&lt;p&gt;Even if one of the situations above doesn’t apply to you, the list of pros and cons of hiring React Native agency is still worth reading.&lt;/p&gt;

&lt;h4&gt;Pros of hiring React Native agency&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Bureaucracy limited to the minimum&lt;/li&gt;
&lt;li&gt;Clarity regarding the final cost&lt;/li&gt;
&lt;li&gt;Budget planning is more efficient (i.e., no unexpected leaves or vacancies)&lt;/li&gt;
&lt;li&gt;More options to find highly-skilled people&lt;/li&gt;
&lt;li&gt;No need to spend time micromanaging&lt;/li&gt;
&lt;li&gt;No long-term commitment (when the project is finished, so is the cooperation)&lt;/li&gt;
&lt;li&gt;Ability to get technical consultations&lt;/li&gt;
&lt;li&gt;You are able to take advantage of past agency experience in similar projects&lt;/li&gt;
&lt;li&gt;Ability to scale up and down the external team quickly&lt;/li&gt;
&lt;li&gt;Access to a whole team of architects and seniors, not just one person.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Cons of hiring React Native agency&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Possible language barrier (i.e. if you are a native English speaker and the other side isn’t)&lt;/li&gt;
&lt;li&gt;Slower communication and feedback (these difficulties may time zones)&lt;/li&gt;
&lt;li&gt;Possible security and confidentiality risks&lt;/li&gt;
&lt;li&gt;Agency’s marketing skills can turn out to be better than development skills&lt;/li&gt;
&lt;li&gt;Messy code can make you dependent on further agency work&lt;/li&gt;
&lt;li&gt;Not building inhouse competencies&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Costs of hiring React Native agency per city&lt;/h3&gt;

&lt;p&gt;Let’s look at the rates and total costs of choosing React Native agency from different cities in Europe and the United States.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;City&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Average hourly rate&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Total annual cost&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;London&lt;/td&gt;
&lt;td&gt;£90 – £250 &lt;/td&gt;
&lt;td&gt;£172 800 – £480 000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Berlin&lt;/td&gt;
&lt;td&gt;€94 – €245&lt;/td&gt;
&lt;td&gt;€180 480 – €470 400&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amsterdam&lt;/td&gt;
&lt;td&gt;€94 – €245&lt;/td&gt;
&lt;td&gt;€180 480 – €470 400&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Helsinki&lt;/td&gt;
&lt;td&gt;€82 – €175&lt;/td&gt;
&lt;td&gt;€157 440 – €336 000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oslo&lt;/td&gt;
&lt;td&gt;€82 – €175&lt;/td&gt;
&lt;td&gt;€157 440 – €336 000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;New York&lt;/td&gt;
&lt;td&gt;$139 – $279&lt;/td&gt;
&lt;td&gt;$266 880 – $535 680&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;San Francisco&lt;/td&gt;
&lt;td&gt;$209 – $489&lt;/td&gt;
&lt;td&gt;$401 280 – $938 880&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Eastern Europe (Pagepro)&lt;/td&gt;
&lt;td&gt;£40 – £75&lt;/td&gt;
&lt;td&gt;£76 800 – £144 000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;Hiring In-house React Native Developer&lt;/h2&gt;

&lt;p&gt;Hiring an in-house React Native developer might be a great solution for you if:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It will be an ongoing project or many projects&lt;/li&gt;
&lt;li&gt;You already have or want to start building an in-house team&lt;/li&gt;
&lt;li&gt;You are planning to update the application in the future&lt;/li&gt;
&lt;li&gt;There is someone (or you) that have some React Native experience&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Pros and Cons of hiring in-house developers&lt;/h3&gt;

&lt;p&gt;If you are not convinced to outsourcing all the work, the pros and cons of hiring a React Native developer might be a deciding factor to start building an internal team.&lt;/p&gt;

&lt;h4&gt;Pros of hiring an in-house React Native developer (or entire team)&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Easier communication (sometimes even face-to-face on a daily basis)&lt;/li&gt;
&lt;li&gt;Higher team engagement and dedication&lt;/li&gt;
&lt;li&gt;Fast feedback and the possibility to make quick changes&lt;/li&gt;
&lt;li&gt;Better management, control, and coordination&lt;/li&gt;
&lt;li&gt;No language barriers&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Cons of hiring an in-house developer (or entire team)&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;High and complex costs (more on those below)&lt;/li&gt;
&lt;li&gt;Time-consuming management&lt;/li&gt;
&lt;li&gt;Long and costly recruitment process&lt;/li&gt;
&lt;li&gt;Unpredictable vacancy needs (dismisses, sickness, parental, etc.)&lt;/li&gt;
&lt;li&gt;Risk of professional burnout&lt;/li&gt;
&lt;li&gt;Motivation that comes and goes&lt;/li&gt;
&lt;li&gt;Necessity of fighting for good employees with other companies&lt;/li&gt;
&lt;li&gt;Limited growth opportunities for in-house developers&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Costs of hiring a React Native developer&lt;/h3&gt;

&lt;p&gt;The cost of hiring a React Native developer is much more complex than outsourcing work to the agency. You must think about the actual cost of hiring a React Native developer. &lt;a href="http://web.mit.edu/e-club/hadzima/how-much-does-an-employee-cost.html" rel="noreferrer noopener nofollow"&gt;As the research of Joe Hadzima&lt;/a&gt; showed, the actual cost of hiring an employee equals his or her salary multiplied by 1.25-1.4.&lt;/p&gt;

&lt;p&gt;The actual cost consists of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Basic salary&lt;/li&gt;
&lt;li&gt;Recruitment expenses&lt;/li&gt;
&lt;li&gt;Employee benefits&lt;/li&gt;
&lt;li&gt;Space and equipment&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Recruitment expenses&lt;/h4&gt;

&lt;p&gt;The entire recruitment process is demanding, and it can take a lot of time and effort. What about the costs? Sometimes, they are hard to measure, but let’s try to list all of the things you have to consider when hiring a single developer.&lt;/p&gt;

&lt;p&gt;The list consists of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Costs of a headhunter, HR agency or HR department – depending on your recruitment approach&lt;/li&gt;
&lt;li&gt;Costs of job advertisement&lt;/li&gt;
&lt;li&gt;Time spend on interviews and managing the recruitment process&lt;/li&gt;
&lt;li&gt;Cost of relocation if the developer needs to move from another city&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Employee benefits&lt;/h4&gt;

&lt;p&gt;Let’s be clear – some of these benefits are regulated by law, and some are demanded by developers. And these days, the latter ones are hard to omit because of the huge fight for good employees.&lt;/p&gt;

&lt;p&gt;These benefits include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Social security&lt;/li&gt;
&lt;li&gt;Healthcare&lt;/li&gt;
&lt;li&gt;Retirement contribution&lt;/li&gt;
&lt;li&gt;Holiday&lt;/li&gt;
&lt;li&gt;Days off (parental, personal, sick days)&lt;/li&gt;
&lt;li&gt;Memberships (gym, cinema tickets, etc.)&lt;/li&gt;
&lt;li&gt;Free food&lt;/li&gt;
&lt;li&gt;Training budget&lt;/li&gt;
&lt;li&gt;Playrooms (chill rooms, quiet rooms, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Space and equipment&lt;/h4&gt;

&lt;p&gt;Developers need to have well-equipped workstations, and this equipment includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Comfortable chairs&lt;/li&gt;
&lt;li&gt;Regulated desks&lt;/li&gt;
&lt;li&gt;One or two monitors&lt;/li&gt;
&lt;li&gt;Laptop&lt;/li&gt;
&lt;li&gt;Additional keyboard&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, knowing what else we need to include (apart from basic salary) to get the actual cost of hiring a single React Native developer, let’s make some calculations.&lt;/p&gt;

&lt;h3&gt;In-house developer cost comparison per city&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;City&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Hourly rate&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Salary&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Total cost (x1.4)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;London&lt;/td&gt;
&lt;td&gt;£45 – £125 &lt;/td&gt;
&lt;td&gt;£86 400 – £240 000&lt;/td&gt;
&lt;td&gt;£120 960 – £336 000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Berlin&lt;/td&gt;
&lt;td&gt;€47 – €123&lt;/td&gt;
&lt;td&gt;€90 240 – €236 160&lt;/td&gt;
&lt;td&gt;€126 336 – €330 624&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amsterdam&lt;/td&gt;
&lt;td&gt;€47 – €123&lt;/td&gt;
&lt;td&gt;€90 240 – €236 160&lt;/td&gt;
&lt;td&gt;€126 336 – €330 624&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Helsinki&lt;/td&gt;
&lt;td&gt;€41 – €88&lt;/td&gt;
&lt;td&gt;€78 720 – €168 960&lt;/td&gt;
&lt;td&gt;€110 208 – €236 544&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oslo&lt;/td&gt;
&lt;td&gt;€41 – €88&lt;/td&gt;
&lt;td&gt;€78 720 – €168 960&lt;/td&gt;
&lt;td&gt;€110 208 – €236 544&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;New York&lt;/td&gt;
&lt;td&gt;$70 – $139&lt;/td&gt;
&lt;td&gt;$134 400 – $266 880&lt;/td&gt;
&lt;td&gt;$188 160 – $373 632&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;San Francisco&lt;/td&gt;
&lt;td&gt;$104 – $244&lt;/td&gt;
&lt;td&gt;$199 680 – $468 480&lt;/td&gt;
&lt;td&gt;$279 552 – $655 872&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;Head-to-head comparison between hiring a React Native developer and an Agency&lt;/h2&gt;

&lt;h3&gt;General comparison&lt;/h3&gt;

&lt;p&gt;Before diving into numbers, check which option – React Native agency or React Native developer – is better in which scenario.&lt;/p&gt;

&lt;h4&gt;Pros and cons (comparison)&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--G7knlEzN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/03/pros-and-cons-comparison-table.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--G7knlEzN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/03/pros-and-cons-comparison-table.png" alt="Hiring React Native agency vs Developer: Comparison of pros and cons"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Cost comparison&lt;/h3&gt;

&lt;p&gt;Is it more cost-effective to hire React Native agency or an in-house React Native developer? Take a look at bald figures.&lt;/p&gt;

&lt;h4&gt;Costs of hiring React Native agency vs in-house hiring per city&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;City&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;React Native Agency&lt;/strong&gt;&lt;strong&gt;&lt;br&gt;&lt;/strong&gt;&lt;strong&gt;(starting from)&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;React Native Developer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Difference&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;London&lt;/td&gt;
&lt;td&gt;$240 635&lt;/td&gt;
&lt;td&gt;$168 445&lt;/td&gt;
&lt;td&gt;$72 190&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Berlin&lt;/td&gt;
&lt;td&gt;$213 900&lt;/td&gt;
&lt;td&gt;$149 730&lt;/td&gt;
&lt;td&gt;$64 170&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Amsterdam&lt;/td&gt;
&lt;td&gt;$213 900&lt;/td&gt;
&lt;td&gt;$149 730&lt;/td&gt;
&lt;td&gt;$64 170&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Helsinki&lt;/td&gt;
&lt;td&gt;$187 160&lt;/td&gt;
&lt;td&gt;$131 010&lt;/td&gt;
&lt;td&gt;$56 150&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oslo&lt;/td&gt;
&lt;td&gt;$187 160&lt;/td&gt;
&lt;td&gt;$131 010&lt;/td&gt;
&lt;td&gt;$56 150&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;New York&lt;/td&gt;
&lt;td&gt;$267 370&lt;/td&gt;
&lt;td&gt;$187 160&lt;/td&gt;
&lt;td&gt;$80 210&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;San Francisco&lt;/td&gt;
&lt;td&gt;$401 060&lt;/td&gt;
&lt;td&gt;$280 740&lt;/td&gt;
&lt;td&gt;$120 320&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Eastern Europe (Pagepro)&lt;/td&gt;
&lt;td&gt;$106 949&lt;/td&gt;
&lt;td&gt;£171 118&lt;br&gt;Avg. from all cities&lt;/td&gt;
&lt;td&gt;$64 169&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;

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

&lt;p&gt;If you don’t have too much React Native experience and don’t have a team, it’s always worth asking an experienced CTO for advice or book a free agency consultation (you can book one by clicking &lt;a href="https://pagepro.co/react-native-development.html" rel="noreferrer noopener"&gt;here&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;If you want to build an IT team soon or in the future, remember that agencies often help build internal competencies during project implementation. That’s exactly how we helped Gorilla Agency – you can read the case study &lt;a href="https://pagepro.co/gorilla-agency.html" rel="noreferrer noopener"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;On the other hand, if you have React Native experience and you need full-time support and engagement in product development, it’s definitely better to scale up an in-house team by hiring developers.&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>webdev</category>
      <category>mobile</category>
    </item>
    <item>
      <title>How to Choose React Native Development Agency?</title>
      <dc:creator>tomgrabski</dc:creator>
      <pubDate>Tue, 10 Aug 2021 19:57:51 +0000</pubDate>
      <link>https://dev.to/pagepro_agency/how-to-choose-react-native-development-agency-11i9</link>
      <guid>https://dev.to/pagepro_agency/how-to-choose-react-native-development-agency-11i9</guid>
      <description>&lt;h2&gt;Introduction&lt;/h2&gt;

&lt;p&gt;Nowadays, having a &lt;a href="https://pagepro.co/mobile-app-development.html" rel="noreferrer noopener"&gt;mobile application&lt;/a&gt; seems like a must in many industries. It allows for much closer contact with clients, engaging them on many levels and responding to their needs almost as soon as they occur.&lt;/p&gt;

&lt;p&gt;However, many &lt;strong&gt;companies that plan to build an application do not sufficiently know and understand what building an app actually entails&lt;/strong&gt;. But more importantly, they don’t realize how far technology went in recent years. &lt;/p&gt;

&lt;p&gt;Since &lt;a href="https://pagepro.co/react-native-development.html" rel="noreferrer noopener"&gt;cross-platform development&lt;/a&gt; came into existence, &lt;strong&gt;it made building mobile applications easier, faster, and more accessible&lt;/strong&gt; in almost every domain.&lt;/p&gt;

&lt;p&gt;Because almost everyone uses at least a few applications to handle daily business, acquire information, do shopping, communication, etc., technology must continuously look for (and find) increasingly easy ways of building these applications to answer the ever-changing trends.&lt;/p&gt;

&lt;p&gt;One of these technologies is &lt;a href="https://reactnative.dev/" rel="noreferrer noopener nofollow"&gt;React Native&lt;/a&gt;, with the growing popularity and many possibilities.&lt;/p&gt;

&lt;h3&gt;&lt;strong&gt;React Native means:&lt;/strong&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Faster mobile development&lt;/li&gt;
&lt;li&gt;Building applications on Android and iOS with one codebase&lt;/li&gt;
&lt;li&gt;Vast possibilities of implementing ready-to-use solutions&lt;/li&gt;
&lt;li&gt;Quality for much less money&lt;/li&gt;
&lt;li&gt;On-demand support from massive community&lt;/li&gt;
&lt;li&gt;And much more&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;T&lt;strong&gt;he questions remain:&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;How to start?&lt;/li&gt;
&lt;li&gt;What do I need?&lt;/li&gt;
&lt;li&gt;Where to start planning the development process?&lt;/li&gt;
&lt;li&gt;How long will it take?&lt;/li&gt;
&lt;li&gt;How much will it cost?&lt;/li&gt;
&lt;li&gt;And more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So now, let’s say you do like React Native, and you decided to &lt;a href="https://pagepro.co/react-native-development.html" rel="noreferrer noopener"&gt;hire React Native agency&lt;/a&gt; for your next mobile project. You are looking for &lt;strong&gt;an experienced agency that will help you with the development process&lt;/strong&gt; from top to bottom, 360, and &lt;strong&gt;help you understand what's important at each stage and step you will make&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;What we recommend you to do is to have face-to-face interviews with them.&lt;/p&gt;

&lt;p&gt;Let's go over a few points that will help you to better prepare for such an interview.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bmnxygvi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/03/react-native-agency-interview-1024x683.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bmnxygvi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/03/react-native-agency-interview-1024x683.jpg" alt="Choosing React Native agency: Interview"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;How to run an interview with React Native agency?&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;An interview is an essential part while hiring the agency&lt;/strong&gt;. It will help you fill in the blanks and decide whether they are trustworthy and knowledgeable or not. However, you will get much more out of such an interview if you will get yourself prepared. Otherwise, such a meeting could become a huge waste of time for both sides.&lt;/p&gt;

&lt;p&gt;You can follow our five-step list to prepare for such an interview.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HDSqUfkj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/03/How-to-hire-React-Native-Agency-1024x558.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HDSqUfkj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/03/How-to-hire-React-Native-Agency-1024x558.png" alt="Five steps to prepare for an interview with React Native agency"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Step 1: Specify needs and budget.&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;What features and functionalities do you want your application to have?&lt;/strong&gt; It might be a great idea to note down all of them in order of importance. This way, you will make sure that you won’t miss anything crucial in turning your idea into a working product.&lt;/p&gt;

&lt;p&gt;It will also &lt;strong&gt;help you with staying on budget while building at least the MVP of your application&lt;/strong&gt;. And specifying a budget is the next thing for you to do after identifying the needs. Be aware that you might have to spend more money than you predicted or wanted to if the project is complex or due to users’ feedback or ideas that emerged during the ideation phase.&lt;/p&gt;

&lt;p&gt;However, &lt;strong&gt;a good agency will give you at least a ballpark estimate (or, in some cases, even a fixed price)&lt;/strong&gt; during an interview. If the project is complex, be prepared for other options like time-and-material. It will give you many flexible possibilities.&lt;/p&gt;

&lt;p&gt;Be aware that your budget may not cover implementing all the features and functionalities you wanted in the first place. To deal with this situation, you can either create a prototype (&lt;a href="https://pagepro.co/blog/how-to-build-an-mvp-a-step-by-step-quick-guide/"&gt;or MVP&lt;/a&gt;) or rethink the to-do list and remove some points for now. &lt;/p&gt;

&lt;h3&gt;Step 2: Check the React Native agency’s website.&lt;/h3&gt;

&lt;p&gt;Treat the agency’s website like their bigger business card with all crucial information instead of just contact details. While browsing through such a website, focus on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Agency’s specialisation&lt;/strong&gt; – the best-case scenario is that it’s React Native agency. It might indicate they know what they are doing. However, don’t let it be a deciding factor – even if it’s not written with big letters on a home page, it doesn’t mean the agency doesn’t know how to work with React Native.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Size of dev team&lt;/strong&gt; – you don’t want to be dependent on one or two developers – even if your project is relatively small.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Localisation&lt;/strong&gt; – find out where the agency is based and if it matches your time zone. If not, make sure that it won’t be a problem for you.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Step 3: Check the agency’s portfolio.&lt;/h3&gt;

&lt;p&gt;Look for projects involving React Native and check if there are similar projects to yours. What’s also important is if the agency did projects in the same niche because it will help them understand you better.&lt;/p&gt;

&lt;h3&gt;Step 4: Read reviews and testimonials.&lt;/h3&gt;

&lt;p&gt;Don’t believe everything the agency will say just because they say it. Verify their words by reading reviews and testimonials on a website or, even better, on portals like Clutch. &lt;strong&gt;You can go even further and contact clients directly to ask for an honest opinion.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Reviews and testimonials posted on independent portals like Clutch are even more trustworthy than those on the agency’s website. It’s because the agency isn’t collecting them.&lt;/p&gt;

&lt;h3&gt;Step 5: Prepare a list of questions.&lt;/h3&gt;

&lt;p&gt;If you are satisfied with what you have learned about agency or agencies, now it’s time to prepare a list of general and technical questions. Such a list will help you decide whether you are talking with a competent agency or an agency that just pretends to be competent.&lt;/p&gt;

&lt;h3&gt;Extra: Step 6: Observe how fast do they reply&lt;/h3&gt;

&lt;p&gt;How fast a salesperson will contact you after you leave your message? Is a salesperson clear about the next step you need to take? How often is she following you up and how she is leading the conversation further? &lt;/p&gt;

&lt;p&gt;It's another sign of having a process worked out. In other words, experience and professionalism.&lt;/p&gt;

&lt;h2&gt;Questions to ask a React Native Agency&lt;/h2&gt;

&lt;p&gt;To make sure your agency is the right fit, we definitely recommend asking them both general questions, as well as the ones closer to their technical process and approach. &lt;/p&gt;

&lt;p&gt;Here's a helpful list of questions, and a small explanation of what you should expect. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kbjgKSIQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/05/questionsforreactnativeagency-1-1024x799.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kbjgKSIQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/05/questionsforreactnativeagency-1-1024x799.png" alt="A table with some of the questions to ask a react native agency"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Partnership, collaboration, and quality assurance&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How to make sure you will get what you want? &lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Good partnerships are not afraid of difficult questions.&lt;/p&gt;

&lt;p&gt;These questions will help you understand what can you expect from the agency while working together and how they approach quality and delivery assurance. &lt;/p&gt;

&lt;h4&gt;Communication:&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;How will the communication between us look like? What’s your preferred way of communication?&lt;/li&gt;
&lt;li&gt;How would you structure the cooperation (considering we are working on multiple projects)?&lt;/li&gt;
&lt;li&gt;How do you approach the option of occasionally visiting us in our office for consultation sessions? (Assuming the Covid situation allows for this).&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Understanding your business:&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;How will you ensure you understand our business requirements?&lt;/li&gt;
&lt;li&gt;What do you do to make sure you meet the business requirements when developing features?&lt;/li&gt;
&lt;li&gt;If we would switch places, what measures would you put in place to make sure that services are delivered in the best quality possible and that the outcome meets the requirements?&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;Team assembling:&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;How do you shape teams? How are skills distributed across the team?&lt;/li&gt;
&lt;li&gt;What about choosing people for the project considering roles and responsibilities?&lt;/li&gt;
&lt;li&gt;How long can we expect to work with specific team members? How do you approach turnover?&lt;/li&gt;
&lt;li&gt;What do you do when we are not satisfied with the work of one of your team members?&lt;/li&gt;
&lt;li&gt;How do you make sure that work performed by each team member is of the same high quality?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Technical questions&lt;/h3&gt;

&lt;p&gt;Without any React Native development experience, asking technical questions may be challenging. However, in this case, &lt;strong&gt;if you want the Agency to be a trustworthy partner, you may want to learn how do they explain technical stuff to others.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To help you with that part, we prepared some questions that could uncover possible threats.&lt;/p&gt;

&lt;h4&gt;1. &lt;strong&gt;Does your agency have a standard code development process? How would you integrate that with our processes?&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;For example, at Pagepro, &lt;strong&gt;we do have our own code standards, but we are very agile and adaptive if it's required.&lt;/strong&gt;&lt;br&gt;We work with many companies, and we are used to adapting to the client's standards.&lt;/p&gt;

&lt;h4&gt;2. &lt;strong&gt;What automation testing strategies have you utilized and would recommend?&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;At Pagepro, we usually do have a separate team that writes the automation tests (E2E).&lt;br&gt;If the project is logic heavy, we can provide the unit tests with a continuous integration solution to make sure we don't have any regression.&lt;/p&gt;

&lt;h4&gt;3. How do you approach assuring a product and the code quality? What do you do to ensure the code written by you is future-proof?&lt;/h4&gt;

&lt;p&gt;At Pagepro, for example, we make sure everything is named correctly and readable (variables, functions etc) so the code is self-descriptive. &lt;/p&gt;

&lt;p&gt;We use TypeScript which is somehow making sure we won't accidentally break the app when we change 1 thing in the code (compilation errors). If the code is not declaring its intention, we add extra comments about it so if we come back to that code in a few months we will understand that.&lt;br&gt;We do code reviews with some requirements, so you can't merge the code that is not approved by others.&lt;/p&gt;

&lt;p&gt;We are also making a pull requests, but before merging it into a master branch, another developer has to review it.&lt;/p&gt;

&lt;p&gt;On top of that, we use Expo SDK so the packages we are using to develop our project are well tested and stable. This is how we minimize the possibility of using an invalid package and the problem with developing/update application in future.&lt;/p&gt;

&lt;p&gt;And finally, we use linters, so each and every developer working on the project, writes the code in the same way&lt;/p&gt;

&lt;h4&gt;4. &lt;strong&gt;How do you ensure documentation is adequately updated and revised during technology changes and iterations?&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;We update the documents each time we change something important that includes extra work or required making the project work correctly, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;adding environment variables&lt;/li&gt;
&lt;li&gt;creating extra account to make something work&lt;/li&gt;
&lt;li&gt;situations that need to do extra setup manually&lt;/li&gt;
&lt;li&gt;situations when we've changed our standards&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Other general and light questions&lt;/h3&gt;

&lt;p&gt;The list of general questions will &lt;strong&gt;help you define the general abilities and accessibility&lt;/strong&gt; of React Native agency during qualification meetings or a call.&lt;/p&gt;

&lt;h4&gt;1. &lt;strong&gt;How long did you work on your longest project?&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;It doesn’t matter if your project is small or complex – &lt;strong&gt;you should look for an agency that can build lasting business relationships&lt;/strong&gt;. It’s a sign that such a company can manage projects (even demanding ones) well and will manage your project, too.&lt;/p&gt;

&lt;p&gt;The reason behind this is that &lt;strong&gt;the agency, during various projects, established a set of best practices that work&lt;/strong&gt;. Also, they experienced many problems, so they won’t be surprised if anything comes out during the project. Experience also taught them to make no promise they can’t keep just to make a deal.&lt;/p&gt;

&lt;h4&gt;2. &lt;strong&gt;Can I ask you for a code review?&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Code reviews are usually things done by senior developers, so such a question is a great way to check if the agency has senior developers on board. If they can’t do it, there is a chance that they don’t have seniors and junior developers who will work on your project.&lt;/p&gt;

&lt;p&gt;It’s also a better way to check their technical skills than doing a long technical interview.&lt;/p&gt;

&lt;h4&gt;3. &lt;strong&gt;Do you engage in any open-source and community activities?&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Developers passionate about technologies of their choice will try to contribute to the community as much as they can. It’s not only about helping others, but it’s also the highest form of learning.&lt;/p&gt;

&lt;p&gt;You can ask about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open-source projects they are engaged in&lt;/li&gt;
&lt;li&gt;Conferences and events they are attending &lt;/li&gt;
&lt;li&gt;Sharing knowledge via blogging, social media or in any other form&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;4. Do you use Continuous Integration?&lt;/h4&gt;

&lt;p&gt;Experienced teams use Continuous Integration (CI) to check whether the application works well after new commits are integrated into the main branch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automated testing is one of the best practices in quality assurance&lt;/strong&gt;, and a great React Native agency should be familiar with that concept.&lt;/p&gt;

&lt;h4&gt;5. &lt;strong&gt;Can you send me profiles of developers?&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;To check the skills and experience of developers, ask an agency for their profiles or CVs. It’s a great way to learn more about developers and their technical qualifications, portfolio, and other helpful information.&lt;/p&gt;

&lt;h4&gt;6. &lt;strong&gt;Can I call some of your previous clients?&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Reading reviews and testimonials may not be enough to understand how the agency works and if it’s a great fit for your project. Contacting previous clients directly, on the other hand, will help you get some crucial information. &lt;/p&gt;

&lt;p&gt;For example, you could ask the following questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why did you choose this agency?&lt;/li&gt;
&lt;li&gt;What can you tell about code quality and documentation?&lt;/li&gt;
&lt;li&gt;Are you satisfied with project management and execution?&lt;/li&gt;
&lt;li&gt;What’s their English level?&lt;/li&gt;
&lt;li&gt;What were the weaker points of this cooperation?&lt;/li&gt;
&lt;li&gt;How do they deal with working under pressure?&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;7. What did you use before React Native?&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;An even more important question should follow this question – why did you make a switch?&lt;/strong&gt; In both cases, look for reasonable answers, not trend-based ones. You should choose an agency that sees the real value in React Native development.&lt;/p&gt;

&lt;h2&gt;Additional tips&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Talk with at least a few agencies&lt;/strong&gt; – don’t choose the first one you talk with, even if everything seems great. Such an approach has a few benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A more in-depth insight into the average rates&lt;/li&gt;
&lt;li&gt;Information about what can you expect of cooperation with an agency&lt;/li&gt;
&lt;li&gt;Overview of standards and best practices of good agencies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Check average rates&lt;/strong&gt; – it helps you with two things. Firstly, you will know if your budget allows for it and what can you expect for the money you can spend. Secondly, you won’t overpay for a project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Verify provided information&lt;/strong&gt; – bear in mind that it has never been easier for agencies to look more skilled and experienced than they are. For example, you can check LinkedIn profiles of developers working for the agency or talk directly with previous clients to double-check some obtained information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Double-check technical skills&lt;/strong&gt; – don’t be afraid to ask for a trial project or some code samples. The other option is a technical interview or conversation with at least one developer on their side.&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>mobile</category>
      <category>outsourcing</category>
    </item>
    <item>
      <title>Core Web Vitals: How to Measure and Improve Them?</title>
      <dc:creator>tomgrabski</dc:creator>
      <pubDate>Thu, 29 Jul 2021 07:11:08 +0000</pubDate>
      <link>https://dev.to/pagepro_agency/core-web-vitals-how-to-measure-and-improve-them-56g6</link>
      <guid>https://dev.to/pagepro_agency/core-web-vitals-how-to-measure-and-improve-them-56g6</guid>
      <description>&lt;h2&gt;What are Web Vitals?&lt;/h2&gt;

&lt;p&gt;Web Vitals are the new standard introduced by Google – a collection of metrics against which websites are now rated. This standard puts more emphasis on user experience and website performance. Web vitals is a much stricter rating system than the previous one.&lt;/p&gt;

&lt;p&gt;We can check the website rating on &lt;a href="https://developers.google.com/speed/pagespeed/insights/" rel="noreferrer noopener nofollow"&gt;PageSpeed Insights&lt;/a&gt;, and many people may think that the result we get is the actual result of the page speed. The reality is a bit different. The website doesn't have to be the fastest to have the best score. It must be fast and friendly enough so users can move around pleasantly and comfortably.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7lVDINwh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh3.googleusercontent.com/JgUFMxVOWC36fNrmjQBME4ctyEP6ENXp_EePScGRpoJJ1a34QX2m1YnGuDtwS5uaVI3PHsdHQw6A1E70KZAb8zapqeB5Vr6avQpQFafCTNAA5exfupOrXglq0tZwFvpEfNu-Dn5C" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7lVDINwh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh3.googleusercontent.com/JgUFMxVOWC36fNrmjQBME4ctyEP6ENXp_EePScGRpoJJ1a34QX2m1YnGuDtwS5uaVI3PHsdHQw6A1E70KZAb8zapqeB5Vr6avQpQFafCTNAA5exfupOrXglq0tZwFvpEfNu-Dn5C" alt="Web Vitals: LCP, FID and CLS"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For now, the Web Vitals metric focuses mainly on three aspects of user experience:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Loading &lt;/li&gt;
&lt;li&gt;Interactivity  &lt;/li&gt;
&lt;li&gt;Visual stability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Web Vitals Metrics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Largest Contentful Paint&lt;/li&gt;
&lt;li&gt;First Input Delay&lt;/li&gt;
&lt;li&gt;Cumulative Layout Shift&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
&lt;br&gt;&lt;br&gt;Largest Contentful Paint&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Largest Contentful Paint (LCP)&lt;/strong&gt; measures how long it takes to load the largest element visible on the page. The element can be, for example, text, image, video. The LCP is valid if it lasts less than 2.5s. If it lasts from 2.5s to 4s, it needs improvement. The result above 4s is a bad result which significantly lowers the page rating.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZbI7Px-f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh3.googleusercontent.com/YU7z7O80jTE1OMnenUeNl4hvAqvVG_7XPwM4qJM2BCGirPryRrf8BPzGYPKJyXdH5EX456V6-CwS9DI9scK3s5ac6gX40xMptRs8tFPBqSy1JtkadCxqrUR0k5rgl3hZO32TWdPs" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZbI7Px-f--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh3.googleusercontent.com/YU7z7O80jTE1OMnenUeNl4hvAqvVG_7XPwM4qJM2BCGirPryRrf8BPzGYPKJyXdH5EX456V6-CwS9DI9scK3s5ac6gX40xMptRs8tFPBqSy1JtkadCxqrUR0k5rgl3hZO32TWdPs" alt="Web Vitals: LCP (Largest Contentful Point)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;How to improve the LCP score?&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Server optimisation&lt;/li&gt;
&lt;li&gt;Caching&lt;/li&gt;
&lt;li&gt;Establish third-party connections early:&lt;ul&gt;&lt;li&gt;third-party server requests can also negatively impact the LCP (mainly when they are needed to display critical content on the page). Using rel="preconnect" to tell the browser that the site will connect as soon as possible may help in this situation.&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;CSS optimisation&lt;ul&gt;&lt;li&gt;for example - try not to nest selectors&lt;ul&gt;&lt;li&gt;.h1 {} is better than .container &amp;gt; .h1 {}&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Putting critical CSS code into HTML&lt;ul&gt;&lt;li&gt;the critical CSS code is the code that is needed to display the first page view properly. It's best to add this code inline in the &amp;lt;style&amp;gt; tag and put it in &amp;lt;head&amp;gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Remove unused CSS or use &lt;a href="https://github.com/filamentgroup/loadCSS/blob/master/README.md" rel="noreferrer noopener nofollow"&gt;loadCSS&lt;/a&gt; to load files asynchronously&lt;/li&gt;
&lt;li&gt;JavaScript optimisation&lt;/li&gt;
&lt;li&gt;Reduce JavaScript payloads with &lt;a href="https://web.dev/reduce-javascript-payloads-with-code-splitting/" rel="noreferrer noopener nofollow"&gt;code splitting&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Optimise and compress images&lt;ul&gt;
&lt;li&gt;lazy-loading&lt;/li&gt;
&lt;li&gt;use pictures with alternative formats such as .webp&lt;/li&gt;
&lt;li&gt;reduce the size of photos/images&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Optimise web fonts&lt;ul&gt;&lt;li&gt; for example – use font-display: swap&lt;/li&gt;&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
&lt;br&gt;&lt;br&gt;First Input Delay&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;FID &lt;/strong&gt;measures the time browser needs to react to the first interaction on the user’s part (handling events, e.g. clicking a button). A good time is under 100ms. The result above 300ms is very weak and requires improvement. In &lt;strong&gt;PageSpeed Insights&lt;/strong&gt;, Time to Interactive is sort of FID.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x27NBsGW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh3.googleusercontent.com/P-G96Q1xGH317FwHxNuV4iYMS9lqrpy1VMedhyzgBznwx8ls4Ia6GjnDMpfmQKhnBkm2SHVh96m5xtOL5UFF5K79NLnkg5riwObvAxmQRiNaJ7zgJvXFtGpjFBRPgy_Y7Dw-6lyE" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x27NBsGW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh3.googleusercontent.com/P-G96Q1xGH317FwHxNuV4iYMS9lqrpy1VMedhyzgBznwx8ls4Ia6GjnDMpfmQKhnBkm2SHVh96m5xtOL5UFF5K79NLnkg5riwObvAxmQRiNaJ7zgJvXFtGpjFBRPgy_Y7Dw-6lyE" alt="Web Vitals: FID (First Input Delay)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;How to improve the FID score?&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Remove unused JS&lt;/li&gt;
&lt;li&gt;Delay for third party scripts load&lt;/li&gt;
&lt;li&gt;JavaScript optimisation&lt;/li&gt;
&lt;li&gt;Delay loading scripts that are not required for the correct display of the website&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
&lt;br&gt;&lt;br&gt;Cumulative Layout Shift&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;CLS&lt;/strong&gt; is an indicator of visual stability, which measures the sum of the shifts of all layout elements not related to the user's interaction. Shift happens when the browser suddenly reads page elements that move another element. And such shifts are often more annoying than slow page loading. &lt;/p&gt;

&lt;p&gt;An example of this is a pop-up advertisement that moves a button that we wanted to click on the page, but unfortunately, we clicked an ad. Google rightly believes that these are malicious solutions that lead to clicks on unwanted links. A good result is below 0.1. If the result is over 0.25, it needs improvement.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bBNUHALl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh3.googleusercontent.com/YB2827iCaFLLto50RZ_gPjiVArSW3FEUKcI3cEWgQ5RwBAUBg2GZPP11nZBD0RS4dKxk1qmkeXKsXIDszHXSXd6ow1n-pMVXrRoDEFKdTWFEaG1De7joBqDBvVybGzBpWrt7WR-C" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bBNUHALl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh3.googleusercontent.com/YB2827iCaFLLto50RZ_gPjiVArSW3FEUKcI3cEWgQ5RwBAUBg2GZPP11nZBD0RS4dKxk1qmkeXKsXIDszHXSXd6ow1n-pMVXrRoDEFKdTWFEaG1De7joBqDBvVybGzBpWrt7WR-C" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Example&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NWtHEevm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh5.googleusercontent.com/9GfnVXRnZXctyBC7ounsJ-d-YS6-QUoedTLs_xgZQ8o3aqvr8TtLUOyMZ1u2qivggaPMt8Dn60yRPZlVUEHBuMwq72UjsauPTV-XCSy_tmLWOwE1MjpBHXYcBsGpSqYsdWrwRTrE" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NWtHEevm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh5.googleusercontent.com/9GfnVXRnZXctyBC7ounsJ-d-YS6-QUoedTLs_xgZQ8o3aqvr8TtLUOyMZ1u2qivggaPMt8Dn60yRPZlVUEHBuMwq72UjsauPTV-XCSy_tmLWOwE1MjpBHXYcBsGpSqYsdWrwRTrE" alt="Web Vitals: CLS (Cumulative Layout Shift)"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;How to improve the CLS score?&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Elements visible in the page loading area should have a &lt;strong&gt;declared height and width&lt;/strong&gt;, so they don’t change their size when content loads.&lt;/li&gt;
&lt;li&gt;Use font-display: swap for the text visibility in the loading area.&lt;/li&gt;
&lt;li&gt;Avoid adding ads or add them in a fixed-size container.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
&lt;br&gt;&lt;br&gt;How to measure Web Vitals?&lt;/h2&gt;

&lt;p&gt;To check whether our website meets Web Vitals’ requirements, we can use &lt;strong&gt;Google PageSpeed Insights&lt;/strong&gt; and &lt;strong&gt;Google Search Console&lt;/strong&gt;. There is one more way – a Google Chrome plugin for measuring Web Vitals, but the results are often deceptive, so I don’t recommend using it.&lt;/p&gt;

&lt;h3&gt;
&lt;br&gt;Google PageSpeed Insights&lt;/h3&gt;

&lt;p&gt;Checks a single page, shows results of the analysis and offers suggestions for improving Web Vitals.&lt;/p&gt;

&lt;p&gt;Additionally, the report in &lt;a href="https://developers.google.com/speed/pagespeed/insights/" rel="noreferrer noopener nofollow"&gt;PageSpeed ​​Insights&lt;/a&gt; visualises the indicators’ values taking into account the number of users in the bar chart.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IdwykmaN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh4.googleusercontent.com/yXgxPgGDQt3-xQFzD5c36nF29c5wUGgciiApinus8yUPVcZMqDr4mWtErrWnC4Fh4BWdK6si4TbWmkiGFp2jpmHy1OXpCR4hHX-3v0EOLLVVfsis-qgApld_ot1ib0ADz_Ll9dmy" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IdwykmaN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh4.googleusercontent.com/yXgxPgGDQt3-xQFzD5c36nF29c5wUGgciiApinus8yUPVcZMqDr4mWtErrWnC4Fh4BWdK6si4TbWmkiGFp2jpmHy1OXpCR4hHX-3v0EOLLVVfsis-qgApld_ot1ib0ADz_Ll9dmy" alt="Google PageSpeed Insights score"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the example above, we can see that the FCP and CLS require improvement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FCP&lt;/strong&gt; – 31% of the time this page loads, the First Contentful Paint (FCP) indicator is bad (&amp;gt; 3 seconds).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CLS&lt;/strong&gt; – 29% of the time this page loads, the Cumulative Layout Shift (CLS) is terrible (&amp;gt; 0.25).&lt;/p&gt;

&lt;h3&gt;
&lt;br&gt;Google Search Console&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://search.google.com/search-console/welcome" rel="noreferrer noopener nofollow"&gt;Google Search Console&lt;/a&gt; is one of the best tools for website owners, where they can check the most critical information about the condition of their website in the eyes of Google.&lt;/p&gt;

&lt;p&gt;In GSC, the chart is generated for the entire website, and you can see on which subpages there are errors and what are the remedial actions.&lt;/p&gt;

&lt;p&gt;Thanks to this tool, we can obtain information about pages that require improvement.&lt;/p&gt;

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

&lt;p&gt;Without a doubt, Web Vitals is a good standard. As a result, creators who want to get a good result will adapt websites to create a better user experience. Although Google tells developers how to deal with problems and increase results, we know that it can be different in practice, and the new standard will bring many issues to developers.&lt;/p&gt;

&lt;p&gt;Google also points out that &lt;strong&gt;Web Vitals&lt;/strong&gt; will be developed continuously, so these three indicators are probably just the beginning of the changes.&lt;/p&gt;

</description>
      <category>corewebvitals</category>
      <category>seo</category>
    </item>
    <item>
      <title>How To Use React Native Over The Air (OTA) Updates</title>
      <dc:creator>tomgrabski</dc:creator>
      <pubDate>Wed, 21 Jul 2021 15:17:34 +0000</pubDate>
      <link>https://dev.to/pagepro_agency/how-to-use-react-native-over-the-air-ota-updates-423e</link>
      <guid>https://dev.to/pagepro_agency/how-to-use-react-native-over-the-air-ota-updates-423e</guid>
      <description>&lt;h2&gt;What are Over The Air (OTA) updates? Why might I need them?&lt;/h2&gt;

&lt;p&gt;Over The Air (OTA) updates are one of the advantages of &lt;a href="https://pagepro.co/react-native-development.html" rel="noreferrer noopener"&gt;React Native&lt;/a&gt; apps over native ones. In React Native apps, code is split into two parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Native binaries&lt;/strong&gt; – the part with native code that is compiled&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Javascript bundle&lt;/strong&gt; – the bundle with Javascript code and assets that is not compiled&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Normally when you want to update your app, you need first to build it and then send it to App Store or Google Play. A major drawback of this solution is the time needed for these stores to approve your update. Imagine a situation where an app with a critical error was published to users by mistake. In these cases, every second count. And this is where Over The Air (OTA) may help us.&lt;/p&gt;

&lt;p&gt;In short, OTA allows us to send updated Javascript bundles directly to users without the need of accepting them by Apple or Google. We can fix errors or push small updates (more on those later) almost immediately. This gives you more confidence about the stability of the app – there is always something that we can do instead of just waiting for an update to be accepted while users can't use the app&lt;/p&gt;

&lt;h2&gt;This sounds great! Are there any limitations?&lt;/h2&gt;

&lt;p&gt;As good as it may sound, there are few things that we need to keep in mind.&lt;/p&gt;

&lt;p&gt;The first thing is that OTA updates only work with Javascript bundles. You may think that this isn't really a big limitation because, in React Native, we write almost all code in JS. While this may be true, there still are modules that we install to our app. If a module changes your android or ios directories, you can't use OTA to update your app. That's because these directories' contents are used to compile Native binaries, which OTA can't update.&lt;/p&gt;

&lt;p&gt;The second thing is what we can do with OTA. Technically we can change everything in our app, but App Store and Google Play limit us. Google Play is less restrictive – they say that apps installed from Google Play shouldn't update in other ways than by Google services, &lt;a href="https://support.google.com/googleplay/android-developer/answer/9888379?hl=en" rel="noreferrer noopener nofollow"&gt;but Javascript bundles aren't restricted to do so&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Apple is more restrictive in these manners. &lt;a href="https://developer.apple.com/programs/information/Apple_Developer_Program_Information_8_12_15.pdf" rel="noreferrer noopener nofollow"&gt;Take a look at paragraph 3.3.2&lt;/a&gt;, which says that OTA updates can't make significant changes in the app. To keep it simple, we should use such updates only to fix bugs or make performance improvements without making significant changes to the app's UI or usability.&lt;/p&gt;

&lt;h2&gt;How to start using OTA?&lt;/h2&gt;

&lt;p&gt;We need a server that will receive our updates and send them to users of our app to use OTA. While we can make our own server, we can also use dedicated solutions. In this article, we will use &lt;a href="https://github.com/microsoft/react-native-code-push" rel="noreferrer noopener nofollow"&gt;CodePush &lt;/a&gt;from Microsoft App Center.&lt;/p&gt;

&lt;h3&gt;Setting up CodePush on App Center&lt;/h3&gt;

&lt;p&gt;First, we have to create an app on the App Center. We choose Android as an OS (if you are also making an app for iOS, you need to create a second app) and React Native as a platform.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--alQnwJBh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-10.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--alQnwJBh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-10.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After creating our app, we go to Distribute -&amp;gt; CodePush in the left menu. There we can create a new deployment for our app.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mgUu61MY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-12.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mgUu61MY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-12.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After this, we should have our deployment visible in CodePush. The last step is to go to settings (the wrench icon in the upper right corner) and check our deployment keys. We should have two because CodePush makes two branches by default. We will need these codes later when we are sending our updates.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ZpnbqFcY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-14.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ZpnbqFcY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-14.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Installing CodePush plugin&lt;/h3&gt;

&lt;p&gt;Let's assume you already have React Native app. To add the CodePush plugin first, we have to install it using &lt;code&gt;yarn&lt;/code&gt; or &lt;code&gt;npm&lt;/code&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#using yarn
yarn add react-native-code-push

#using npm
npm install react-native-code-push

#only for ios app
cd ios &amp;amp;&amp;amp; pod install&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;After installing the plugin, we need to set it up. Here we will only go with the Android setup. You can find the iOS setup &lt;a href="https://github.com/microsoft/react-native-code-push/blob/master/docs/setup-ios.md" rel="noreferrer noopener nofollow"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;First we need to add these lines at the end of  &lt;code&gt;android/settings.gradle&lt;/code&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;include ':app', ':react-native-code-push'
project(':react-native-code-push').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-code-push/android/app')&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Next we add &lt;code&gt;codepush.gradle&lt;/code&gt; in &lt;code&gt;android/app/build.gradle&lt;/code&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;apply from: "../../node_modules/react-native/react.gradle"
// add this line
apply from: "../../node_modules/react-native-code-push/android/codepush.gradle"&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Now we update &lt;code&gt;MainApplication.java&lt;/code&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;...
// 1. Import the plugin class.
import com.microsoft.codepush.react.CodePush;

public class MainApplication extends Application implements ReactApplication {

    private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
        ...

        // 2. Override the getJSBundleFile method in order to let
        // the CodePush runtime determine where to get the JS
        // bundle location from on each app start
        @Override
        protected String getJSBundleFile() {
            return CodePush.getJSBundleFile();
        }
    };
}&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Next, we need to set is the deployment key. We have to tell the app which branch on App Center it should check for updates. To do so, we have to update &lt;code&gt;android\app\src\main\res\values\strings.xml&lt;/code&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;resources&amp;gt;
    &amp;lt;string name="app_name"&amp;gt;OtaExample&amp;lt;/string&amp;gt;
    &amp;lt;string moduleConfig="true" name="CodePushDeploymentKey"&amp;gt;YOUR_KEY&amp;lt;/string&amp;gt;
&amp;lt;/resources&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;This is the key we obtain from CodePush on App Center. To update our app later, we have to push updates to the same branch that we connect here with the deployment key. You can find more info about using multiple deployments &lt;a href="https://github.com/microsoft/react-native-code-push/blob/master/README.md#multi-deployment-testing" rel="noreferrer noopener nofollow"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Finally, we wrap our app root component with CodePush HOC.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import codePush from 'react-native-code-push';

const App = () =&amp;gt; {
  return (
    &amp;lt;&amp;gt;
      &amp;lt;StatusBar barStyle="dark-content" /&amp;gt;
      &amp;lt;SafeAreaView&amp;gt;
        &amp;lt;ScrollView
          contentInsetAdjustmentBehavior="automatic"
          style={styles.scrollView}&amp;gt;
          &amp;lt;View style={styles.body}&amp;gt;
            &amp;lt;Text&amp;gt;Test&amp;lt;/Text&amp;gt;
          &amp;lt;/View&amp;gt;
        &amp;lt;/ScrollView&amp;gt;
      &amp;lt;/SafeAreaView&amp;gt;
    &amp;lt;/&amp;gt;
  );
};

export default codePush(App);&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;By default, CodePush will check for updates on every app launch and install them in the background, which means that the user will get the changes on the next launch after the update. This behaviour focuses on the best TTI (time to interactive), so the user doesn't have to wait for the update to download and install before using the app. How to install updates, and how often they can be changed – more about you can find &lt;a href="https://github.com/microsoft/react-native-code-push#plugin-usage" rel="noreferrer noopener nofollow"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Lets send our first update OTA!&lt;/h2&gt;

&lt;p&gt;After all these configurations, we are finally able to send OTA updates. To do so, we first have to install and login into CodePush globally. We need to log in only once.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#using yarn
yarn global add appcenter-cli

#using npm
npm install -g appcenter-cli

#will open a dialog to login into appcenter
appcenter login

#to send update OTA
appcenter codepush release-cordova -a &amp;lt;ownerName&amp;gt;/&amp;lt;appName&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So let's do it! First, let's make a release build of our react native app and install it on the device. More about building release APK for Android you can find &lt;a href="https://reactnative.dev/docs/signed-apk-android#generating-the-release-apk" rel="noreferrer noopener nofollow"&gt;here&lt;/a&gt;.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bkarvhSL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-15.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bkarvhSL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-15.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Above you can see our app launched on an emulator. Let's make some changes and send them Over The Air!&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;const App = () =&amp;gt; {
  return (
    &amp;lt;&amp;gt;
      &amp;lt;StatusBar barStyle="dark-content" /&amp;gt;
      &amp;lt;SafeAreaView&amp;gt;
        &amp;lt;ScrollView
          contentInsetAdjustmentBehavior="automatic"
          style={styles.scrollView}&amp;gt;
          &amp;lt;View style={styles.body}&amp;gt;
            &amp;lt;Text&amp;gt;Test&amp;lt;/Text&amp;gt;
            &amp;lt;Text&amp;gt;Testing OTA updates!&amp;lt;/Text&amp;gt;
          &amp;lt;/View&amp;gt;
        &amp;lt;/ScrollView&amp;gt;
      &amp;lt;/SafeAreaView&amp;gt;
    &amp;lt;/&amp;gt;
  );
};&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;We added &lt;code&gt;&amp;lt;Text&amp;gt;Testing OTA updates!&amp;lt;/Text&amp;gt;&lt;/code&gt; to our app. Now let's push this change using the command above! Then we can launch our app (we won't see the changes first) and wait 10-15 seconds. After relaunching our app, we should see this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PxWCmvK7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-16.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PxWCmvK7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-16.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Conclusions&lt;/h2&gt;

&lt;p&gt;OTA updates are a powerful tool that you can add with ease to React Native apps. They give us another way to update which is almost immediate and invisible for users. Thanks to this, we can always fix our app even on production without waiting for App Store or Google Play to accept our update. &lt;/p&gt;

&lt;p&gt;We have to keep in mind that we cannot update native libraries, which will be required in some situations and not making updates that change the UI or functionalities of our app because it's not allowed by Apple and Google policies.&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>mobile</category>
    </item>
    <item>
      <title>50 Examples of Great React Native Apps in 2021</title>
      <dc:creator>tomgrabski</dc:creator>
      <pubDate>Tue, 13 Jul 2021 20:41:21 +0000</pubDate>
      <link>https://dev.to/pagepro_agency/50-examples-of-great-react-native-apps-in-2021-36f1</link>
      <guid>https://dev.to/pagepro_agency/50-examples-of-great-react-native-apps-in-2021-36f1</guid>
      <description>&lt;h2&gt;Introduction&lt;/h2&gt;

&lt;p&gt;More and more often, before we start a mobile project, our potential clients are asking for some &lt;strong&gt;examples of React Native apps&lt;/strong&gt; they could relate to their businesses.&lt;/p&gt;

&lt;p&gt;In fact, everybody knows the popular apps, but not much else.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Can you send me some React Native apps examples that could be a good benchmark for my business?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;So, as an answer, instead of looking for some good examples over and over again, we wrote this article, to immediately access the best of them &lt;strong&gt;from 15 different industries.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Since its release in 2015, React Native is rapidly emerging. So do its popularity and community. Because of many features and the possibility to build apps for many mobile platforms simultaneously, it became the first choice of many developers, startups and business owners.&lt;/p&gt;

&lt;p&gt;So, whether you are looking for inspiration, examples, or just want to make sure that React Native is the right choice, and you search for some business benchmark, here’s a list of more than 50 apps built in React Native. &lt;/p&gt;

&lt;h3&gt;15 different industries&lt;/h3&gt;

&lt;p&gt;If you are searching for some examples of apps from your industry, you will find such industries as:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Art&lt;/td&gt;
&lt;td&gt;eCommerce&lt;/td&gt;
&lt;td&gt;Education&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Entertainment&lt;/td&gt;
&lt;td&gt;Fashion&lt;/td&gt;
&lt;td&gt;Finance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Food&lt;/td&gt;
&lt;td&gt;Health&lt;/td&gt;
&lt;td&gt;News&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Retail&lt;/td&gt;
&lt;td&gt;Social Media&lt;/td&gt;
&lt;td&gt;Sport&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transportation&lt;/td&gt;
&lt;td&gt;Travel&lt;/td&gt;
&lt;td&gt;Virtual Reality&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;React Native 101&lt;/h2&gt;

&lt;p&gt;Need more information about React Native itself and how it stands out from other mobile development technologies?&lt;/p&gt;

&lt;p&gt;Read the other articles that will give you an ultimate introduction and the knowledge you need to successfully kick-off the project with React Native:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Our own &lt;a href="https://pagepro.co/blog/react-native-guide-2020-top-mobile-framework/" rel="noreferrer noopener"&gt;React Native Guide&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Most popular &lt;a href="https://pagepro.co/blog/react-native-pros-and-cons/" rel="noreferrer noopener"&gt;React Native pros and cons&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pagepro.co/blog/react-native-faq-all-you-need-to-know/" rel="noreferrer noopener"&gt;React Native FAQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Comparison: &lt;a href="https://pagepro.co/blog/react-native-vs-flutter-which-is-better-for-cross-platform-app/" rel="noreferrer noopener"&gt;React Native vs Flutter&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Comparison: &lt;a href="https://pagepro.co/blog/react-native-nativescript-comparison/" rel="noreferrer noopener"&gt;React Native vs NativeScript&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="most-popular"&gt;Most popular examples of React Native apps&lt;/h2&gt;

&lt;p&gt;While looking for apps built with React Native, we tried to collect examples of both well-known apps like Facebook and less popular ones created by startups.&lt;/p&gt;

&lt;h3&gt;Facebook and React Native&lt;/h3&gt;

&lt;p&gt;Obviously, Facebook is a no-brainer from all the examples of React Native apps.&lt;/p&gt;

&lt;p&gt;In fact, React Native is a result of a hackathon organised by Facebook to respond to the company’s needs. Facebook wanted to use all the benefits of web development (like fast iterations or the possibility to build the full product within one team) in mobile development. Consequently, they created leverage in mobile development for both Android and iOS platforms.&lt;/p&gt;

&lt;p&gt;A team of Facebook developers wanted to test React Native apps performance, so they migrated the Events Dashboard in their iOS app to React Native. They wanted to try such things as startup time, which is essential in this kind of application. If the application needs a lot of time to start, it may discourage users from using it.&lt;/p&gt;

&lt;p&gt;The result? &lt;a href="https://code.facebook.com/posts/895897210527114/dive-into-react-native-performance/" rel="noreferrer noopener nofollow"&gt;A React Native app startup time twice as fast&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Ffacebook-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Ffacebook-react-native.jpg" alt="React Native apps: Facebook app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Facebook Ads Manager and React Native&lt;/h3&gt;

&lt;p&gt;Facebook didn’t stop after using React Native in its primary application. Another one from the best examples is in fact the first cross-platform app based solely on React Native – &lt;a href="https://code.facebook.com/posts/1189117404435352/react-native-for-android-how-we-built-the-first-cross-platform-react-native-app/" rel="noreferrer noopener nofollow"&gt;Facebook Ads Manager&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It was a complex task because of the business logic required to handle ad formats, time zones, date formats, currencies, and many more different things for different users. However, React Native seemed like an ideal fit, mainly because the lion’s share of code was written in JavaScript.&lt;/p&gt;

&lt;p&gt;While the Facebook dev team was working on Facebook Ads Manager, they created many components, useful for other developers, too.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Ffacebook-ads-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Ffacebook-ads-react-native.jpg" alt="React Native apps: Facebook Ads Manager app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Instagram and React Native&lt;/h3&gt;

&lt;p&gt;Another one from popular examples of React Native Apps isInstagram. &lt;/p&gt;

&lt;p&gt;What’s more challenging than building an entire app from scratch is integrating new technology into an existing app, but that’s what Instagram tried to do. They started from the simplest view that you can imagine, which is the Push Notifications view. Initially, it was implemented as the WebView as there wasn’t a need to build a navigation infrastructure.&lt;/p&gt;

&lt;p&gt;React Native allowed Instagram developers to &lt;strong&gt;ship features to both Android and iOS apps much faster&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;They also improved developer velocity, and the &lt;strong&gt;percentage of code shared between the apps&lt;/strong&gt; for some of the products shows just that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Post Promote: 99%&lt;/li&gt;
&lt;li&gt;SMS Captcha Checkpoint: 97%&lt;/li&gt;
&lt;li&gt;Comment Moderation: 85%&lt;/li&gt;
&lt;li&gt;Lead Gen Ads: 87%&lt;/li&gt;
&lt;li&gt;Push Notification Settings: 92%&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Read more about &lt;a href="https://instagram-engineering.com/react-native-at-instagram-dd828a9a90c7" rel="noreferrer noopener nofollow"&gt;how Instagram is using React Native&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Finstagram-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Finstagram-react-native.jpg" alt="React Native apps: Instagram app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;UberEats and React Native&lt;/h3&gt;

&lt;p&gt;Standard Uber application involves two parties – drivers and passengers – but UberEats involves three – restaurants, delivery drivers and customers. Such a model created a need for an extra dashboard dedicated to restaurants.&lt;/p&gt;

&lt;p&gt;Uber created the original dashboard with the web in mind, and it caused limited access to the native functionalities like sound notifications. Consequently, it made the user experience weaker.&lt;/p&gt;

&lt;p&gt;The Uber dev team decided to rebuild the entire dashboard using React Native. Although it’s just a tiny piece of the entire code of the UberEats app, developers are optimistic that React Native may help them in the future to implement new features as the marketplace grows.&lt;/p&gt;

&lt;p&gt;Read more about &lt;a href="https://eng.uber.com/ubereats-react-native/" rel="noreferrer noopener nofollow"&gt;how UberEats is using React Native&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fubereats-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fubereats-react-native.jpg" alt="React Native apps: UberEats app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Walmart and React Native&lt;/h3&gt;

&lt;p&gt;Walmart is the best example of an app that migrate to React Native in order to reach their ambitious goals.&lt;/p&gt;

&lt;p&gt;They want to become number one in the online retail industry. It’s a big goal, and big goals require big moves associated with high risk.&lt;/p&gt;

&lt;p&gt;Gaining a competitive advantage (necessary to reach such goals) requires testing and using new technologies. It also has a positive impact on user experience. Firstly, Walmart added Node.js to their technology stack. Later, they decided to use React Native to rewrite the mobile application.&lt;/p&gt;

&lt;p&gt;Walmart succeeded in boosting Android and iOS apps’ performance, which took fewer resources and less time. &lt;strong&gt;These platforms shared 95% of the codebase&lt;/strong&gt;, while the entire rewriting process resulted in an outstanding performance and smooth animations, similar to native.&lt;/p&gt;

&lt;p&gt;Read more about &lt;a href="https://medium.com/walmartglobaltech/react-native-at-walmartlabs-cdd140589560" rel="noreferrer noopener nofollow"&gt;how Walmart is using React Native&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fwalmart-app-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fwalmart-app-react-native.jpg" alt="React Native apps: Walmart app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Pinterest and React Native&lt;/h3&gt;

&lt;p&gt;Pinterest considered React Native to implement it into their tech stack, and they decided to do so based on the benefits they found. The biggest one was the increase in developer velocity. As React Native makes it possible to share code between platforms, it means less time spent on standups and meetings and fewer number of inconsistencies between mobile platforms.&lt;/p&gt;

&lt;p&gt;However, Pinterest uses React Native as an additional tool in their engineering toolbox – next to native code capabilities on Android and iOS. They never wanted to rewrite the entire code to React Native. &lt;/p&gt;

&lt;p&gt;Pinterest used React Native to build the Topic Picker view and Business Signup flow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pinterest.com" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fpinterest-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fpinterest-react-native.jpg" alt="React Native apps: Pinterest app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Coinbase Pro and React Native&lt;/h3&gt;

&lt;p&gt;In 2019, Coinbase decided to rewrite their core mobile sign-up using React Native because of a few reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;As Coinbase supports more than 100 countries, their sign-up experience has to be dynamic – lt should adapt to the user’s location and profile. Staying with the existing code and making changes would be more expensive than rewriting the entire application.&lt;/li&gt;
&lt;li&gt;Rewriting the entire application natively would require a lot of code duplication, while React Native allows targeting multiple platforms simultaneously. It allows for reusing the business logic instead of duplicating it and maintaining consistency between apps for different platforms.&lt;/li&gt;
&lt;li&gt;Coinbase wanted to implement a new sign-up experience for Coinbase native application and Coinbase Pro that they wrote entirely in React Native. Without using the RN to do so, it would be much more costly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Coinbase evaluated using React Native positively, mainly because of component reusability, Fast Refresh and easiness of onboarding web developers.&lt;/p&gt;

&lt;p&gt;Read more about &lt;a href="https://blog.coinbase.com/onboarding-thousands-of-users-with-react-native-361219066df4" rel="noreferrer noopener nofollow"&gt;how Coinbase is using React Native&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fcoinbase-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fcoinbase-react-native.jpg" alt="React Native apps: Coinbase Pro app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Shopify and React Native&lt;/h3&gt;

&lt;p&gt;After years of building apps natively, Shopify decided to start building new mobile apps with React Native.&lt;/p&gt;

&lt;p&gt;There are three main reasons behind their decision:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They learned how much React Native has developed after the acquisition of a mobile-first company called Tictail which is focused solely on React Native&lt;/li&gt;
&lt;li&gt;Shopify was using React daily, and that knowledge became transferable to mobile &lt;/li&gt;
&lt;li&gt;They can invest in React Native long-term, and they saw how performance has been going up&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Shopify started to experiment with React Native with three separate teams over three applications: Arrive, Compass, and Point of Sale.&lt;/p&gt;

&lt;p&gt;They learned that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dev team responsible for rewriting the Arrive app in React Native felt that they were twice as productive as native development – even though they were working on one mobile platform at that time.&lt;/li&gt;
&lt;li&gt;Testing Point of Sale application on low-power Android hardware configurations allowed them to use a lower CPU threshold (1.5GHz in comparison to 2GHz)&lt;/li&gt;
&lt;li&gt;The percentage of code shared between Android and iOS was higher than expected – they estimated 80% while the results were 95% (Arrive) and 99% (Compass)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, even though they decided to build all new applications with React Native, that doesn’t mean they will also be rewriting all of the old apps in React Native.&lt;/p&gt;

&lt;p&gt;Read more about &lt;a href="https://shopify.engineering/react-native-future-mobile-shopify" rel="noreferrer noopener nofollow"&gt;how Shopify is using React Native&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fshopify-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fshopify-react-native.jpg" alt="React Native apps: Shopify Point of Sale app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Discord and React Native&lt;/h3&gt;

&lt;p&gt;Discord adopted React Native as soon as it was released to build their iOS app on top of their React app. Years passed, and they are still happy that they made their decision. Their app is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;being used by millions of active users,&lt;/li&gt;
&lt;li&gt;practically crash-free,&lt;/li&gt;
&lt;li&gt;rated at 4.8 stars in the App Store.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They have achieved all of that with only three core iOS engineers on board.&lt;/p&gt;

&lt;p&gt;However, at the beginning of 2019, they noticed that the performance degraded – the app could not maintain 60 FPS in regular usage – and it was unclear why. &lt;/p&gt;

&lt;p&gt;Discord created a mobile performance squad to boost app performance across all supported iOS devices to fix this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.discord.com/how-discord-achieves-native-ios-performance-with-react-native-390c84dcd502" rel="noreferrer noopener nofollow"&gt;As they wrote in the blog post&lt;/a&gt;, the results were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A fairly consistent 60 FPS across supported devices and a very noticeable reduction in battery consumption.&lt;/li&gt;
&lt;li&gt;A much better development experience since even the app under development mode runs much better than the production app before these changes.&lt;/li&gt;
&lt;li&gt;An average of two seconds shaved off the initial load time. Discord achieved it through our efforts enabling RAM bundles and optimising code paths to leverage it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s worth noting that they completed the entire process within a span of a few weeks.&lt;/p&gt;

&lt;p&gt;About working with React Native and building apps with it, they said that there are some challenges. However, the benefits outweigh the disadvantages, so they are ready to use it in the future, too.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fdiscord-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fdiscord-react-native.jpg" alt="React Native apps: Discord app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Bloomberg and React Native&lt;/h3&gt;

&lt;p&gt;Bloomberg used React Native to build the Customer App for Android and iOS in 2016. It offers a streamlined, interactive experience with easy-to-access personalised content, videos and live feeds featured across Bloomberg Media. &lt;/p&gt;

&lt;p&gt;Like all of their products, it was designed to meet users’ needs and seamlessly integrate with their routines. The content seen by users can be easily personalised depending on their location and by field of specialisation – Opinion, Politics, Pursuits, Markets, and Technology, to name a few. Users can also access on-demand live TV or event feeds.&lt;/p&gt;

&lt;p&gt;React Native enables the Bloomberg team to update the app continuously with market-moving analysis, data, and news – all of that is accessible through personalised widgets.&lt;/p&gt;

&lt;p&gt;Read more about &lt;a href="https://www.techatbloomberg.com/blog/bloomberg-used-react-native-develop-new-consumer-app/" rel="noreferrer noopener nofollow"&gt;how Bloomberg is using React Native&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fbloomberg-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fbloomberg-react-native.jpg" alt="React Native apps: Bloomberg app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2 id="other-examples"&gt;Other examples of apps made with React Native&lt;/h2&gt;

&lt;h3&gt;Facebook Analytics&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Ffacebook-analytics-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Ffacebook-analytics-react-native.jpg" alt="React Native apps: Facebook Analytics app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s not surprising that after Facebook and Facebook Ads Manager, Facebook Analytics has also been built with React Native. This app helps users with a number of different reports and metrics presented in a detailed overview.&lt;/p&gt;

&lt;p&gt;React Native made it possible for users to create tailor-made mobile views of basic matrics, revenue generation, number of active users, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://analytics.facebook.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;YOKE Network&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fyoke-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fyoke-react-native.jpg" alt="React Native apps: YOKE Network app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;YOKE Network is an influencer marketing agency that had an idea for an application that should accomplish to goals at once:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Help users reach the right influencer with the right audience to promote products across social media channels&lt;/li&gt;
&lt;li&gt;Help influencers with finding great products that they could promote and get paid for that&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://pagepro.co/yoke-network.html" rel="noreferrer noopener"&gt;Read the case study&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Beast Rent&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fbeast-rent-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fbeast-rent-react-native.jpg" alt="React Native apps: Best Rent app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The main goal of the Beast Rent App is to make Tesla car rental easy and hassle-free. For example, as a user of this app:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can ask for a transportation box for your pets or a booster seat for your kids&lt;/li&gt;
&lt;li&gt;You can ask the rented car to warm up before you go inside&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://pagepro.co/beast-rent-app.html" rel="noreferrer noopener"&gt;Read the case study&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Novus World&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F05%2FNovusWorldApp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F05%2FNovusWorldApp.png" alt="React Native apps: Novus World Banking app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Novus World is an intuitive and user-friendly digital banking app. It aims to provide an outstanding user experience of using intelligent finance management tools. The end goal is to help users with budgeting, saving and controlling their finances.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pagepro.co/novus.html" rel="noreferrer noopener"&gt;Read the case study&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Tableau Mobile&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Ftableau-mobile-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Ftableau-mobile-react-native.jpg" alt="React Native apps: Tableau Mobile App app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tableau Mobile is an application accompanied by Tableau Online and Tableau Server. It allows you to view your company’s visualisations, dashboards, and different metrics using a phone or tablet.&lt;/p&gt;

&lt;p&gt;In 2017, the dev team at Tableau Mobile decided to use React Native to rewrite their mobile application. Two years later, they released it on both Android and iOS. As they said, it was a great decision which allowed them to ship more features, more often and with better quality.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.tableau.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;FlipKart&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fflipkart-mobile-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fflipkart-mobile-react-native.jpg" alt="React Native apps: FlipKart app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Flipkart is the largest eCommerce player in India (let’s say Amazon dedicated for India), has over 100 million app downloads and 400 million visits every week. They started their journey with React Native five years ago, in 2016.&lt;/p&gt;

&lt;p&gt;Few words about their tech stack&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It consists of Native, React Native and React-Native-Web&lt;/li&gt;
&lt;li&gt;Most components are developed with React Native, while the home page is native&lt;/li&gt;
&lt;li&gt;Navigation in FlipKart apps is native because it supports easier switching between native, react-native and web view&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They decided to use React Native because of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Possibility to develop apps for all mobile platforms without impacting performance&lt;/li&gt;
&lt;li&gt;Unrestricted usage of custom native components if needed&lt;/li&gt;
&lt;li&gt;Ability to ship JavaScript code using &lt;a href="https://pagepro.co/blog/react-native-over-the-air-updates/" rel="noopener noreferrer"&gt;Over The Air (OTA) updates&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.flipkart.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Mercari&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fmercari-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fmercari-react-native.jpg" alt="React Native apps: Mercari app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mercari became the largest marketplace application in Japan, however, they want more – it’s also available in the US. It allows anyone with a mobile device like a smartphone to sell items they no longer need instead of just throwing them out.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.mercari.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;NerdWallet&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fnerdwallet-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fnerdwallet-react-native.jpg" alt="React Native apps: NerdWallet app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;NerdWallet is an application for personal finance management that gives its users an overview of their financial life, insights based on their specific situation, and detailed instructions on how to improve their finances.&lt;/p&gt;

&lt;p&gt;The NerdWallet app is built on top of React Native, TypeScript, and GraphQL. Out of these three, it’s React Native that was crucial in achieving blazing time-to-market, high development efficiency, and empowering technology and talent within NerdWallet Engineering.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nerdwallet.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Tesla&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Ftesla-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Ftesla-react-native.jpg" alt="React Native apps: Tesla app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another diamond from all the examples of React Native apps.&lt;/p&gt;

&lt;p&gt;Tesla used React Native to build its Tesla app, which allows drivers to control their cars remotely. For example, they can start and stop the charging of the car.&lt;/p&gt;

&lt;p&gt;Other features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Checking charging time&lt;/li&gt;
&lt;li&gt;Checking car heating/cooling&lt;/li&gt;
&lt;li&gt;Locking/unlocking&lt;/li&gt;
&lt;li&gt;Diagnosing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The dark-them user interface of the Tesla app makes it look like some kind of video game. It’s available both on Android and iOS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.tesla.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Do you have a better example of React Native App?&lt;/p&gt;
&lt;a href="https://pagepro.co/react-native-development.html" rel="noopener noreferrer"&gt;Submit it to get listed!&lt;/a&gt;





&lt;h3&gt;Wix&lt;/h3&gt;





&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fwix-com-react-native.jpg" alt="React Native apps: Wix app screenshots"&gt;





&lt;p&gt;Wix is an online tool to create free websites with no coding knowledge. They used React Native to build a Wix Mobile App to help you run and manage your business and day-to-day activities.&lt;/p&gt;

&lt;p&gt;Wix App allows you to invite website visitors to become members through their mobile app. It’s a great way to build a community of engaged users. For them, it’s helpful because they can – for example – browse through your products and services, book an appointment or comment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://wix.com" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Salesforce&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fsalesforce-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fsalesforce-react-native.jpg" alt="React Native apps: Salesforce app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the best examples of truly complex React Native apps.&lt;/p&gt;

&lt;p&gt;Salesforce is a company that provides CRM software along with applications focused on customer service, marketing automation, analytics, and application development. React Native makes it possible to build Salesforce-powered mobiles apps based on Mobile SDKs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://salesforce.com" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Words with Friends&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fwords-with-friends-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fwords-with-friends-react-native.jpg" alt="React Native apps: Words with Friends app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Words with Friends is a multiplayer word board game owned by Zynga. Players take turns building words crossword-puzzle style, which is similar to Scrabble, a classic board game. The rules of these two are similar, but Words with Friends is not associated with the Scrabble brand in any way.&lt;/p&gt;

&lt;p&gt;Words with Friends decided to choose React Native because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Integrating RN into existing apps is well documented and supported&lt;/li&gt;
&lt;li&gt;Iteration tools such as live reloading boost the development a lot&lt;/li&gt;
&lt;li&gt;The technology is emerging and has strong community support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Learn more about &lt;a href="https://medium.com/zynga-engineering/why-how-words-with-friends-is-adopting-react-native-b24a405f421c" rel="noreferrer noopener nofollow"&gt;how Words with Friends is using React Native&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Call of Duty Companion App&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fcall-of-duty-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fcall-of-duty-react-native.jpg" alt="React Native apps: Call of Duty app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Companion App helps Call of Duty players track their every shot across multiple titles, identify their most effective weapons, and even compare their stats to their friends’ stats.&lt;/p&gt;

&lt;p&gt;These include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;EKIA and W/L ratios over time&lt;/li&gt;
&lt;li&gt;Shots fired and accuracy %&lt;/li&gt;
&lt;li&gt;Total time played&lt;/li&gt;
&lt;li&gt;And more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Companion App is written using React Native, JavaScript, Redux and React Navigation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.callofduty.com/app" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Foreca&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fforeca-app-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fforeca-app-react-native.jpg" alt="React Native apps: Foreca app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Foreca provides digital weather services for developers and consumers through applications, data interfaces and websites. To do so, they collect worldwide weather data, which allows them to make their own global weather forecasts.&lt;/p&gt;

&lt;p&gt;Before using React Native, Foreca created their Android and iOS apps separately, so they had separate code. Because of that, both applications provided a little bit different functionality and customer experience.&lt;/p&gt;

&lt;p&gt;As Foreca wanted to create a customer experience that would be practically the same for Android and iOS users and have a possibility to implement different changes more effectively, they decided to go with React Native.&lt;/p&gt;

&lt;p&gt;Learn more about &lt;a href="https://corporate.foreca.com/en/news/how-to-make-a-global-weather-app-serving-both-ios-and-android-users" rel="noreferrer noopener nofollow"&gt;how Foreca is using React Native&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;LendMN&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Flendmn-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Flendmn-react-native.jpg" alt="React Native apps: LendMN app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LendMN is the mobile application created by a fintech company called AND Global, which provides small loans quickly and conveniently for those who can’t receive such financial services from traditional institutions. &lt;/p&gt;

&lt;p&gt;This app has over 100 thousand active customers in Mongolia and is one of the most popular applications there.&lt;/p&gt;

&lt;p&gt;The usage of React Native to build this application allowed LendMN to utilise their web developers for application development and update it on the fly.&lt;/p&gt;

&lt;p&gt;Learn more about &lt;a href="https://medium.com/@and.global/providing-financial-access-to-the-underbanked-through-react-native-a8473691d06" rel="noreferrer noopener nofollow"&gt;how LendMN is using React Native&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Artsy&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fartsy-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fartsy-react-native.jpg" alt="React Native apps: Artsy app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As the Artsy app description on the App Store states, “Artsy is the largest online art marketplace with more than 1 million artworks by over 100,000 artists”. This iOS app allows users to collect art from galleries worldwide, bid in live auctions from anywhere, and sell works from their private collections.&lt;/p&gt;

&lt;p&gt;Read more about &lt;a href="https://artsy.github.io/series/react-native-at-artsy/" rel="noreferrer noopener nofollow"&gt;how Artsy is using React Native&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;QQ&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fqq-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fqq-react-native.jpg" alt="React Native apps: QQ app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;QQ is an instant messaging and social platform available as both React Native-based desktop and mobile apps. It offers many features such as online chat, video and voice calls, file transfers, and e-mail. Tencent, the company behind QQ, continually implements new features to respond to young users’ needs. Examples of such features include KuoLie (it helps with expanding networks) and KanDian (it matches content with users).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.tencent.com/en-us/business.html" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Baidu Mobile&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fbaidu-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fbaidu-react-native.jpg" alt="React Native apps: Baidu Mobile app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Baidu Mobile is a widely popular search engine in China, with more than 600 million users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://baike.baidu.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Delivery.com&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fdelivery-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fdelivery-react-native.jpg" alt="React Native apps: Delivery.com app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Delivery.com is a mobile application that allows customers to make orders from local restaurants and stores for on-demand delivery. Their dev team decided to implement React Native into the existing iOS app, starting with releasing three views into production.&lt;/p&gt;

&lt;p&gt;Learn more about &lt;a href="https://medium.com/delivery-com-engineering/react-native-in-an-existing-ios-app-delivered-874ba95a3c52#.37qruw6ck" rel="noreferrer noopener nofollow"&gt;how Delivery.com is using React Native&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Gyroscope&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fgyroscope-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fgyroscope-react-native.jpg" alt="React Native apps: Gyroscope app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gyroscope created a Health Tracking app which helps its users to track everything about their life. It syncs HealthKit data to Gyroscope and provides users with a dashboard. The app’s goal was to help people achieve goals like losing weight or being more productive by using their data.&lt;/p&gt;

&lt;p&gt;Learn more about &lt;a href="https://blog.gyrosco.pe/building-the-app-1dac1a97d253" rel="noreferrer noopener nofollow"&gt;how Gyroscope is using React Native&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Huiseoul&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fhuiseoul-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fhuiseoul-react-native.jpg" alt="React Native apps: Huiseoul app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Huiseoul is a conversational e-commerce app that focuses on providing Korean beauty products exclusively to China.&lt;/p&gt;

&lt;p&gt;Learn more about &lt;a href="https://engineering.huiseoul.com/building-a-conversational-e-commerce-app-in-6-weeks-with-react-native-c35d46637e07" rel="noreferrer noopener nofollow"&gt;how Huiseoul is using React Native&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;JD&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fjd-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fjd-react-native.jpg" alt="React Native apps: JD app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JD.com is a Chinese company that’s:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;China’s largest online retailer&lt;/li&gt;
&lt;li&gt;China’s biggest overall retailer&lt;/li&gt;
&lt;li&gt;Biggest Internet company by revenue in China&lt;/li&gt;
&lt;li&gt;A member of Fortune Global 500&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;People can download apps both on Android and iOS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://corporate.jd.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Vogue&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fvogueworld-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fvogueworld-react-native.jpg" alt="React Native apps: Vogue app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Vogue app created with React Native delivers its users the latest news in fashion, beauty, runway and celebrity style, homes, weddings, food, travel, and entertainment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.vogue.com/app/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Grasshopper&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fgrasshopper-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fgrasshopper-react-native.jpg" alt="React Native apps: Grasshopper app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Grasshopper is a mobile application created with React Native for those who want to learn how to code. The difficulty levels vary, and users can learn in a fun way using their mobile devices.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://grasshopper.codes/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Unacademy&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Funacademy-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Funacademy-react-native.jpg" alt="React Native apps: Unacademy app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another very famous from the examples of apps made in React Native. &lt;/p&gt;

&lt;p&gt;Unacademy is the largest online learning platform in India, however, it’s available in multiple languages. It was created with React Native to deliver courses on every possible topic created by the top educators in the country. It has more than 8 million views every single month.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://unacademy.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;WalkSafe&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fwalksafe-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fwalksafe-react-native.jpg" alt="React Native apps: WalkSafe app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The WalkSafe application takes care of your safety – it provides a map that visualises crime reports published by the police. Thanks to that, users can see places that are probably dangerous and identify regular trouble spots. The WalkSafe app also alerts its users if they are walking towards areas where crimes like knife attacks, sexual assaults or mugging have been reported.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.walksafe.io/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Shine&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fshine-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fshine-react-native.jpg" alt="React Native apps: Shine app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Shine is the application that helps you build a self-care ritual that will eventually turn into a healthy habit. You can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Meditate with the help of Daily Shine&lt;/li&gt;
&lt;li&gt;Connect with other members of an active community&lt;/li&gt;
&lt;li&gt;Reflect on your mood and get recommendations about content to read&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.theshineapp.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Bitesnap&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fbitesnap-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fbitesnap-react-native.jpg" alt="React Native apps: Bitesnap app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bitesnap is a mobile application built with React Native that helps you build healthy eating habits. It can count calories and nutrients after taking a picture of what you are about to eat because the app can recognise the foods in it. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://getbitesnap.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Bunch&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fbunch-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fbunch-react-native.jpg" alt="React Native apps: Bunch app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bunch is a social app that allows you to play video games with your friends over video chat.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bunch.live/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Cake&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fcake-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fcake-react-native.jpg" alt="React Native apps: Cake app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cake is a simple language learning app that will help you learn English for free. It’s available both on Android and iOS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mycake.me/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Crisp&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fcrisp-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fcrisp-react-native.jpg" alt="React Native apps: Crisp app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Crisp is the application-based supermarket dedicated to the inhabitants of the Netherlands, which allows them to order quality food straight from the source for delivery.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.crisp.nl/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;F8&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Ff8-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Ff8-react-native.jpg" alt="React Native apps: F8 app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every year, Facebook builds Android and iOS apps as a part of its F8 (Facebook Developer) Conference, so all attendees can easily check the schedule and find out more about the speakers and their talks. Applications also remind attendees about upcoming talks and provide announcements when needed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.f8.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Emma&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Femma-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Femma-react-native.jpg" alt="React Native apps: Emma app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Emma is an application that helps you avoid overdrafting, finds wasteful subscriptions, and gives you total control over your finances. It’s available both on Android and iOS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://emma-app.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;myGALF&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fgalf-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fgalf-react-native.jpg" alt="React Native apps: GALF app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GALF® is a fast-growing wellness aggregator company. They created React Native-based mobile application called myGALF with a set of features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GALF Shop&lt;/li&gt;
&lt;li&gt;Run Tracker&lt;/li&gt;
&lt;li&gt;Health and Fitness Event Registrations&lt;/li&gt;
&lt;li&gt;Services and Panelist Connect&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To track steps during a user's run or walk, myGALF uses the Pedometer data from Apple HealthKit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mygalf.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Helpr&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fhelpr-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fhelpr-react-native.jpg" alt="React Native apps: Helpr app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Helpr provides the highest quality in-house care at an affordable price. They provide different care services via highly-qualified Care Partners.&lt;/p&gt;

&lt;p&gt;The application allows users to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keep a record of their Care Partner’s hours.&lt;/li&gt;
&lt;li&gt;Contact Helpr or their Care Partner quickly and easily.&lt;/li&gt;
&lt;li&gt;Find Care Partners in their area right away.&lt;/li&gt;
&lt;li&gt;Get notification when their Care Partner arrives.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://helpr.org.uk/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Knowt&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fknowt-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fknowt-react-native.jpg" alt="React Native apps: Knowt app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Knowt is an application that automatically turns notes into review quizzes, flashcards, and assignments. It was created by students and for students with React Native. If you want, you can import handwritten notes instead of rewriting them in the application.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.knowt.io/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Maphi&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fmaphi-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fmaphi-react-native.jpg" alt="React Native apps: Maphi app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Maphi is an application that helps its users learn math in a fun way – you can solve math problems with simple touch gestures. Additionally, Maphi offers apps built with React Native that are available not only on mobile but also on desktop and web.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://maphi.app/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Myntra&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fmyntra-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fmyntra-react-native.jpg" alt="React Native apps: Myntra app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Myntra is an online fashion store app, one of the biggest and most popular ones in India. Its users can choose from popular brands like Vero Moda, Nike or H&amp;amp;M, and their order will be delivered safely to their home. Myntra app offers priority delivery, early sales, lucrative deals, as well as other perks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.myntra.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Microsoft Office 365&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fmicrosoft-edge-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fmicrosoft-edge-react-native.jpg" alt="React Native apps: Microsoft Edge app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;According to &lt;a href="https://blog.appfigures.com/microsoft-goes-all-in-on-react-native-for-their-mobile-apps/" rel="noreferrer noopener nofollow"&gt;AppFigures&lt;/a&gt;, most of the Office applications have been rewritten using React Native.&lt;/p&gt;

&lt;p&gt;Among them are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Microsoft Edge&lt;/li&gt;
&lt;li&gt;Excel&lt;/li&gt;
&lt;li&gt;Outlook&lt;/li&gt;
&lt;li&gt;PowerPoint&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.office.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Oval&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Foval-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Foval-react-native.jpg" alt="React Native apps: Oval app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Oval is the system – rather than just an application – which helps you manage finances and get the most out of your money.&lt;/p&gt;

&lt;p&gt;You can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Track expenses&lt;/li&gt;
&lt;li&gt;Save regularly&lt;/li&gt;
&lt;li&gt;Invest money&lt;/li&gt;
&lt;li&gt;Pay smart&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Inside you will find:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Save – a place for your savings goals&lt;/li&gt;
&lt;li&gt;Invest – a place where you can manage your investments&lt;/li&gt;
&lt;li&gt;Pay – a place that is the centre of app availability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://ovalmoney.com/en/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Saffron&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fsaffron-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fsaffron-react-native.jpg" alt="React Native apps: Saffron app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Saffron is an application inside which you can save all of your favourite recipes. After that, you can create meal plans and generate grocery lists. As a cook, you don’t need anything else.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.mysaffronapp.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;School Assistant&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fschool-assistant-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fschool-assistant-react-native.jpg" alt="React Native apps: School Assistant app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;School Assistant is a free application for students to track their assignments, manage their schedule, check Google Classroom, and more.&lt;/p&gt;

&lt;p&gt;App features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dashboard&lt;/li&gt;
&lt;li&gt;Assignments and Tests&lt;/li&gt;
&lt;li&gt;Schedule&lt;/li&gt;
&lt;li&gt;Resources&lt;/li&gt;
&lt;li&gt;Widgets&lt;/li&gt;
&lt;li&gt;Google Classroom&lt;/li&gt;
&lt;li&gt;Document Scanner&lt;/li&gt;
&lt;li&gt;Online Learning&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.sunapps.org/schoolassistant" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Spendee&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fspendee-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fspendee-react-native.jpg" alt="React Native apps: Spendee app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Spendee is a personal finance management application (more than 3 million downloads) that helps its users with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tracking cash flow – user need to connect bank accounts and e-wallets&lt;/li&gt;
&lt;li&gt;Understand their finance habits – app analyses where the money goes and where they come from&lt;/li&gt;
&lt;li&gt;Making their spending stress-free – spending limits and smart budgets don’t allow for overspending&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.spendee.com/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Stillwhite&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fstillwhite-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fstillwhite-react-native.jpg" alt="React Native apps: Stillwhite app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Stillwhite is the largest online wedding dress marketplace globally, thanks to which you can find your dream wedding dress and save up to 90%.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.stillwhite.com" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;StreetCred&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fstreetcard-react-native.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpagepro.co%2Fblog%2Fwp-content%2Fuploads%2F2021%2F03%2Fstreetcard-react-native.jpg" alt="React Native apps: StreetCred app screenshots"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;StreetCred is a mobile game where its users compete against each other to map a city. The winner is a player that marked the biggest number of places.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.streetcred.co/" rel="noreferrer noopener nofollow"&gt;Link to the website&lt;/a&gt;&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>mobile</category>
    </item>
    <item>
      <title>React Native and Firebase Dynamic Links</title>
      <dc:creator>tomgrabski</dc:creator>
      <pubDate>Tue, 06 Jul 2021 14:55:03 +0000</pubDate>
      <link>https://dev.to/pagepro_agency/react-native-and-firebase-dynamic-links-1gch</link>
      <guid>https://dev.to/pagepro_agency/react-native-and-firebase-dynamic-links-1gch</guid>
      <description>&lt;h2&gt;What are Dynamic Links?&lt;/h2&gt;

&lt;p&gt;Firebase Dynamic Links allow you to make a single link that can be handled on all devices, whether a user opens it on a desktop or a mobile phone. In the case of mobile phones, our app doesn't even have to be installed! &lt;/p&gt;

&lt;p&gt;When a user opens a link without an app installed, he will be redirected to App Store/Google Play to install it. Our link can still be handled by the app when it is launched for the first time. This greatly increases the accessibility and the number of installs of our app because users can get the app "directly" from a link.&lt;/p&gt;

&lt;h2&gt;Why do I need it?&lt;/h2&gt;

&lt;p&gt;Let's say that you want to invite users to install your app with a promo code. You could send promo codes to users, and then they have to copy this code after signing up. It may seem like not much but this is an additional action the user has to take. And the more user has to do along the way, the higher the chance he won't do it at all. &lt;/p&gt;

&lt;p&gt;Thanks to Dynamic Links, you can send a promo code in the form of a link. It will allow users to install the app if they don't have it installed and automatically apply the code, so the users only need to sign up. This way, we minimize the effort users have to take and maximize the chance they will install our app!&lt;/p&gt;

&lt;p&gt;There are many more use cases like allowing users to share content between them or even deeply integrating your app with your website – the same URL can either open your webpage or open your app. Possibilities are essentially limitless, and they make your app more appealing to the user.&lt;/p&gt;

&lt;h2&gt;How to get started?&lt;/h2&gt;

&lt;p&gt;First, we have to create a new project on Firebase or use existing if you already have one. I created a project called "dynamic-links-example". After you create your project and get into the Firebase console, you can find dynamic links under the "Engage" tab on left navigation menu. We can create a new URL prefix for our links by clicking the "Get started" button.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M6s_45fN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M6s_45fN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-2.png" alt="Add URL prefix option in Firebase"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After creating a domain, you should see a page like the one below. I created a domain called &lt;em&gt;exampledomain000.page.link&lt;/em&gt; that Google provides. If you have your own domain, you can add it here too.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--egUQnOfq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--egUQnOfq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-4.png" alt="Creating Firebase Dynamic Links menu"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From this moment, we can create our dynamic links. There are two main ways of creating a dynamic link. You can either create them using the Firebase console by clicking "New Dynamic Link" button or generate them in your application.&lt;/p&gt;

&lt;p&gt;Creating your links with the first method is mostly used when you want to share something with your users – a promo code, for example. The second option is used when you want to add custom parameters that can be different with each link. These links won't be visible in your Firebase console. &lt;/p&gt;

&lt;p&gt;To create such links, we first need to add a pattern so we will be protected from phishing attacks. To add a pattern click on the dropdown next to the "New Dynamic Link" button and select "Allowlist URL pattern".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dgtHPlx3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dgtHPlx3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-5.png" alt="Creating a New Dynamic Links"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I created a pattern that allows all links that look like "https://dynamic-links-example.com/&amp;lt;any-params-here&amp;gt;". Keep in mind that we added "&lt;code&gt;.*"&lt;/code&gt; at the end. It allows us to add any params that we want to our links. For more details about how Regular Expressions work, check &lt;a href="https://github.com/google/re2/wiki/Syntax" rel="noreferrer noopener nofollow"&gt;this link&lt;/a&gt;.&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xJZ5V0VF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xJZ5V0VF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-6.png" alt="Allowlist URL pattern screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Adding Firebase Dynamic Links to our app&lt;/h2&gt;

&lt;p&gt;After we are done with preparing firebase to handle our links, we can proceed to the next step. Which is adding &lt;code&gt;@react-native-firebase/dynamic-links&lt;/code&gt; to our app. I will assume that you already have Firebase configured in your app. If not, please refer to this &lt;a href="https://rnfirebase.io/" rel="noreferrer noopener nofollow"&gt;guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;First, we need to install a module mentioned above.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;yarn add @react-native-firebase/dynamic-links

# if you are using npm
npm install @react-native-firebase/dynamic-links

# if you are developing app for ios
cd ios/ &amp;amp;&amp;amp; pod install&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Configuring iOS&lt;/h3&gt;

&lt;p&gt;Before we can start with configuring our iOS app to handle dynamic links, we need to have an Apple Developer account. Then we can create a provisioning profile for our app, and it has to have "Associated Domains" capability. &lt;/p&gt;

&lt;p&gt;To check if your provisioning profile has this capability, click on the "i" icon next to your provisioning profile under the "Signing &amp;amp; Capabilities" tab in Xcode and check if there is a capability called "Associated Domains".&lt;br&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yOk4nOPj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yOk4nOPj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-7.png" alt="Signing and Capabilities tap in Xcode"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When we have this capability in our provisioning profile, we can add it to our app by clicking the "+ Capability" button and selecting the "Associated Domains". Now we should see a new tab where we can add our domain. In our case, it should look like "applinks:exampledomain000.page.link".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yrgaQb4a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yrgaQb4a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/image-8.png" alt="Associated Domains tab"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At this stage our iOS app is ready to receive dynamic links.&lt;/p&gt;

&lt;h3&gt;Configuring Android&lt;/h3&gt;

&lt;p&gt;To make our Android app handle Dynamic Links, we need to add an intent filter inside our MainActivity in the AndroidManifest.xml file.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;        &amp;lt;intent-filter android:autoVerify="true"&amp;gt;
            &amp;lt;action android:name="android.intent.action.VIEW"/&amp;gt;
            &amp;lt;category android:name="android.intent.category.DEFAULT"/&amp;gt;
            &amp;lt;category android:name="android.intent.category.BROWSABLE"/&amp;gt;
            &amp;lt;data android:host="exampledomain000.page.link" android:scheme="http"/&amp;gt;
            &amp;lt;data android:host="exampledomain000.page.link" android:scheme="https"/&amp;gt;
        &amp;lt;/intent-filter&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Generating Dynamic Links&lt;/h2&gt;

&lt;p&gt;After all this configuration, we are finally ready to generate some links in our app. It is important that our &lt;code&gt;link&lt;/code&gt; param is compatible with the URL pattern we made in the Firebase. Otherwise, it will be blocked.&lt;/p&gt;

&lt;p&gt;You can use two functions to generate links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;buildLink()&lt;/strong&gt; – generates a link where all params are fully visible&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;buildShortLink()&lt;/strong&gt; – generates shortened link where parameters are hidden&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both functions take the same params to build a link. Below there is an example of using &lt;code&gt;buildShortLink()&lt;/code&gt;.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;const generateLink = async (param, value) =&amp;gt; {
  const link = await firebase.dynamicLinks().buildShortLink({
    link: `&amp;lt;your_link&amp;gt;/?${param}=${value}`,
    ios: {
      bundleId: &amp;lt;bundle_id&amp;gt;,
      appStoreId: &amp;lt;appstore_id&amp;gt;,
    },
    android: {
      packageName: &amp;lt;package_name&amp;gt;,
    },
    domainUriPrefix: 'https://exampledomain000.page.link',
  });

  return link;
}&lt;/code&gt;&lt;/pre&gt;

&lt;h2&gt;Handling Dynamic Links in app&lt;/h2&gt;

&lt;p&gt;Finally, we are ready to handle dynamic links inside our &lt;a href="https://pagepro.co/react-native-development.html" rel="noreferrer noopener"&gt;React Native&lt;/a&gt; code. There are two cases when our app can get a dynamic link:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The app was not running and has been launched by a dynamic link&lt;/li&gt;
&lt;li&gt;The app has been launched in the background and is now moved to the foreground after receiving a dynamic link &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To handle the first scenario, we use the getInitialLink() method, which allows us to get a link that has launched our app. We can use this method anywhere in our app, and it will return the same link until the app is restarted or launched from a different link.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import {firebase} from '@react-native-firebase/dynamic-links';

const getAppLaunchLink = async () =&amp;gt; {
  try {
    const {url} = await firebase.dynamicLinks().getInitialLink();
    //handle your link here
  } catch {
    //handle errors
  }
};&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Second scenario is handled by a listener like this:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import {firebase} from '@react-native-firebase/dynamic-links';

const unsubscribeDynamicLinks = firebase.dynamicLinks().onLink(({url}) =&amp;gt; {
  //handle your url here
});

//remember to unsubscribe when you dismiss your component to prevent memory leaks
unsubscribeDynamicLinks();&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;And that's all! Now you can create, send and properly handle dynamic link with your users. And they can, too. :)&lt;/p&gt;

&lt;h2&gt;Final notes&lt;/h2&gt;

&lt;p&gt;Firebase Dynamic Links can add a lot to your app, which helps users interact and share data with others by sharing links more easily. These links preserve data even when they were launched before installing the app.&lt;/p&gt;

&lt;p&gt;It also gives you the possibility to integrate with your website to add an option to open the same link on a web browser or app.  And all of this with not much work needed.&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>firebase</category>
      <category>mobile</category>
    </item>
    <item>
      <title>How to Take Care of Data Security in React Native?</title>
      <dc:creator>tomgrabski</dc:creator>
      <pubDate>Tue, 29 Jun 2021 13:02:12 +0000</pubDate>
      <link>https://dev.to/pagepro_agency/how-to-take-care-of-data-security-in-react-native-230p</link>
      <guid>https://dev.to/pagepro_agency/how-to-take-care-of-data-security-in-react-native-230p</guid>
      <description>&lt;p&gt;It’s impossible nowadays to build software that is 100% secure. The probability of being a victim of an attack or being exposed to a security vulnerability is proportional to the effort developers put into protecting the applications created i.e. in React Native against any attacks.&lt;/p&gt;

&lt;p&gt;Building a mobile app is not only about creating screens, making fancy animations and processing data from the API. One of the biggest challenges in the development process is security. Also, it is one of the most often overlooked aspects when building software.&lt;/p&gt;

&lt;p&gt;When you want to build a secure &lt;a href="https://pagepro.co/react-native-development.html" rel="noreferrer noopener"&gt;React Native&lt;/a&gt; app, you need to pay attention to many factors. It may require some understanding of iOS and Android native platforms and general security rules in terms of programming. &lt;/p&gt;

&lt;p&gt;So, what can you do to make your React Native application more secure?&lt;/p&gt;

&lt;h2&gt;
&lt;br&gt;&lt;br&gt;Environmental variables&lt;/h2&gt;

&lt;p&gt;Environmental variables allow you to separate secrets from your source code. It is very useful when you have some API keys or other credentials that you may not want to share with other people. If you are building an open-source project, you can share source code while allowing other people to create their .env file.&lt;/p&gt;

&lt;p&gt;It’s also very useful when you want to configure your app dynamically without changing the source code. For example, you can set different database URLs for each environment.&lt;/p&gt;

&lt;p&gt;But it all makes sense only if you won’t forget to add the .env files to your .gitignore! Otherwise, you may end up with unauthorised access to many services your app is relying on. If you use Google a bit, you will find tons of stories of people losing money or data because of the secrets exposed on the repository.&lt;/p&gt;

&lt;p&gt;How to correctly manage environmental variables in React Native? You can use one of the popular libraries out there, like react-native-dotenv. It’s really easy to integrate that library with your project and make your secrets safe!&lt;/p&gt;

&lt;h2&gt;
&lt;br&gt;&lt;br&gt;Storing sensitive data&lt;/h2&gt;

&lt;p&gt;For persisted user data, you need to choose the right type of storage based on its sensitivity. You may need to use this data for offline support or save users’ access tokens, so they wouldn’t have to re-authenticate each time they use the app. &lt;/p&gt;

&lt;p&gt;One of the most popular modules for storing data in React Native is &lt;strong&gt;Async Storage&lt;/strong&gt;. The question is: is it secure enough, too?&lt;/p&gt;

&lt;h3&gt;Async Storage&lt;/h3&gt;

&lt;p&gt;Async Storage is an unencrypted and persistent key-value storage, which is available across the application. It is not shared between apps – each application has its sandbox environment and has no access to data from other apps.&lt;/p&gt;

&lt;p&gt;More than that, it's a good idea for storing non-sensitive data across the application. It might be a &lt;a href="https://redux.js.org/" rel="noreferrer noopener nofollow"&gt;Redux&lt;/a&gt; or &lt;a href="https://graphql.org/" rel="noreferrer noopener nofollow"&gt;GraphQL&lt;/a&gt; state or some global app-wide variables. On the other hand, you shouldn’t use that for storing tokens and secrets, as the storage is not encrypted in any way. &lt;/p&gt;

&lt;p&gt;You probably started wondering about any more secure alternatives for Async Storage. The good news is that if you need some encryption, you can use &lt;strong&gt;Secure Store&lt;/strong&gt;!&lt;/p&gt;

&lt;h3&gt;Secure Store&lt;/h3&gt;

&lt;p&gt;React Native itself does not come bundled with any kind of storage for sensitive data. However, there are some pre-existing solutions available. For iOS, there are Keychain Services, which allow storing small chunks of sensitive data securely. If you are wondering where to store tokens, passwords, and any other information – it’s the right place. Android has its equivalent called Shared Preferences.&lt;/p&gt;

&lt;p&gt;In order to use Keychain Services or Shared Preferences, it is possible to use one of the available libraries:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;react-native-keychain&lt;/li&gt;
&lt;li&gt;react-native-sensitive-info&lt;/li&gt;
&lt;li&gt;react-native-secure-storage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They are very easy to implement in your project. If you are building your app with Expo, you should give expo-secure-store a try – if you have ever worked with Async Storage, the usage is pretty the same, except your data is safe!&lt;/p&gt;

&lt;p&gt;What are some other pros of using Secure Store? Except for the obvious one (encryption), you may appreciate some other facts: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The device must be unlocked to get access to the keychain.&lt;/li&gt;
&lt;li&gt;It is not possible to restore the keychain to a different device.&lt;/li&gt;
&lt;li&gt;In newer devices, encryption keys are stored on the hardware level rather than on the app level.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
&lt;br&gt;&lt;br&gt;SSL pinning&lt;/h2&gt;

&lt;p&gt;Even if you are using HTTPS endpoints, your data may be still vulnerable to interception. SSL pinning is a technique that can be used on the client-side to avoid man-in-the-middle attacks. It works by embedding a list of trusted certificates to the client during development. Only requests signed with one of the trusted certificates will be accepted, and any self-signed certificates won’t.&lt;/p&gt;

&lt;p&gt;You should keep in mind that fetch and axios do not come with SSL pinning. To make it work in your app, you should consider using one of two libraries:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;react-native-ssl-pinning&lt;/li&gt;
&lt;li&gt;react-native-pinch&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They are both easy to implement, using OkHttp3 on Android and AFNetworking on iOS to provide SSL pinning and cookie handling. The certificates need to be bundled inside the app.&lt;/p&gt;

&lt;p&gt;When using SSL pinning, you should always remember about certificates expiration. They expire every 1-2 years, and you have to update them in the app and the server. Otherwise, if the certificate on the server has been updated, all the apps with the old certificates will stop working correctly. &lt;/p&gt;

&lt;h2&gt;
&lt;br&gt;&lt;br&gt;Prevent access for rooted devices&lt;/h2&gt;

&lt;p&gt;There are many reasons people are rooting/jailbreaking their phones. If your app is working with some very sensitive data, you should consider protecting it with identification whether the device is rooted or not. These kinds of devices may gain unauthorised access to the data you are storing in your app.&lt;/p&gt;

&lt;p&gt;To protect your app, you can use a library called jail-monkey. With just a few lines of code, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identify if a phone has been jail-broken or rooted for iOS/Android,&lt;/li&gt;
&lt;li&gt;Detect if the device is faking its GPS location&lt;/li&gt;
&lt;li&gt;Detect if the application is running on external storage such as an SD card (Android only)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Banking apps make a good example – they are working with financial data, so most of them are not working on rooted devices.&lt;/p&gt;

&lt;h2&gt;
&lt;br&gt;&lt;br&gt;Conclusions&lt;/h2&gt;

&lt;p&gt;It is challenging to create a bulletproof mobile app using React Native. However, if we put a little bit of effort and pay more attention to vulnerabilities, we can significantly reduce the possibility of a security breach. We should remember about security not only at the beginning of the project but at every stage, keeping in mind the bigger codebase, the bigger possibility of a security breach.&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>security</category>
      <category>mobile</category>
    </item>
    <item>
      <title>What is Saleor eCommerce: Platform Introduction</title>
      <dc:creator>tomgrabski</dc:creator>
      <pubDate>Tue, 22 Jun 2021 13:02:26 +0000</pubDate>
      <link>https://dev.to/pagepro_agency/what-is-saleor-ecommerce-platform-introduction-115n</link>
      <guid>https://dev.to/pagepro_agency/what-is-saleor-ecommerce-platform-introduction-115n</guid>
      <description>&lt;h2&gt;Introduction&lt;/h2&gt;

&lt;p&gt;Owning an online store seems to be a challenge nowadays. The progressing digital transformation and the trend of moving business online accelerated as the world’s situation changed dramatically in the last twelve months. Such a situation also changed the way people do the shopping and raised their expectations.&lt;/p&gt;

&lt;p&gt;These two things combined led to more significant demand for modern solutions in the eCommerce industry. Owners of online stores want their customers to have a better shopping experience delivered faster than ever before with many features simplifying or making the whole buying process more pleasing.&lt;/p&gt;

&lt;p&gt;Such solutions include &lt;a href="https://pagepro.co/blog/what-is-headless-ecommerce-all-questions-answered/" rel="noreferrer noopener"&gt;headless eCommerce&lt;/a&gt; platforms like Saleor. Keep reading to find out answers to questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is Saleor?&lt;/li&gt;
&lt;li&gt;When to use Saleor?&lt;/li&gt;
&lt;li&gt;How Saleor help you sell more?&lt;/li&gt;
&lt;li&gt;What are the benefits of Saleor as a PWA?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;More than that, you will have a better understanding of its core functionalities, and you may get inspired by a few Saleor eCommerce stores.&lt;/p&gt;

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

&lt;p&gt;Saleor is a headless e-commerce platform for delivering blazingly fast, dynamic and personalised shopping experiences. It enables you to create great-looking online stores which have all the features modern webshop should have. Take advantage of an admin dashboard to manage products, people, and functionalities. You can use Saleor whether you are a small, midsize or enterprise-level retailer with a physical or digital inventory.&lt;/p&gt;

&lt;p&gt;If you decide to use Saleor, your webshop will be available as both a &lt;strong&gt;typical online store&lt;/strong&gt; and as a &lt;strong&gt;PWA application&lt;/strong&gt;. The latter means that your customers will be able to browse the store offer and &lt;strong&gt;do shopping offline&lt;/strong&gt; and with no internet connection. &lt;/p&gt;

&lt;p&gt;Saleor is an open-source platform written with Python, React, Django and GraphQL. If you need more technical information, just check out their &lt;a href="https://docs.saleor.io/docs/developer" rel="noreferrer noopener nofollow"&gt;developer documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Saleor offers:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Ability to use your favourite tools&lt;/strong&gt; – you can integrate Saleor with favourite tools you already use like CRM, CMS or fulfilment API thanks to GraphQL API.&lt;/li&gt;&lt;/ul&gt;





&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Front-end freedom&lt;/strong&gt; – you can either use the default PWA storefront, JavaScript SDK or build a client from scratch in the language or platform you prefer. In other words, you can decouple the front-end layer from business logic.&lt;/li&gt;&lt;/ul&gt;





&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Flexible products&lt;/strong&gt; – you can set up products as they are and integrate them with accounting and inventory management systems. Some of product configuration options:&lt;ul&gt;
&lt;li&gt;Product bundles (this option will be available in 2021) – it allows you to sell individual goods or services as mixed and complementary packages&lt;/li&gt;
&lt;li&gt;Groups – this feature will make your online store more intuitive and easier to browse through thanks to grouped products&lt;/li&gt;
&lt;li&gt;Configurations – it doesn’t matter what you sell because Saleor helps you by providing the flexibility of products configuration&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Possibility of going global from the day one&lt;/strong&gt; – with Saleor you can sell wherever you want to thanks to:&lt;ul&gt;
&lt;li&gt;Multi-channel/Multicurrency – you can create customised sales channels with different currencies, pricing and product availability&lt;/li&gt;
&lt;li&gt;Multilanguage – at the moment Saleor supports more than 30 languages&lt;/li&gt;
&lt;li&gt;Multi-warehouse – possibility to assign particular warehouses to shipping zones allows for automatic calculation of available products depending on local stock levels&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;When to use Saleor eCommerce platform?&lt;/h2&gt;

&lt;p&gt;As a modern eCommerce platform, Saleor offers various features and functionalities (described later in this article) that help businesses achieve different business goals. However, these goals can be achieved with other eCommerce platforms as well, so the question is: when Saleor exceptionally shines?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When WooCommerce or PrestaShop is no longer enough for you&lt;/li&gt;
&lt;li&gt;You are looking for a Magento 1 alternative (note: since June 2020 Magento 1 Open Source is no longer supported)&lt;/li&gt;
&lt;li&gt;When Shopify is not sufficient, but you don’t want to pay for Shopify Plus&lt;/li&gt;
&lt;li&gt;You have in-house Python and React competences&lt;/li&gt;
&lt;li&gt;When you want to build a &lt;a href="https://pagepro.co/blog/multi-tenant-ecommerce-platform-in-three-months/" rel="noreferrer noopener"&gt;multi-tenant platform&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Why choose Saleor?&lt;/h2&gt;

&lt;p&gt;All the things mentioned above wouldn’t be possible without a few things Saleor provides to its users. These include:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Blazing speed &lt;/strong&gt;– page speed and performance are crucial Google ranking factors and reasons why customers choose (or not) a particular online store. Saleor helps you delight users with a shopping experience that loads in a blink of an eye.&lt;/li&gt;&lt;/ul&gt;





&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;SEO efficiency&lt;/strong&gt; – the front-end layer in Saleor shops is static, and Google favours static pages as they are fast, light and easy to scan for robots.&lt;/li&gt;&lt;/ul&gt;





&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Accessibility on any device&lt;/strong&gt; – your online store will work seamlessly on all devices and screen sizes.&lt;/li&gt;&lt;/ul&gt;





&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Rich user experience&lt;/strong&gt; – having a good offer isn’t good enough, and creating a custom user experience is one of the things that can give you a competitive advantage. Experiment with your design without compromising the page load speed.&lt;/li&gt;&lt;/ul&gt;





&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Instant changes&lt;/strong&gt; – once the developer makes changes, these will be visible to the customers.&lt;/li&gt;&lt;/ul&gt;





&lt;ul&gt;&lt;li&gt;
&lt;strong&gt;Safety&lt;/strong&gt; – on the contrary to dynamic pages, static ones (the front-end layer of Saleor’s webshop are static) have no direct connection to the database, dependencies, user data, or other sensitive information. Your customers’ data is safe.&lt;/li&gt;&lt;/ul&gt;





&lt;h2&gt;Benefits of Saleor as a PWA application&lt;/h2&gt;





&lt;p&gt;As already mentioned, a webshop built with Saleor acts as both a typical online store and a PWA application. Now, let’s take a closer look at the latter, but instead of writing down its definition, it’s better to focus on the real benefits it provides.&lt;/p&gt;





&lt;h3&gt;Possibility to sell anywhere, anytime, and on any device&lt;/h3&gt;





&lt;ol&gt;
&lt;li&gt;Design of Saleor’s online stores is 100% responsive and adapts to any device.&lt;/li&gt;
&lt;li&gt;Browsing and buying are possible, both online and offline.&lt;/li&gt;
&lt;li&gt;Push notifications make it possible to mix online and in-store experiences.&lt;/li&gt;
&lt;/ol&gt;





&lt;h3&gt;Higher customer engagement&lt;/h3&gt;





&lt;p&gt;Thanks to PWA, your online store will be more effective and engaging for your customers. Just look at the numbers below.&lt;/p&gt;





&lt;p&gt;Choosing Saleor results in:&lt;/p&gt;





&lt;ul&gt;
&lt;li&gt;20% lower bounce rates&lt;/li&gt;
&lt;li&gt;25% higher page views&lt;/li&gt;
&lt;li&gt;80% quicker time to checkout&lt;/li&gt;
&lt;li&gt;9% increase in revenue per visit&lt;/li&gt;
&lt;li&gt;2.8x greater conversion rate&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Lower development costs&lt;/h3&gt;

&lt;p&gt;Statistics are merciless – 80% of applications will be uninstalled within a week. So why spend money on something people won’t be using? With Saleor you don’t have to spend money on building a separate mobile application because your online store will work as a PWA application which doesn’t require installation.&lt;/p&gt;

&lt;h2&gt;Core Saleor eCommerce functionalities&lt;/h2&gt;

&lt;p&gt;Saleor combines ready-to-use elements and powerful integrations to let you create customised shopping experiences for your customers. These can be built on top of the GraphQL API, which makes everything much easier and faster.&lt;/p&gt;

&lt;p&gt;Now, let’s explore Saleor’s core functionalities.&lt;/p&gt;

&lt;h3&gt;Saleor Storefront&lt;/h3&gt;

&lt;h4&gt;No front-end limitations&lt;/h4&gt;

&lt;p&gt;There are no limitations of how your store’s front-end can look like – &lt;a href="https://pagepro.co/custom-storefront-for-headless-ecommerce.html" rel="noreferrer noopener"&gt;design and build a Saleor storefront&lt;/a&gt; with the technology of your choice.&lt;/p&gt;

&lt;h4&gt;SDK&lt;/h4&gt;

&lt;p&gt;Connecting to the API is effortless.&lt;/p&gt;

&lt;h4&gt;Total customisation&lt;/h4&gt;

&lt;p&gt;You can either use a pre-made PWA template or simple front-end SDK to make your online store look the way you want.&lt;/p&gt;

&lt;h4&gt;Multi-device accessibility&lt;/h4&gt;

&lt;p&gt;Save money on building a separate mobile application as your online store will work well on any device, both as a typical online store and as a PWA application.&lt;/p&gt;

&lt;h4&gt;Constant UX optimisation&lt;/h4&gt;

&lt;p&gt;Creating user experience (UX) once is not enough – improve it continuously with A/B testing.&lt;/p&gt;

&lt;h4&gt;&lt;a href="https://pagepro.co/custom-storefront-for-headless-ecommerce.html" rel="noreferrer noopener"&gt;Headless development&lt;/a&gt;&lt;/h4&gt;

&lt;p&gt;Work separately on the frontend and backend thanks to decoupling them.&lt;/p&gt;

&lt;h3&gt;Powerful product configuration&lt;/h3&gt;

&lt;h4&gt;Flexible product types&lt;/h4&gt;

&lt;p&gt;Your inventory can contain both digital and physical products with multiple variants that are easy to configure.&lt;/p&gt;

&lt;h4&gt;Unlimited product attributes&lt;/h4&gt;

&lt;p&gt;Sell products of different types that can have different attributes depending on what you need. In other words, Saleor adapts to your inventory – not the other way around.&lt;/p&gt;

&lt;h4&gt;Product bundles and collections&lt;/h4&gt;

&lt;p&gt;Create product bundles and collections by grouping similar or complementary products to increase revenue per order.&lt;/p&gt;

&lt;h4&gt;SEO optimisation&lt;/h4&gt;

&lt;p&gt;Take care of organic traffic by creating SEO-optimised content for products, collections, and categories.&lt;/p&gt;

&lt;h4&gt;Multi-warehouse inventory&lt;/h4&gt;

&lt;p&gt;Manage multiple locations seamlessly by tracking stock levels, editing multiple products at once and checking items that aren’t available anymore.&lt;/p&gt;

&lt;h4&gt;CSV import and export&lt;/h4&gt;

&lt;p&gt;Saleor makes it possible to import and export any product data to Google and Excel.&lt;/p&gt;

&lt;h3&gt;Internationalisation and localisation&lt;/h3&gt;

&lt;h4&gt;Multi-language&lt;/h4&gt;

&lt;p&gt;Saleor already offers more than 30 languages.&lt;/p&gt;

&lt;h4&gt;Translations module&lt;/h4&gt;

&lt;p&gt;Translate dynamic content in the dashboard to create different language versions if you need them.&lt;/p&gt;

&lt;h4&gt;Localised data&lt;/h4&gt;

&lt;p&gt;Saleor takes advantage of geolocation – it checks your location and matches it with the location of your customers. This way, you can sell both locally and globally.&lt;/p&gt;

&lt;h4&gt;Global support&lt;/h4&gt;

&lt;p&gt;Whether you are in Europe or the US, Saleor supports you in building better shopping experiences.&lt;/p&gt;

&lt;h4&gt;Global taxes&lt;/h4&gt;

&lt;p&gt;Thanks to integrations with Avalara and Vatlayer, tax calculations in major markets are covered.&lt;/p&gt;

&lt;h3&gt;Data-driven marketing and sales&lt;/h3&gt;

&lt;h4&gt;Tracking sales history and metrics&lt;/h4&gt;

&lt;p&gt;Track performance by viewing individual or multiple sales numbers in real-time or past time.&lt;/p&gt;

&lt;h4&gt;Experimentation&lt;/h4&gt;

&lt;p&gt;Use data and A/B tests to optimise your store and its user experience.&lt;/p&gt;

&lt;h4&gt;Upselling with machine learning&lt;/h4&gt;

&lt;p&gt;Saleor offers machine learning tools to generate more revenue through upselling. It delivers not only a better shopping experience but also a higher average order value.&lt;/p&gt;

&lt;h3&gt;Modern, PWA storefront&lt;/h3&gt;

&lt;h4&gt;High performance and speed&lt;/h4&gt;

&lt;p&gt;PWA is the fastest technology that any eCommerce store can use. Forget about Magento load times and buffering once and for all.&lt;/p&gt;

&lt;h4&gt;Enhanced SEO&lt;/h4&gt;

&lt;p&gt;Take care of SEO by editing all essential aspects of your online store, like URLs, metatags and Open Graph. These are things that are important for higher organic traffic which means new customers.&lt;/p&gt;

&lt;h4&gt;Quick product search&lt;/h4&gt;

&lt;p&gt;Integrate your online store with Elasticsearch so your customer can quickly browse through the store.&lt;/p&gt;

&lt;h3&gt;Order management&lt;/h3&gt;

&lt;h4&gt;Shipping freedom&lt;/h4&gt;

&lt;p&gt;Give customers the possibility to choose their favourite carrier or delivery method. You can also set different rates for each option depending on a shopping zone, price, or weight. Tracking info can be added to every item.&lt;/p&gt;

&lt;h4&gt;Customer profiles&lt;/h4&gt;

&lt;p&gt;Get a bigger picture of your customer base by creating individual profiles for each customer.&lt;/p&gt;

&lt;h4&gt;Solve different issues easily&lt;/h4&gt;

&lt;p&gt;If there are some problems with inventory or customer service, you can try to solve them by creating dummy or actual orders.&lt;/p&gt;

&lt;h4&gt;Refunds and returns&lt;/h4&gt;

&lt;p&gt;Manage refunds and returns easily in one place on the order fulfilment page.&lt;/p&gt;

&lt;h3&gt;Cart and checkout&lt;/h3&gt;

&lt;h4&gt;Payment integration&lt;/h4&gt;

&lt;p&gt;Use global providers like Paypal, Braintree or Stripe to collect payments.&lt;/p&gt;

&lt;h4&gt;Sales and vouchers&lt;/h4&gt;

&lt;p&gt;Increase conversion rate by creating sales and vouchers.&lt;/p&gt;

&lt;h4&gt;Abandoned checkouts&lt;/h4&gt;

&lt;p&gt;Remind customers about abandoned carts as the Saleor online store saves such information.&lt;/p&gt;

&lt;h4&gt;Customise carts and checkouts&lt;/h4&gt;

&lt;p&gt;Modify the checkout process according to your needs and data.&lt;/p&gt;

&lt;h3&gt;Back office&lt;/h3&gt;

&lt;h4&gt;Staff management&lt;/h4&gt;

&lt;p&gt;Invite staff members and assign privileges and roles to them.&lt;/p&gt;

&lt;h4&gt;Authentication keys&lt;/h4&gt;

&lt;p&gt;Make it possible to log in through Google and Facebook to prevent unwanted access to the admin dashboard. Use authentication keys for that.&lt;/p&gt;

&lt;h4&gt;GDPR compliance&lt;/h4&gt;

&lt;p&gt;Make your store comply with GDPR or other laws to make sure your customers feel safe about their personal data.&lt;/p&gt;

&lt;h4&gt;Google Analytics integration&lt;/h4&gt;

&lt;p&gt;Measure and analyse traffic to your online store thanks to Google Analytics so you can check who your customers are and how they behave.&lt;/p&gt;

&lt;h4&gt;Manage your pages&lt;/h4&gt;

&lt;p&gt;Adding new content like articles or additional pages is easy as pie.&lt;/p&gt;

&lt;h2&gt;Examples of Saleor eCommerce shops&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Rzshdg5z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh4.googleusercontent.com/4xA65YGCFjrHj1drOJGyM0vC2KVul-kpgm_I0ikT5F2V33TxgO-mvpT48ujuMziu2Ci4v3MH0eETeKZcK7a7KwcS3h2HAvRe0bw93-ELF3RjuuQDnWWSEEYdooYPuwgZPlU6xtIz" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Rzshdg5z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh4.googleusercontent.com/4xA65YGCFjrHj1drOJGyM0vC2KVul-kpgm_I0ikT5F2V33TxgO-mvpT48ujuMziu2Ci4v3MH0eETeKZcK7a7KwcS3h2HAvRe0bw93-ELF3RjuuQDnWWSEEYdooYPuwgZPlU6xtIz" alt="Roomlab homepage screenshot"&gt;&lt;/a&gt;&lt;a href="https://roomlab.co.uk/" rel="noreferrer noopener nofollow"&gt;&lt;/a&gt;&lt;a href="https://roomlab.co.uk/"&gt;https://roomlab.co.uk/&lt;/a&gt;&lt;/p&gt;








&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hC46nY14--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh4.googleusercontent.com/fxagWq0mMCOiGBznoELFtnnUOEgfQRLMJTL8lJMD0FvnR1gvuB-AOZ_C1rVbnbQWHXTBsxSNx8YU4KUCKX9pQCqs_whNcwgT6soL4RJteGTp_2Y6UCiqoWERE5B9ztQivq-V_79L" alt="Patch homepage screenshot"&gt;&lt;a href="https://www.patchplants.com/gb/en/" rel="noreferrer noopener nofollow"&gt;https://www.patchplants.com/&lt;/a&gt;





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

&lt;ul&gt;&lt;li&gt;Sales increase consistently at 30% per month&lt;/li&gt;&lt;/ul&gt;








&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PlPVAnUz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh3.googleusercontent.com/KvyWLZtGHQiR36-kChuCEhR8R5RuQo723D2xqJjB3i9ZMAQk3cS8nd7wsLS4cfa_utRq_hCQO6woTprrhxIKG9h_PWUglZnQtmpH9cABsR5gmncNlBxlT7Pe7aCxGCNoK7I8Adet" alt="Pretty Green homepage screenshot"&gt;&lt;a href="https://www.prettygreen.com/" rel="noreferrer noopener nofollow"&gt;https://www.prettygreen.com/&lt;/a&gt;





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

&lt;ul&gt;
&lt;li&gt;+1% improvement in eCommerce conversion&lt;/li&gt;
&lt;li&gt;+5.55% improvement in average order value&lt;/li&gt;
&lt;li&gt;+6,25% improvement in product recommendation clicks&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>saleor</category>
      <category>ecommerce</category>
    </item>
    <item>
      <title>React Native Pros and Cons in 2021</title>
      <dc:creator>tomgrabski</dc:creator>
      <pubDate>Tue, 15 Jun 2021 12:06:54 +0000</pubDate>
      <link>https://dev.to/pagepro_agency/react-native-pros-and-cons-in-2021-1kcj</link>
      <guid>https://dev.to/pagepro_agency/react-native-pros-and-cons-in-2021-1kcj</guid>
      <description>&lt;p&gt;I see web and mobile development technologies on a crazy race to improve their performance each and every year.&lt;/p&gt;

&lt;p&gt;Obviously, that’s great news. Development is becoming faster and easier to execute, cheaper to implement, more user-friendly with less effort, and so on. We live in great times – implementing a business idea has never been easier and technology is opening the doors of imagination wider than ever before.&lt;/p&gt;

&lt;p&gt;For example, let’s take a look at mobile development. Everybody wants to build an app, and everybody wants to use them (according to stats, users downloaded 178.1 billion mobile apps to their smart devices by the start of 2018).  &lt;/p&gt;

&lt;p&gt;But until recently, creating an app was very time and cost-consuming. And before going to the market, budgets could evaporate and so could the entire project. To avoid that, businesses started to look for alternatives, and they found cross-platform development with React Native at the head as a great solution.&lt;/p&gt;

&lt;p&gt;Today, you will learn about the pros and cons of React Native, and you will be in a much better position to make an informed decision about adding React Native to your tech stack.&lt;/p&gt;

&lt;h2&gt;
&lt;br&gt;&lt;br&gt;&lt;strong&gt;What is React Native?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Meet &lt;a href="https://reactnative.dev/" rel="noreferrer noopener nofollow"&gt;React Native&lt;/a&gt; – an open-source platform created in JavaScript by Facebook. It enables you to build mobile apps for both Android and iOS. They can work on any device and still use one codebase only.&lt;/p&gt;

&lt;p&gt;RN is a perfect technology to &lt;a href="https://pagepro.co/blog/how-react-native-can-cut-your-development-costs/" rel="noreferrer noopener"&gt;save on development costs&lt;/a&gt;, yet still having truly native performance and user-experience flexibility.&lt;/p&gt;

&lt;p&gt;It has a number of great advantages, many awesome “ready-to-go” templates, the army of dedicated contributors, and a crowd of fans.&lt;/p&gt;

&lt;p&gt;Not to mention world leaders as a core users:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2FjnaPPcNW0VeLfVqcVHeJyDf-OSN2gkoWFL4ZQ-W98qV-ATTi2-5mqvOwruHLzYV-XA9d9QfW2yor6WrXgdksod3UOHngVufVRfxkE_JRgQAAlxlIY1b-HqPwuOLamUw3vbJktJKQ" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Flh3.googleusercontent.com%2FjnaPPcNW0VeLfVqcVHeJyDf-OSN2gkoWFL4ZQ-W98qV-ATTi2-5mqvOwruHLzYV-XA9d9QfW2yor6WrXgdksod3UOHngVufVRfxkE_JRgQAAlxlIY1b-HqPwuOLamUw3vbJktJKQ" alt="logos of apps built in react native" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It’s pretty much everything that technology needs to become hot and mature.&lt;/p&gt;

&lt;p&gt;Although, like any other platform, it has its pros and cons and shouldn’t be used to execute absolutely every single project there is. We can see more and more developers (even native ones) choosing React Native as their core mobile development technology.&lt;/p&gt;

&lt;p&gt;But it’s not the choice of developers only.&lt;/p&gt;

&lt;p&gt;Thanks to many business advantages (great performance, low production and maintenance cost, and more), it’s not a surprise that many biggest players on the market are choosing React Native as well.&lt;/p&gt;

&lt;p&gt;So what makes it so special for both businesses and developers?&lt;/p&gt;

&lt;p&gt;Let’s dive in more deeply into advantages, and meet the pros and cons of React Native.&lt;/p&gt;

&lt;h2&gt;
&lt;br&gt;&lt;br&gt;&lt;strong&gt;When to use React Native?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;To keep it short, all app makers that want their apps to work on all devices, both Android and iOS operating systems, yet still keep it all in one codebase only.&lt;/p&gt;

&lt;p&gt;Although React Native is becoming better and better in terms of performance and it seems to get closer to truly native experience, there are still many differences that we should be aware of.&lt;/p&gt;

&lt;h3&gt;&lt;strong&gt;Cross-platform vs native mobile apps&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;The most important difference between native apps and cross-platform apps is that native apps are made to work on a particular operating system. That means they can use all the blessings of that system, yet it cannot work anywhere else beside.&lt;/p&gt;

&lt;p&gt;However, RN aims to be platform-agnostic in the future, because of re-architecturing the framework. That's why there are some new things going on, like React Native Web or react-native-windows (for building apps for Windows and macOS).&lt;/p&gt;

&lt;p&gt;Although cross-platform apps have been made to work everywhere, they still lack the kind of flexibility and performance on a specific operating system that native apps have.&lt;/p&gt;

&lt;p&gt;Take an alligator and a fish. An alligator can walk and swim, but will never swim as good as a fish. On the other hand, fish cannot walk at all. So cross-platform apps are like alligators. They can swim and walk, but will never be as good at swimming, as fishes (native apps).&lt;/p&gt;

&lt;p&gt;This is why if you are planning to build a game, or something extremely demanding design-wise, you should make a comparison of cross-platform apps and native apps more closely, to decide what should be your choice, but native apps are still unconquered if it comes to performance, yet React Native is silently getting there.&lt;/p&gt;

&lt;p&gt;Just mind that performance differences are only visible in extreme cases, so if this is not absolutely crucial to your business, React Native may appear to be a much better idea from a business and development point of view.&lt;/p&gt;

&lt;p&gt;Take Shopify, and &lt;a href="https://engineering.shopify.com/blogs/engineering/react-native-future-mobile-shopify" rel="noreferrer noopener nofollow"&gt;their decision on going full gas with React Native&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;After years of native mobile development, we've decided to go full steam ahead building all of our new mobile apps using React Native.&lt;/p&gt;
&lt;cite&gt;Shopify&lt;/cite&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
&lt;br&gt;&lt;br&gt;&lt;strong&gt;React Native in 2021&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Before I go to the actual pros and cons of &lt;a href="https://pagepro.co/react-native-development.html" rel="noreferrer noopener"&gt;React Native development&lt;/a&gt; I would like to quickly stop and mention what really makes me so excited.&lt;/p&gt;

&lt;p&gt;Re-architecture announced in 2018 puts a lot of effort to make RN more performant, e.g. there is a new JS engine available – Hermes, and it makes apps running much faster on older Android devices.&lt;/p&gt;

&lt;p&gt;However, it doesn’t end there. The React Native re-architecture means the deprecation of the Bridge in favour of a new element called the &lt;a href="https://github.com/react-native-community/discussions-and-proposals/issues/91" rel="noreferrer noopener nofollow"&gt;JavaScript Interface (JSI)&lt;/a&gt;. It enables &lt;a href="https://github.com/react-native-community/discussions-and-proposals/issues/4" rel="noreferrer noopener nofollow"&gt;Fabric&lt;/a&gt; and &lt;a href="https://github.com/react-native-community/discussions-and-proposals/issues/40" rel="noreferrer noopener nofollow"&gt;TurboModules&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The JSI comes together with a few improvement that really excites me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The JS bundle is not bound to the JSC anymore as it can use any other JS engine – like Hermes.&lt;/li&gt;
&lt;li&gt;JavaScript can hold a reference to C++ Host Objects thanks to using JSI and invoke methods on them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;JSI allows for direct control over the native modules.&lt;/p&gt;

&lt;h2&gt;
&lt;br&gt;&lt;br&gt;&lt;strong&gt;React Native pros&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The list below was created to give you as most comprehensive list of React Native pros as possible and to divide them into two groups – pros from a business perspective and development perspective.&lt;/p&gt;

&lt;p&gt;If you know more React Native pros, please let me know in the comments.:&lt;/p&gt;

&lt;h3&gt;&lt;strong&gt;From a business perspective&lt;/strong&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Development speed and cost&lt;/strong&gt; – what developers love about React is that they’re able to reuse and recycle components developed before by them and the wide React Native ecosystem. They can also share their codebase and make them work faster.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Works everywhere&lt;/strong&gt; – Once you learn React Native, you can build apps for iOS, Android, and Windows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User Experience&lt;/strong&gt; – as long as you are not using extremely complicated designs and interactions, or you are not making a heavy game, you are still able to build high-performance apps with an absolutely great user experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Faster time to market &lt;/strong&gt;– you can arrive on the market much faster to test your MVP, get feedback and adapt changes accordingly without a need for a big investment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Help on demand&lt;/strong&gt; – React Native community is massive. Many problems that you may face during development, may already be fixed somewhere out there.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maintenance cost&lt;/strong&gt; – you only deal with one codebase.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;React Native mobile apps are visible&lt;/strong&gt; – it’s easy to get your apps listed in AppStore and Play Store. Not like PWA.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;&lt;strong&gt;From a development perspective&lt;/strong&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Easy to work with&lt;/strong&gt; – experienced developers will definitely appreciate the development experience. Meaningful error messages, time-saving and robust tools make it a premium choice over other platforms.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Changes preview&lt;/strong&gt; – you don’t have to rebuild the application, again and again, to see changes. It saves a lot of time and makes things quick and efficient. Hit “Command+R” to refresh the application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quick iteration cycles&lt;/strong&gt; – which just simply adds more value.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intelligent debugging tools&lt;/strong&gt; – and error reporting mechanisms. Give it an advantage over others and allows developers to focus more on the productive part.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easier to debug&lt;/strong&gt; – uses Flipper as default.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep things minimal and worthy&lt;/strong&gt; – it doesn’t force you to work in Xcode or Android Studio for iOS or android apps respectively.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A large community of developers&lt;/strong&gt; – who are contributing day in, day out.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code reusability&lt;/strong&gt; – developers can easily integrate 90% of the native framework and reuse the code for any platform. This feature not only saves time but also helps to cut down the cost of building two apps. Cool thing is that you can use the web app code (written in React) for mobile apps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pre-developed components&lt;/strong&gt; – numerous open-source libraries are available to accelerate your work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live reloading feature&lt;/strong&gt; – it helps to compile and read the file from the point where the developer made changes. Then a new file is offered to the stimulator which automatically reads the file from the beginning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compatible with third-party plugins&lt;/strong&gt; – and does not require high memory to process. No specific web views functions are required and native modules are linked with the plugin through the framework. Smoother running and faster loading are key features for it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transform web projects into mobile applications&lt;/strong&gt; – work done on this platform is easy to understand, and anyone can work around it although they were not previously engaged in it. It increases flexibility and web updates become consistent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smoother and faster UI&lt;/strong&gt; – as compared to classic hybrid ones. The interface created through React Native is highly responsive and feels fluid.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expo&lt;/strong&gt; – it’s a great tool for fast development of apps for many platforms, with many ready-to-go libraries in the SDK.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One codebase for all&lt;/strong&gt; – a possibility of keeping just one codebase to run a project in an Android, iOS and web browser&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demo mode&lt;/strong&gt; – when using Expo, it’s possible to build a demo for a customer without actually pushing the app to the Testflight or Google Store. The only thing we need is an Expo App on the mobile device.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Over The Air (OTA) updates&lt;/strong&gt; – allow pushing quick fixes directly to users without the need to wait for App store or Google play to accept our changes&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
&lt;br&gt;&lt;br&gt;React Native cons&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Performance is still lower than native&lt;/strong&gt; – React Native is not able to use all the blessings and potential of a specific platform. On the other hand, native apps can really maximize functionalities and deliver the ultimate user experience in the result.However, the re-architecture puts a lot of effort to make RN more performant, e.g. there is a new JS engine available - Hermes, and it makes apps running much faster on older Android devices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not efficient design-wise&lt;/strong&gt; – If you consider complicated designs or advanced interactions as a crucial part of your business advantage, you should definitely go for native development.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom modules&lt;/strong&gt; – many custom modules are already available, yet, there may be a need for some specific components that you will be forced to build from scratch yourself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Updating issues&lt;/strong&gt; – it’s hard to keep the app updated with the latest React Native version. Updating RN versions is in most cases a complicated process.&lt;/li&gt;
&lt;li&gt;If you are building a web app with React Native, you have to give up all the libraries that are using native modules&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
&lt;br&gt;&lt;br&gt;Further readings&lt;/h2&gt;

&lt;p&gt;In this article, you had a chance to find out about the pros and cons of React Native, but if you want to know more, we recommend the following articles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://pagepro.co/blog/react-native-faq-all-you-need-to-know/" rel="noreferrer noopener"&gt;React Native FAQ For 2021: All You Need To Know&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pagepro.co/blog/react-native-flipper-a-better-way-of-debugging/" rel="noreferrer noopener"&gt;React Native Flipper: A Better Way of Debugging&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pagepro.co/blog/react-native-for-startups-is-it-really-a-good-idea/" rel="noreferrer noopener"&gt;React Native For Startups: Is It Really a Good Idea?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pagepro.co/blog/react-native-nativescript-comparison/" rel="noreferrer noopener"&gt;React Native vs NativeScript: Comparison&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pagepro.co/blog/react-native-vs-xamarin-pros-and-cons/" rel="noreferrer noopener"&gt;React Native vs Xamarin: Pros and Cons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pagepro.co/blog/react-native-vs-ionic-and-cordova-comparison/" rel="noreferrer noopener"&gt;React Native vs Ionic vs Cordova: Comparison&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>reactnative</category>
      <category>mobile</category>
    </item>
    <item>
      <title>How To Eject From Expo Managed Workflow to Bare?</title>
      <dc:creator>tomgrabski</dc:creator>
      <pubDate>Tue, 08 Jun 2021 06:50:20 +0000</pubDate>
      <link>https://dev.to/pagepro_agency/how-to-eject-from-expo-managed-workflow-to-bare-13oi</link>
      <guid>https://dev.to/pagepro_agency/how-to-eject-from-expo-managed-workflow-to-bare-13oi</guid>
      <description>&lt;h2&gt;Introduction&lt;/h2&gt;

&lt;p&gt;If you are afraid to eject from Expo Managed Workflow to Bare Workflow, this article will help you a lot.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://expo.io/" rel="noreferrer noopener nofollow"&gt;Expo&lt;/a&gt; is a fantastic tool to develop React Native apps.&lt;/p&gt;

&lt;p&gt;There are two ways you can use Expo - &lt;strong&gt;managed&lt;/strong&gt; and &lt;strong&gt;bare&lt;/strong&gt; workflow. The Expo team recommends using the first option at the beginning of the road.&lt;/p&gt;

&lt;p&gt;To start with the &lt;strong&gt;managed workflow&lt;/strong&gt; what developers need to know is JavaScript and a few skills in React only. All the configuration is contained in one file - &lt;strong&gt;app.json&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;However, sometimes we encounter certain limitations and are forced to leave the managed workflow, but many developers seem to be afraid of taking this step.&lt;/p&gt;

&lt;p&gt;So, should they eject from Expo managed workflow?&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;Why using Expo instead of starting with a plain React Native project?&lt;/h2&gt;

&lt;p&gt;First, &lt;a href="https://pagepro.co/hire-expo-developers.html" rel="noreferrer noopener"&gt;Expo development&lt;/a&gt; offers a lot of well-tested, consistent, and increasingly comprehensive libraries that give you access to the underlying native APIs. Additionally, the Expo team offers battle-tested modules that are constantly maintained by them. This is a great advantage, as developers can spend more time developing instead of doing painful configure.&lt;/p&gt;

&lt;p&gt;Expo also offers many out of the box solutions such as &lt;strong&gt;OTA (Over The Air) &lt;/strong&gt;updates and a push notification service.&lt;/p&gt;

&lt;p&gt;Think of OTA - if you ever had a situation where you find typo mistakes or have to change some spacing by adding a few pixels in your app, and then you have to wait for Apple to approve a change, you'll appreciate OTA updates a lot - as all of those small changes will appear as soon as you run the publish command. It simply publishes new version of JavaScript application and updates without building standalone app and re-submitting it to the App Stores.&lt;/p&gt;

&lt;p&gt;Expo also contains a &lt;strong&gt;push notification service&lt;/strong&gt; out of the box. It is a very important feature to notify users about, for example, sales in shops, messages from friends or incoming purchases. All the troubleshootings with native device information and communicating with APNs or FCM are taken care of behind the scenes, so that you can treat iOS and Android notifications the same, saving yourself tons of time on the front-end, and back-end!&lt;/p&gt;

&lt;p&gt;Let’s have a look on other advantages Expo has over plain React Native projects.&lt;/p&gt;

&lt;p&gt;Meet &lt;strong&gt;Expo CLI&lt;/strong&gt; (command line interface) and &lt;strong&gt;Expo Dev Tools (Web UI) &lt;/strong&gt;- things that allow developers to install packages, run, and easily manage projects. Later on you can run applications on different platforms (iOS, Android, Web) from &lt;strong&gt;dev tools&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Expo also contains a &lt;strong&gt;list of connected devices&lt;/strong&gt; via &lt;strong&gt;QR code &lt;/strong&gt;- enabling easy connection of physical devices. It is awesome as you can share your app with anyone, anywhere in the world while you're working through the &lt;strong&gt;Expo Go app&lt;/strong&gt; (available on App/Play Store)!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7FJKijdx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/pasted-image-0-1024x593.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7FJKijdx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/pasted-image-0-1024x593.png" alt="Expo managed workflow: Screenshot of Expo Go app"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you change connection to &lt;strong&gt;tunnel mode&lt;/strong&gt; and share your QR code with other people, they are able to run the app on their phones.&lt;/p&gt;

&lt;p&gt;It’s a very useful tool to work with designers, for instance. They can run the app on their phones, and whatever the developer will change in the code, it appears on their devices instantly.&lt;/p&gt;

&lt;p&gt;The reason for that is applications are built and hosted on &lt;strong&gt;S3&lt;/strong&gt;. Every change in code rebuilds the app on S3 and immediately updates the app on users devices.&lt;/p&gt;

&lt;p&gt;Instead of having to sign up several external testers through App Store Connect, you can easily have them download the Expo Go app and have a working version on their phone.&lt;/p&gt;

&lt;p&gt;The last thing I would like to mention is that Expo is automatically updating our React Native to a higher version, so we don’t have to do it on our own. And please, let those who never had a problem with the RN update raise their hands first.&lt;/p&gt;

&lt;p&gt;So with Expo,&lt;strong&gt; the update’s nightmare will finally disappear&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;If you decide to use Expo&lt;/h2&gt;

&lt;p&gt;The Expo team suggested that we should start developing with &lt;strong&gt;managed workflow&lt;/strong&gt; first.&lt;/p&gt;

&lt;p&gt;So, What is &lt;strong&gt;managed workflow&lt;/strong&gt; actually?&lt;/p&gt;

&lt;p&gt;In documentation we can see:&lt;/p&gt;

&lt;p&gt;“The managed workflow is kind of like Rails and Create React App, but for React Native.”.&lt;/p&gt;

&lt;p&gt;Expo is really trying to manage as much of the complexity of building apps for you as it can, which is why they call it the managed workflow.&lt;/p&gt;

&lt;p&gt;Developers that are using managed workflow don't have to use Xcode or Android Studio, so they just write JavaScript code and manage configuration through &lt;strong&gt;app.json&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Isn’t that fantastic?&lt;/p&gt;

&lt;p&gt;Building mobile apps just in JavaScript and all the configuration is managed by app.json file.&lt;/p&gt;

&lt;p&gt;This is truly awesome, yet, just the same as everything that's awesome, ends quickly.&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;Limitation of Expo managed workflow.&lt;/h2&gt;

&lt;p&gt;Here’s the list:&lt;/p&gt;

&lt;h4&gt;&lt;strong&gt;Not all iOS and Android APIs are available&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;Some of the APIs are not available yet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bluetooth&lt;/li&gt;
&lt;li&gt;WebRTC&lt;/li&gt;
&lt;li&gt;In-App Purchases&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;&lt;strong&gt;The SDK doesn’t support all types of background code.&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;For now SDK supports only geolocation (including geofencing) and background fetch. You cannot do anything with audio, controls or handle push notifications in the background.&lt;/p&gt;

&lt;h4&gt;&lt;strong&gt;If you need to keep your app size extremely lean, the managed workflow may not be the best choice.&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;iOS app 20mb / Android 15 mb size.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is because "managed" includes a bunch of APIs - this lets you push over-the-air updates to use new APIs, but comes at the cost of binary size.&lt;/p&gt;

&lt;p&gt;Some of the APIs that are included are tied to services that you may not be using - like Facebook Mobile SDK ,Google Mobile SDK - however, they offer many possibilities related to e.g. Auth.&lt;/p&gt;

&lt;h4&gt;&lt;strong&gt;Native libraries to integrate with proprietary services are usually not included in the SDK&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;Avoid adding native modules to the SDK if they are tied to external, proprietary services — we can't add stuff to the SDK just because a few users need it. It increases the size of building and the expo team is starting to think of the broader userbase.&lt;/p&gt;

&lt;p&gt;The only supported third-party push notification service is the Expo notification service.&lt;/p&gt;

&lt;h4&gt;&lt;strong&gt;The minimum supported OS versions are Android 5+ and iOS 10+&lt;/strong&gt;&lt;/h4&gt;

&lt;h4&gt;&lt;strong&gt;Updates (JS and assets) for OTA updates and builds are size-limited&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;Expo's current update service supports updates around 50 MiB.&lt;/p&gt;

&lt;p&gt;If you met any of the limitations outlined above, it’s probably time to eject from expo managed workflow and start with the bare workflow.&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;It’s about time to eject from Expo managed to the bare workflow&lt;/h2&gt;

&lt;p&gt;Many JavaScript developers are &lt;strong&gt;concerned about ejecting&lt;/strong&gt; from managed workflow.&lt;/p&gt;

&lt;p&gt;They are not sure if they can handle things related to native applications, but they must remember that &lt;strong&gt;fear makes things look twice as bad as they are!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;After running the &lt;strong&gt;eject&lt;/strong&gt; command in our project this is how the terminal looks like:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ss5zrp4v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/Zrzut-ekranu-2021-01-30-o-22.35.48.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ss5zrp4v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/Zrzut-ekranu-2021-01-30-o-22.35.48.png" alt="developer's terminal after running an eject command"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It asks about the name for android package and iOS identifier. I leave it as default values.&lt;/p&gt;

&lt;p&gt;After the successful eject we got info like this below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OJjNsN8Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/unnamed.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OJjNsN8Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/unnamed.png" alt="reply from the terminal"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have already changed workflow mode from managed to bare.&lt;/p&gt;

&lt;p&gt;Take a look at the file tree. Something new has appeared.&lt;/p&gt;

&lt;p&gt;Two new directories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Android&lt;/strong&gt; - contains files that are responsible for the native part of android app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;iOS&lt;/strong&gt; - like in android directory, but that are responsible for iOS part.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Index&lt;/strong&gt; file is the entry point of our app and &lt;strong&gt;metro.config&lt;/strong&gt; - a JavaScript bundler used to React Native apps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VBAjiOwz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/index-file.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VBAjiOwz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/index-file.png" alt="index file"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the &lt;strong&gt;bare workflow&lt;/strong&gt; we have full access to the underlying native projects and any native code. It's a "bare" native project with React Native and one or more packages from the Expo SDK installed.&lt;/p&gt;

&lt;p&gt;In other words, anything that you can do in a native project is possible here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Minds that the configuration must be done on each native project rather than once with app.json&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Configuring app icons, launch screen, and so on must be configured in the native projects for each platform using the standard native tooling, rather than once using a simple JSON object.&lt;/p&gt;

&lt;p&gt;When you eject from the managed workflow, the app becomes a vanilla React Native app that includes all the Expo SDK APIs that you were using already (not more than that).&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;Developing app in Bare Workflow&lt;/h2&gt;

&lt;h4&gt;Run and build project&lt;/h4&gt;

&lt;p&gt;Now we just have to run yarn ios or yarn android to start JavaScript bundler server and build the project binary. This requires also Xcode or Android Studio, depending on the platform.&lt;/p&gt;

&lt;h4&gt;Adding libraries from Expo SDK&lt;/h4&gt;

&lt;p&gt;Pretty much the same as in managed workflow using expo install. Additional step is to run npx pod-install to install iOS native dependency. Some of the packages require a bit of additional work with adding stuff to info.plist - iOS or android manifest files.&lt;br&gt;After that, you just need to recompile the project for both platforms.&lt;/p&gt;

&lt;h4&gt;Adding own custom native code&lt;/h4&gt;

&lt;p&gt;The process looks pretty much like in any other React Native app. It is mostly depending on docs of these packages, but usually you need to add a bit of code to files in iOS and Android directories.&lt;/p&gt;

&lt;h4&gt;Developing with Expo Go app&lt;/h4&gt;

&lt;p&gt;You can still use the Expo Go app after the eject. When you have added a native code that client doesn’t support, you just need to add guards to prevent invoking native APIs when they aren’t available.&lt;/p&gt;

&lt;p&gt;To achieve that you can use the Constants package from Expo SDK. That package includes information about apps run on Expo App Go.&lt;/p&gt;

&lt;p&gt;Another way is to use special files with expo extension. For example, if we use a component that renders a Map and the map library isn’t supported by Expo, you can prepare another component called Map.expo.[js/json/ts/tsx] which will be rendered in the app if you run it by Expo Go. If you run apps in a traditional way, it will just render a correct Map component.&lt;/p&gt;

&lt;h4&gt;React Native for Web app on bare project&lt;/h4&gt;

&lt;p&gt;Expo for web also works on bare projects. All you need to do here is to import one simple component into App.web.js to demonstrate it, and run expo start --web.&lt;/p&gt;

&lt;h4&gt;Workflow comparison&lt;/h4&gt;

&lt;p&gt;As you can see the differences between those workflows are very small. We can still use most of the tools. On the Expo site in their Docs we can see a table with comparison.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CnoxaMbG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/Workflow-comparison.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CnoxaMbG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/Workflow-comparison.png" alt="A comparison of managed and bare Expo workflow"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, as you can see, most things are covered. The only difference is, in managed workflow we write just in JavaScript, but we cannot add custom native code, nor manage native dependencies, or one of the things I mentioned above in managed limitations.&lt;br&gt;&lt;br&gt;&lt;/p&gt;

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

&lt;p&gt;If you choose an Expo tool to develop the next React Native project and start in a managed workflow, you don’t need to be afraid to eject from it, if you feel you have to.&lt;/p&gt;

&lt;p&gt;The differences between them aren’t as big and as scary as it may seem. We have access to Android and iOS native modules and all we have to do is some configuration on it instead of configuring all in app.json file.&lt;/p&gt;

&lt;p&gt;After the eject we can still use most of the things Expo gives us - Expo - SDK, CLI, Go App or OTA. So if the time to eject comes, don’t panic, &lt;strong&gt;bare flow is also fantastic, just like a managed way&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>mobile</category>
      <category>expo</category>
    </item>
    <item>
      <title>React JS FAQ: The Most Common Questions</title>
      <dc:creator>tomgrabski</dc:creator>
      <pubDate>Tue, 01 Jun 2021 18:45:50 +0000</pubDate>
      <link>https://dev.to/pagepro_agency/react-js-faq-the-most-common-questions-5efe</link>
      <guid>https://dev.to/pagepro_agency/react-js-faq-the-most-common-questions-5efe</guid>
      <description>&lt;h2&gt;Introduction&lt;/h2&gt;

&lt;p&gt;A lot of data and information about technologies like React appear on the internet every day. It’s like: a new article there, a new podcast here, oh, and there is another video! Therefore, it’s getting harder to find relevant sources of reliable answers to the most pressing questions. Also, we often have to find more than one source to answer all of our questions. So, to help you with that, we have gathered FAQ (frequently asked questions) about React JS.&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;Frequently Asked Questions&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;What is React?&lt;/li&gt;
&lt;li&gt;What are the pros of React?&lt;/li&gt;
&lt;li&gt;What are the cons of React?&lt;/li&gt;
&lt;li&gt;What can I build with React?&lt;/li&gt;
&lt;li&gt;When to choose React?&lt;/li&gt;
&lt;li&gt;How much does it cost to build a web application with React?&lt;/li&gt;
&lt;li&gt;How long does it take to build a web application with React?&lt;/li&gt;
&lt;li&gt;Is it possible to migrate from other frameworks/libraries to React?&lt;/li&gt;
&lt;li&gt;Who is using React?&lt;/li&gt;
&lt;li&gt;What are the React-based frameworks?&lt;/li&gt;
&lt;li&gt;Why choose React?&lt;/li&gt;
&lt;li&gt;How can React help your business?&lt;/li&gt;
&lt;li&gt;What are React alternatives?&lt;/li&gt;
&lt;li&gt;
How to hire React developers or an agency?
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;Answers&lt;br&gt;&lt;br&gt;
&lt;/h2&gt;

&lt;h3 id="1"&gt;1. What is React?&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OVQFQEiu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2020/04/react-1024x912.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OVQFQEiu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2020/04/react-1024x912.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In short, React is a JavaScript library for building performant and user-friendly interfaces. React was released as an open-source project by Facebook in 2013, and it quickly became popular and widely used even by big names like Netflix, Uber, or Airbnb.&lt;/p&gt;

&lt;p&gt;React owes its popularity to being easy to pick up, more convenient to operate with than other solutions and maximum flexibility and freedom in creating interfaces.&lt;/p&gt;

&lt;p&gt;React official website describes three main things you should know about React:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Declarative style&lt;/strong&gt; – creating interactive user interfaces with React is painless as React updates and renders just the right components automatically after any data update.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Component-based architecture&lt;/strong&gt; – thanks to simple blocks called components and subcomponents, you don’t have to immediately build a full application – you can start small and then go from there.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;“Learn Once, Write Anywhere” rule&lt;/strong&gt; — components and code are reusable elements that help you build, for example, new features. You can use these elements whenever and wherever you want, without writing them again from scratch. React can also use Node.js to render on the server and React Native to boost mobile application development.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="2"&gt;2. What are the pros of React?&lt;/h3&gt;

&lt;p&gt;You already know some React benefits like creating completely custom user interfaces, but the list of its advantages is much longer. Let’s write them down and explain shortly looking from two different perspectives – business owner and developer.&lt;/p&gt;

&lt;h4&gt;Pros from a business owner’s perspective&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Cost-effectiveness&lt;/strong&gt; – you don’t have to spend big money from the beginning as you can start small with simple blocks called components and subcomponents. It shortens time to market and saves you money.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Great user experience&lt;/strong&gt; – React websites and apps are blazingly fast thanks to features like Concurrent Mode or React Fiber. Together with frontend freedom, it creates great and customised user experiences.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Popularity&lt;/strong&gt; – it’s a benefit because React won’t magically vanish from the planet Earth in the next few years. The thing is contrary – it will become even more stable and mature technology with an even bigger community and support in the future.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Performance and speed enhancement&lt;/strong&gt; – React offers many features that make its websites and apps fast and performant. Moreover, think about it this way – if React can handle Facebook, it can handle anything while maintaining good performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SEO-friendly&lt;/strong&gt; – Google loves React sites and apps for their structure, performance, speed and user experience. All these things (and more) leads consequently to higher rankings in search results.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shortened time to market (TTM)&lt;/strong&gt; – the time is money, especially for startups and other companies building digital products. React makes the whole development process faster and easier. What’s more, there is no need to build the entire application before testing it on the market – you can start with building a working MVP and make changes accordingly to real users’ feedback.&lt;/p&gt;

&lt;h4&gt;Pros from a developer’s perspective&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Backward compatibility&lt;/strong&gt; – the public API remains almost the same every time, so it’s easier for Facebook and other companies to refresh code while using its old pieces.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Concurrent Mode&lt;/strong&gt; – it’s a set of features, created to make React applications even faster and user-friendlier. It makes them adapt to the user’s device capabilities and network speed.&lt;/p&gt;

&lt;p&gt;If you need more information, read about &lt;a href="https://pagepro.co/blog/what-is-react-concurrent-mode-and-why-you-will-love-it/" rel="noreferrer noopener"&gt;what React concurrent mode is&lt;/a&gt; in another article.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creating Dynamic Web Apps is easier&lt;/strong&gt; – React simplifies the whole process with the help of JavaScript Extension. Thanks to JSX, HTML quotes and tag syntax can render specific subcomponents. Also, JavaScript Extension makes creating machine-readable codes easier.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Custom React Renderers&lt;/strong&gt; – the release of React Native forced developers to start implementing different rendering. And that was the origin of the Custom React Renderers concept, which helps devs build custom implementation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development time&lt;/strong&gt; – React speeds up the development process thanks to things like:&lt;/p&gt;

&lt;p&gt;1. ready-to-use solutions&lt;/p&gt;

&lt;p&gt;2. created components are reusable&lt;/p&gt;

&lt;p&gt;3. possibility to set up a web app by using “Create React App” (a starter kit provided by Facebook)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Easy to learn and use&lt;/strong&gt; – JavaScript developers quickly pick React up, even if it’s their first time using it. However, it’s always great to have someone on board who will mentor them during the learning and development processes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Easy to scale&lt;/strong&gt; – modularity of React makes it easy to scale applications – instead of building one big application right away, you can start small and build from there. For example, a simple working MVP can transform into a complex single-page application over time. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It’s easy to hand it over&lt;/strong&gt; – as React applications are component-based, it makes them readable, understandable and easier to maintain. If the code is clean, it’s easy for an external developer to understand it and take it over.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It’s easy to hire React developers&lt;/strong&gt; – the popularity of React (and demand for it) is growing since it’s release. Because of that, it’s easy to find skilled React developers that can join your dev team.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Helpful tools&lt;/strong&gt; – React developers can use a set of tools called React Developer Tools, which is available as an extension to Google Chrome and Mozilla Firefox. It allows for checking the components hierarchy in the virtual DOM and editing particular components.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Huge community&lt;/strong&gt; – React community is growing since its release in 2013, and now it’s pretty huge. Because of that, there is a great chance that there is already a solution to your React-related problem or you will easily find help.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reusable components aka modularity&lt;/strong&gt; – React apps are built of single components, which can be divided into subcomponents. Every component and subcomponent is responsible for one small piece of the whole application and can be reused anytime. Thanks to that, it’s possible to build even a comprehensive application from simple blocks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Testing and debugging friendliness&lt;/strong&gt; – React uses native tools to test and debug components before actually using them.&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h3 id="3"&gt;3. What are the cons of React?&lt;/h3&gt;

&lt;p&gt;Like any other technology, React has its cons.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;High pace of development&lt;/strong&gt; – React is still relatively new technology which evolves fast. Therefore, it may be hard for some to keep up this pace because of new features coming out now and then. And some developers might not like constant changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Incompleteness&lt;/strong&gt; – React provides only the View part of the MVC model. Because of that, you have to rely on other technologies, too. However, it allows developers to have almost full independence and thanks to that, every project might be different from each other.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="4"&gt;4. What can I build with React?&lt;/h3&gt;

&lt;p&gt;React.js allows you to build great digital products and interfaces like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Single Web Pages&lt;/li&gt;
&lt;li&gt;Static websites&lt;/li&gt;
&lt;li&gt;SaaS products&lt;/li&gt;
&lt;li&gt;MVPs easy to scale&lt;/li&gt;
&lt;li&gt;Complex and demanding Web Apps&lt;/li&gt;
&lt;li&gt;Custom User Interfaces
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="5"&gt;5. When to choose React?&lt;/h3&gt;

&lt;p&gt;React developers can integrate it with any backend, so it’s a great fit to almost any web app, especially if you plan to build large and complex apps.&lt;/p&gt;

&lt;p&gt;Choose React if you want to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Increase development speed (and lower development cost)&lt;/li&gt;
&lt;li&gt;Enhance user experience, so it’s almost like a native one&lt;/li&gt;
&lt;li&gt;Get faster to market&lt;/li&gt;
&lt;li&gt;Get on-demand help from the community&lt;/li&gt;
&lt;li&gt;Lower the maintenance costs&lt;/li&gt;
&lt;li&gt;Use future-proof technology
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="6"&gt;6. How much does it cost to build a web application with React?&lt;/h3&gt;

&lt;p&gt;The cost of creating a React app depends on the complexity of the application.&lt;/p&gt;

&lt;p&gt;However, React features helps you save money thanks to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reusability of components &lt;/li&gt;
&lt;li&gt;Many “ready-to-use” components&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;More than that, with React you build one codebase for all devices (desktop, mobile, tablet, etc.) so you don’t have to build separate applications for iOS, Android, etc.&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h3 id="7"&gt;7. How long does it take to build a web application with React?&lt;/h3&gt;

&lt;p&gt;Development time, as well as development cost, is highly connected to the complexity of the application. However, React features boost the development process thanks to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reusability of components &lt;/li&gt;
&lt;li&gt;Many “ready-to-use” components&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is one more thing worth mentioning – as the React community is huge and still growing, even if you encounter some problems along the way, a significant number of contributors will help you.&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h3 id="8"&gt;8. Is it possible to migrate from other frameworks/libraries to React?&lt;/h3&gt;

&lt;p&gt;Yes, but each project will demand an individual approach.&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h3 id="9"&gt;9. Who is using React?&lt;/h3&gt;

&lt;p&gt;Companies from unknown startups to big brands are using React, and you should know some of these names:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VkTZ4d1L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/companies-using-react.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VkTZ4d1L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2021/02/companies-using-react.png" alt="Companies using React.js"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3 id="10"&gt;
&lt;br&gt;&lt;br&gt;10. What are the popular React-based frameworks?&lt;/h3&gt;

&lt;p&gt;There are many frameworks built upon React, but two are particularly popular nowadays – Next.js and Gatsby.&lt;/p&gt;

&lt;p&gt;Next.js is a framework for building web applications and superfast static websites. It offers the best developer experience with all the features developers need for production: hybrid static &amp;amp; server rendering, TypeScript support, smart bundling, route pre-fetching, to name a few. &lt;/p&gt;

&lt;p&gt;Gatsby also helps developers build web applications and static websites. However, there are a few differences between Gatsby and Next.js.&lt;/p&gt;

&lt;h4&gt;&lt;strong&gt;Additional readings:&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://pagepro.co/blog/what-is-nextjs-and-why-should-you-use-it-in-2021/" rel="noreferrer noopener"&gt;What is Nextjs and Why Should You Use it in 2021?&lt;/a&gt;&lt;br&gt;&lt;a href="https://pagepro.co/blog/pros-and-cons-of-gatsby-development/" rel="noreferrer noopener"&gt;Gatsby Pros and Cons&lt;/a&gt;&lt;br&gt;&lt;a href="https://pagepro.co/blog/next-js-vs-gatsby-which-one-to-choose/" rel="noreferrer noopener"&gt;Next.js vs Gatsby – Which One To Choose?&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h2 id="11"&gt;11. Why choose React?&lt;/h2&gt;

&lt;p&gt;There are many good things to say about React, but we can highlight six main reasons to choose it for the next project.&lt;/p&gt;

&lt;h4&gt;Reason 1: Development efficiency&lt;/h4&gt;

&lt;p&gt;Developers can use once created components over and over again. They can also share their codebase and work much faster.&lt;/p&gt;

&lt;h4&gt;Reason 2: Native-like user experience&lt;/h4&gt;

&lt;p&gt;Ability to provide a great user experience was a priority when Facebook was releasing React. Thanks to that, you don’t have to overpay for native development of performant web applications.&lt;/p&gt;

&lt;h4&gt;&lt;strong&gt;Reason 3: Faster time to market&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;With React you can start small by building a simple working MVP to test it in front of the real users, get feedback from them and adapt your application accordingly to their comments without investing a lot of money.&lt;/p&gt;

&lt;h4&gt;&lt;strong&gt;Reason 4: Scalability&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;It’s not only about starting small and building complex web applications step-by-step. It’s also about clean and development-friendly code which allows for handing React projects over to any other React developer. Because of that, your dev team can grow fast and so can your application.&lt;/p&gt;

&lt;h4&gt;&lt;strong&gt;Reason 5: Trusted by the biggest brands&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;If big brands decided to trust React like Netflix of Slack, why shouldn’t you? It’s proof of being good-to-use and performant technology.&lt;/p&gt;

&lt;h4&gt;&lt;strong&gt;Reason 6: Stability and maturity&lt;/strong&gt;&lt;/h4&gt;

&lt;p&gt;Popularity and community of React have been growing since its release. It ensures that React isn't a one-season wonder everything will forget about soon. Actually, the thing is contrary – it’s proof that React is a stable and mature technology that will not only last but also evolve in the near future.&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h3 id="12"&gt;12. How can React help your business?&lt;/h3&gt;

&lt;p&gt;You should already know the pros of React for business owners, so let’s just sum them up.&lt;/p&gt;

&lt;p&gt;React allows you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build a digital product that works on any device&lt;/li&gt;
&lt;li&gt;Deliver flawless user experience to your users and customers&lt;/li&gt;
&lt;li&gt;Become future-proof thanks to using technologies that will pass the test of time&lt;/li&gt;
&lt;li&gt;Become extremely SEO-efficient which consequently leads to higher organic traffic and more leads and customers
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="13"&gt;13. What are React alternatives?&lt;/h3&gt;

&lt;p&gt;The main competitors and alternatives of React are other JavaScript libraries with the focus on front-end web and mobile development.  &lt;/p&gt;

&lt;p&gt;These libraries include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://infernojs.org/" rel="noreferrer noopener nofollow"&gt;InfernoJS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://angular.io/" rel="noreferrer noopener nofollow"&gt;Angular&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://preactjs.com/" rel="noreferrer noopener nofollow"&gt;Preact&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://vuejs.org/" rel="noreferrer noopener nofollow"&gt;Vue.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://elm-lang.org/" rel="noreferrer noopener nofollow"&gt;Elm&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.riotgames.com/en" rel="noreferrer noopener nofollow"&gt;Riot&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="14"&gt;14. How to choose React developers or an agency?&lt;/h3&gt;

&lt;p&gt;It is a challenging task as today everyone can set up a domain, build a website during one weekend and look like a professional agency with almost no effort. To help you avoid choosing the wrong agency, we prepared a list of questions to ask them before hiring them. We divided these questions into general questions and technical questions.&lt;/p&gt;

&lt;h4&gt;General questions&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;What’s your bench?&lt;/li&gt;
&lt;li&gt;What’s your longest deal you worked on so far?&lt;/li&gt;
&lt;li&gt;Can you do me a code audit?&lt;/li&gt;
&lt;li&gt;Do you do any open-source and community activities?&lt;/li&gt;
&lt;li&gt;Did you use Continuous Integration?&lt;/li&gt;
&lt;li&gt;Can you send me developer profiles or blind CVs?&lt;/li&gt;
&lt;li&gt;Can I call some of your previous clients?&lt;/li&gt;
&lt;li&gt;What did you work with before React?&lt;/li&gt;
&lt;li&gt;What are the rates?&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;Technical questions&lt;/h4&gt;

&lt;p&gt;We prepared a questionnaire, which you will find &lt;a href="https://docs.google.com/document/d/1WqwT07aSCM4qHD3oqX2nxDo676Xfg4W-rz3d2dC_LEU/edit" rel="noreferrer noopener nofollow"&gt;there&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;To find out more about choosing a React development agency, just simply use &lt;a href="https://pagepro.co/blog/10-questions-to-ask-a-react-consultancy-agency/" rel="noreferrer noopener"&gt;"10 questions to ask a React Agency"&lt;/a&gt; questionnaire.&lt;br&gt;&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;What’s next?&lt;/h2&gt;

&lt;p&gt;We tried our best to include all of the frequently asked questions about React and simple answers to them. However, you may have more questions, and if that’s the case, we encourage you to contact us directly.&lt;/p&gt;

</description>
      <category>react</category>
    </item>
    <item>
      <title>React Native FAQ for 2021: All You Need to Know</title>
      <dc:creator>tomgrabski</dc:creator>
      <pubDate>Wed, 26 May 2021 06:54:54 +0000</pubDate>
      <link>https://dev.to/pagepro_agency/react-native-faq-for-2021-all-you-need-to-know-35ji</link>
      <guid>https://dev.to/pagepro_agency/react-native-faq-for-2021-all-you-need-to-know-35ji</guid>
      <description>&lt;p&gt;It's really hard to find reliable answers to the most common questions in one place when it comes to modern technologies – like React Native. This is the main reason behind this FAQ in which we cover the definition of React Native, its pros and cons, and other things you should know about it.&lt;/p&gt;

&lt;h2 id="1"&gt;What is React Native?&lt;/h2&gt;

&lt;p&gt;You probably know &lt;a href="https://pagepro.co/react-native-development.html" rel="noreferrer noopener"&gt;React Native development&lt;/a&gt; as an open-source mobile app platform created in &lt;a rel="noreferrer noopener" href="https://www.javascript.com/"&gt;JavaScript&lt;/a&gt; that is taking the mobile app development market by the storm.&lt;/p&gt;

&lt;p&gt;It has&lt;a rel="noreferrer noopener" href="https://pagepro.co/blog/2020/01/16/how-react-native-can-cut-your-development-costs/"&gt; a number of great advantages that are saving you many development costs&lt;/a&gt; and makes your app truly outstanding. &lt;/p&gt;

&lt;p&gt;However, like any other platform, it has its cons as well.&lt;/p&gt;

&lt;p&gt;So, before you add it to your tech stack, let's go over the FAQ that I think every developer should be familiar with.&lt;/p&gt;

&lt;h2 id="2"&gt;Why did we need React Native?&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vSGBiQpt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2020/02/howtobuilanapp-1024x489.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vSGBiQpt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2020/02/howtobuilanapp-1024x489.png" alt="People designing an app on a big piece of paper "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before React Native arrived at the market, people wanted to build mobile apps mostly in native platforms.&lt;/p&gt;

&lt;p&gt;It was mainly related to the high performance, and great customized user experience. &lt;/p&gt;

&lt;p&gt;But they had their limitations as well.&lt;/p&gt;

&lt;p&gt;For instance, native development environments were only working for a certain OS. That means, in order to develop applications for different platforms, you need a help of different developers.&lt;/p&gt;

&lt;p&gt;Thanks to React Native, developers could work around a single tool to develop cross-platform applications with a truly native experience. &lt;/p&gt;

&lt;p&gt;More than that, cross-platform development and React community is constantly growing, Many functionalities we consider impossible few years ago, are now working perfectly without a need for native development. &lt;/p&gt;

&lt;h2 id="3"&gt;What’s the difference between React and React Native?&lt;/h2&gt;

&lt;p&gt;The difference is quite simple. &lt;/p&gt;

&lt;p&gt;We use &lt;a rel="noreferrer noopener" href="https://pagepro.co/react-development.html"&gt;React&lt;/a&gt; for web apps, and React Native to develop mobile apps.&lt;/p&gt;

&lt;p&gt;Where React focuses more on improved UI (User Interface), RN is sharing a common logic layer for all OS. That provides solutions to problems which were being dealt for quite a while now, such as development inefficiency, slower time to deployment and less developer productivity. &lt;/p&gt;

&lt;p&gt;It is important to note that React is a &lt;strong&gt;library&lt;/strong&gt; used for web development whereas React Native is a &lt;strong&gt;platform&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Another interesting thing is that when you want to use RN, you have everything you need to start a project. On the other hand, creating a new project with React means you have chosen only one of many libraries you will have to use to build a web application.&lt;/p&gt;

&lt;h2 id="4"&gt;Who is using React Native?&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3CE5TrSj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2020/02/howtobuild1-1024x678.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3CE5TrSj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2020/02/howtobuild1-1024x678.png" alt="man holding a phone with an app"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You may hear that big players are considering React Native as their development platform more often.&lt;/p&gt;

&lt;p&gt;Here's only a small chunk of them:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EWmx_IOa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2020/03/Screenshot-2020-03-18-at-10.14.39-1024x528.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EWmx_IOa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2020/03/Screenshot-2020-03-18-at-10.14.39-1024x528.png" alt="Apps built in react native"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The list goes long and probably will keep on increasing as React Native is delivering the features and support that is hard to find anywhere else.&lt;/p&gt;

&lt;h2 id="5"&gt;Can existing apps be migrated to React Native?&lt;/h2&gt;

&lt;p&gt;The answer is '&lt;strong&gt;yes'&lt;/strong&gt; as long as your app does not depend on doing heavy computing tasks on the device. Constantly expanding capabilities of React Native allow more and more complex apps to be made using it. &lt;/p&gt;

&lt;p&gt;Also by migrating to React Native your app becomes cheaper to maintain because there is only one codebase for both Android and iOS.&lt;/p&gt;

&lt;h2 id="6"&gt;What are React Native alternatives?&lt;/h2&gt;

&lt;p&gt;Its good to know that there are other technologies that aim to achieve the same goal and have different ways of doing it. Here are some examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://nativescript.org/" rel="noreferrer noopener nofollow"&gt;NativeScript&lt;/a&gt; &lt;/strong&gt;– developed by Progress and released in 2014, it allows building apps for both iOS and Android using Angular, Vue or vanilla JS, CSS and HTML&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://cordova.apache.org/" rel="noreferrer noopener nofollow"&gt;Cordova&lt;/a&gt; &lt;/strong&gt;– created by Nitobi, later bought by Adobe. Used to make hybrid apps that instead of using native components wrap what is essentially a web application with access to the device's native API's&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://flutter.dev/" rel="noreferrer noopener nofollow"&gt;Flutter&lt;/a&gt; &lt;/strong&gt;–&lt;strong&gt; &lt;/strong&gt;one of the youngest technologies, which was published in 2017 by Google. Used to make apps for both iOS and Android using Dart language&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://dotnet.microsoft.com/apps/xamarin" rel="noreferrer noopener nofollow"&gt;Xamarin&lt;/a&gt; &lt;/strong&gt;– owned by Microsoft, allows developers to build apps for iOS and Android using C#&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="7"&gt;Can apps for iOS and Android look or behave differently?&lt;/h2&gt;

&lt;p&gt;Yes! But this comes at a cost because different code has to be written for both platforms. And even then it's much cheaper than developing two native apps.&lt;/p&gt;

&lt;p&gt;React Native was built in a way that separates Android and iOS logic, so it's possible to make them look and work differently while still being able to share most of the functionality between both platforms.&lt;/p&gt;

&lt;h2 id="8"&gt;Pros and Cons of React Native&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Zo5P16Ho--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2020/03/glenn-carstens-peters-RLw-UC03Gwc-unsplash.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Zo5P16Ho--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2020/03/glenn-carstens-peters-RLw-UC03Gwc-unsplash.jpg" alt="man is making a list on a notepad"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The most important advantages of React Native are the ones regarding development efficiency and economy. &lt;/p&gt;

&lt;p&gt;Although there are still some areas that native development is doing better, you may want to consider very carefully when React Native is a good choice for you specifically. &lt;a href="https://pagepro.co/blog/2020/02/12/when-does-it-make-sense-to-use-react-native/" rel="noreferrer noopener"&gt;You can read about it in another article&lt;/a&gt;. &lt;/p&gt;

&lt;h3&gt;Pros&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Development speed&lt;/strong&gt; &lt;strong&gt;and cost&lt;/strong&gt; – what &lt;a rel="noreferrer noopener" href="https://pagepro.co/blog/2019/11/15/reasons-to-use-react-in-2020/"&gt;developers love about React&lt;/a&gt; is that &lt;strong&gt;they’re able to reuse and recycle components&lt;/strong&gt; developed before by them and wide React Native ecosystem. They can also share their codebase and make them work faster.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Works everywhere &lt;/strong&gt;– Once you learn (or hire) React Native, you can build apps for iOS, Android, and Windows.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User Experience&lt;/strong&gt; – as long as you are not using extremely complicated designs and interactions, you are still able to build high-performance apps and deliver absolutely great user experience. 
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Faster time to market&lt;/strong&gt; – you can arrive on the market much faster to test your MVP, get feedback and adapt changes accordingly without a need for a big investment.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Help on demand&lt;/strong&gt; – React Native community is massive. Many problems that you may face during development, may already be fixed somewhere out there.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maintenance cost&lt;/strong&gt; – you only deal with one codebase. 
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;React Native apps are visible&lt;/strong&gt; – they get listed in AppStore and Play Store. Not like PWA. 
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Over The Air Updates&lt;/strong&gt; – allow you to quickly update your app without the need to wait for App Store/Google Play to accept your changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Cons&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Performance is still lower than native&lt;/strong&gt; – React Native is not able to use all the blessings and potential of a specific platform. Native apps, on the other hand, can really maximize functionalities and deliver the ultimate user experience in the result.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not efficient design-wise &lt;/strong&gt;– if you consider complicated designs or advanced interactions as a crucial part of your business advantage, you should definitely go for native development, but this is something that is slowly changing and more apps based on React Native with complex UI start to appear.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom modules&lt;/strong&gt; – you can access many custom modules, yet, there may be a need for some specific components that you will have to build from scratch yourself. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="9"&gt;Other things you should know before choosing React Native&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JuAADjDf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2020/03/thewayofcolor-GAFrXUDOJFA-unsplash.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JuAADjDf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pagepro.co/blog/wp-content/uploads/2020/03/thewayofcolor-GAFrXUDOJFA-unsplash.jpg" alt="men playing chess"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are still few things you should know about React Native and its features. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It's easy to work with &lt;/strong&gt;– experienced developers will definitely appreciate the development experience. Meaningful error messages, time-saving and robust tools make it a premium choice over other platforms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can preview changes&lt;/strong&gt; – you don’t have to rebuild the application, again and again, to see changes. It saves a lot of time and makes things quick and efficient. Hit “Command+R” to refresh the application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick iteration cycles &lt;/strong&gt;– which just simply adds more value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Intelligent debugging tools&lt;/strong&gt; – and error reporting mechanisms. Give it an advantage over others and allows developers to focus more on the productive part.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Easier to debug&lt;/strong&gt; – uses Flipper as default.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep things minimal and worthy&lt;/strong&gt; – it doesn’t force you to work in Xcode or Android Studio for iOS or Android apps respectively.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A large community of developers&lt;/strong&gt; – who are contributing day in, day out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code reusability &lt;/strong&gt;– developers can easily integrate 90% of the native framework and reuse the code for any platform. This feature not only saves time but also helps to cut down the cost of building two apps. Cool thing is that you can use the web app code (written in React) for mobile apps.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pre-developed components &lt;/strong&gt;– numerous open-source libraries are available to accelerate your work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live reloading feature&lt;/strong&gt; – it helps to compile and read the file from the point where the developer made changes. Then a new file is offered to the stimulator which automatically reads the file from the beginning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compatible with third-party plugins&lt;/strong&gt; – and does not require high memory to process. You don't need any specific web views functions and all native modules are linked with the plugin through the framework. Smoother running and faster loading are key features for it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Transform web projects into mobile applications&lt;/strong&gt; – work done on this platform is easy to understand, and anyone can work around it although they were not previously engaged in it. It increases flexibility and web updates become consistent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Smoother and faster UI&lt;/strong&gt; – as compared to classic hybrid ones. The interface created through React Native is highly responsive and feels fluid.&lt;/p&gt;

&lt;h2&gt;Further readings&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://pagepro.co/blog/react-native-pros-and-cons/" rel="noreferrer noopener"&gt;React Native Pros and Cons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pagepro.co/blog/react-native-for-startups-is-it-really-a-good-idea/" rel="noreferrer noopener"&gt;React Native For Startups: Is It Really a Good Idea?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pagepro.co/blog/react-native-flipper-a-better-way-of-debugging/" rel="noreferrer noopener"&gt;React Native Flipper: A Better Way of Debugging&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pagepro.co/blog/react-native-nativescript-comparison/" rel="noreferrer noopener"&gt;React Native vs NativeScript: Comparison&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pagepro.co/blog/react-native-vs-xamarin-pros-and-cons/" rel="noreferrer noopener"&gt;React Native vs Xamarin: Pros and Cons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pagepro.co/blog/react-native-vs-ionic-and-cordova-comparison/" rel="noreferrer noopener"&gt;React Native vs Ionic and Cordova: Comparison&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pagepro.co/blog/react-native-vs-flutter-which-is-better-for-cross-platform-app/" rel="noreferrer noopener"&gt;React Native vs Flutter: What’s Better for a Cross-platform App?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pagepro.co/blog/react-native-tutorials-other-resources-2020/" rel="noreferrer noopener"&gt;React Native Tutorials, Blogs, and Other Resources&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;React Native is an exciting framework that enables web developers to create mobile applications that have knowledge in React and JavaScript.&lt;/p&gt;

&lt;p&gt;It enables faster mobile development and efficient code sharing for all operating systems without compromising on the quality of the product.&lt;/p&gt;

&lt;p&gt;High efficiency and low costing are also the attributes that make work exciting for armies of developers.&lt;/p&gt;

&lt;p&gt;Supported by the biggest players on the market, this technology will probably stand a test of time and will only get better.&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>mobile</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
