{"id":7972,"date":"2020-06-16T18:17:18","date_gmt":"2020-06-16T15:17:18","guid":{"rendered":"\/\/?p=7972"},"modified":"2022-12-28T13:37:26","modified_gmt":"2022-12-28T13:37:26","slug":"react-native-app-and-pwa-two-powerful-technologies-for-building-cross-platform-mobile-apps","status":"publish","type":"post","link":"https:\/\/getdevdone.com\/blog\/react-native-app-and-pwa-two-powerful-technologies-for-building-cross-platform-mobile-apps.html","title":{"rendered":"React Native and PWA: Two Powerful Technologies for Building Cross-Platform Mobile Apps"},"content":{"rendered":"<p>Both <a href=\"\/blog\/react-native-a-perfect-solution-for-building-cross-platform-mobile-apps.html\" target=\"_blank\" rel=\"noopener\">React Native<\/a> (RN) and <a href=\"\/blog\/progressive-web-apps-for-e-commerce-get-an-edge-over-your-competition.html\" target=\"_blank\" rel=\"noopener\">Progressive Web Apps<\/a> (PWA) serve the same purpose: to provide a mobile experience for consumers fast and at a relatively low cost. However, they are not identical and have specific features that make them a perfect fit to meet some business needs but a rather poor option to meet others.<\/p>\n<p>Which technology to pick for your particular project, then? We have prepared some guidelines to address this dilemma.<\/p>\n<h2><strong>MVP<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"alignnone size-large wp-image-7981\" src=\"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16173759\/MVP-1024x448.png\" alt=\"React Native and PWA are good for buidling MVPs\" width=\"900\" height=\"394\" srcset=\"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16173759\/MVP-1024x448.png 1024w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16173759\/MVP-300x131.png 300w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16173759\/MVP-768x336.png 768w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16173759\/MVP.png 1947w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>RN has a big community and a lot of UI Frameworks, so you can quickly put an app together. This makes the technology a good candidate for building an MVP (Minimum Viable Product) to validate a hypothesis and decide if a full-scale mobile app is worth investing money in. Read one of our <a href=\"\/blog\/3-main-reasons-to-use-wordpress-for-building-your-minimum-viable-product.html\" target=\"_blank\" rel=\"noopener\">posts <\/a>for an explanation of what an MVP is and what benefits it provides to businesses.<\/p>\n<p>In essence, a PWA is nothing more than a standard website built by using web technologies (CSS, HTML, and JavaScript) with the addition of service workers. Thus, it can also be used to develop an MVP with limited functionality. Later, it can be extended with other features if the validity of the idea has been confirmed.<\/p>\n<p>Therefore, as far as an MVP is concerned, you can go<strong> both ways<\/strong>.<\/p>\n<h2><strong>Hardware<\/strong><\/h2>\n<p>One of the weaknesses of PWAs is their limited ability to make use of all the features of the devices where they are installed. Currently, a PWA can only access some functionalities such as the camera, microphone, gyroscope, and accelerometer. That, however, is pretty much what it can get hold of.<\/p>\n<p>In this respect, <a href=\"https:\/\/getdevdone.com\/react-native-development.html\">React Native development<\/a> clearly wins since it can leverage the power of native APIs to access a larger number of hardware features. Need to put a sensor or Bluetooth to work? Use NFC? Then, RN is definitely what you need.<\/p>\n<h2><strong>Integration with Third-Party Services<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"alignnone size-large wp-image-7985\" src=\"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16174211\/ThirdParty_Integrations-1024x448.png\" alt=\"\" width=\"900\" height=\"394\" srcset=\"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16174211\/ThirdParty_Integrations-1024x448.png 1024w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16174211\/ThirdParty_Integrations-300x131.png 300w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16174211\/ThirdParty_Integrations-768x336.png 768w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16174211\/ThirdParty_Integrations.png 1947w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>RN can take advantage of a host of external libraries for any of your purposes. Testing, collecting analytical data, communicating with smartwatches or other wearables \u2014 RN can do all of that and more. In addition, it integrates well with social media and can switch among the device\u2019s owner\u2019s accounts with no need to enter credentials.<\/p>\n<p>This is not the case with PWAs. Logging into a Twitter account through a Google account, for instance, is out of the question with a PWA. You have to go through the standard authorization routine: typing in a username and password.<\/p>\n<p>This makes RN slightly better than the other technology from the user experience perspective.<\/p>\n<h2>Look and Feel<\/h2>\n<p>Again, a PWA represents an ordinary website with some features of a mobile app (gesture control, push notifications, and others). That means its user interface is inferior to what native mobile apps can offer. A PWA is also not as convenient to use as a standard mobile app.<\/p>\n<p>An app based on React Native is a different matter since it works with the native widgets of the two major MOSs (Mobile Operating Systems). Thus, the JavaScript code written by a <a href=\"https:\/\/getdevdone.com\/order-now\/quote.html\" target=\"_blank\" rel=\"noopener\">React Native developer<\/a> can be converted into native code. The result? A fast operation speed and a look and feel that make a React Native app almost indistinguishable from its purely native counterparts.<\/p>\n<h2>Search Engine Visibility<\/h2>\n<p><img decoding=\"async\" class=\"alignnone size-large wp-image-7984\" src=\"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16174057\/SEO-1024x448.png\" alt=\"\" width=\"900\" height=\"394\" srcset=\"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16174057\/SEO-1024x448.png 1024w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16174057\/SEO-300x131.png 300w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16174057\/SEO-768x336.png 768w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16174057\/SEO.png 1947w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>If you want your audience to find your blog, e-commerce site, or image gallery on the Internet, PWA has an edge over React Native. This is because the former resides on a server and can be viewed via an ordinary browser. Therefore, Yahoo! and the like can find and index its pages just like they do for normal websites.<\/p>\n<p>React Native apps, in their turn, are similar to native mobile apps. They have to be added to the app stores, downloaded to a user\u2019s device, and installed. Search engines are not \u201cinterested\u201d in them.<\/p>\n<h2>Stores<\/h2>\n<p>As you know, PWAs can be accessed and installed right through a browser. Developers can also upload them to the app stores just like native mobile apps. That said, Apple has built a high wall for PWAs that even top-level professionals find difficult to surmount. Thus, you can only safely bet on the Play Store when it comes to publishing a PWA.<\/p>\n<p>Adding a RN app to the app stores s is not such an arduous task. If the presence in the app stores is important for your business, then choose RN.<\/p>\n<h2>Budget<\/h2>\n<p><img decoding=\"async\" class=\"alignnone size-large wp-image-7982\" src=\"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16173905\/Budget-1024x449.png\" alt=\"\" width=\"900\" height=\"395\" srcset=\"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16173905\/Budget-1024x449.png 1024w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16173905\/Budget-300x131.png 300w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16173905\/Budget-768x336.png 768w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16173905\/Budget.png 1947w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>Building a PWA is straightforward for any front-end professional. The basic web technologies plus writing a service worker script \u2014 this is all that is required to have an up-and-running progressive web application quickly. Thus, the development cost is much cheaper than that of a native mobile app and even cheaper than that of a React Native app.<\/p>\n<p>React Native may require a developer to write code in Swift\/Objective-C or Java\/Kotlin to access some of the device\u2019s functionality. This will inevitably lead to an increase in the overall bill. However, it largely depends on the complexity of the app you want to build.<\/p>\n<h2><strong>Working with No Internet Connection<\/strong><\/h2>\n<p>A well-known feature of PWAs is the ability to work even when the Internet connection is off or when the network signal is very weak. This is possible thanks to an advanced caching mechanism. Thus, users can continue to read posts, for example, or browse a product catalog.<\/p>\n<p>React Native can work in the autonomous mode too. This calls for installing a third-party library like <a href=\"https:\/\/www.npmjs.com\/package\/react-native-offline\" target=\"_blank\" rel=\"noopener\">this one <\/a>since React Native only comes equipped with the NetInfo module. The latter simply detects whether the Internet is on and is sufficient for quite small projects only. With an external library installed, a React Native app can function properly regardless of the availability of an Internet connection.<\/p>\n<h2><strong>Push Notifications<\/strong><\/h2>\n<p><img decoding=\"async\" class=\"alignnone size-large wp-image-7983\" src=\"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16174000\/PushNotifications-1024x449.png\" alt=\"\" width=\"900\" height=\"395\" srcset=\"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16174000\/PushNotifications-1024x449.png 1024w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16174000\/PushNotifications-300x131.png 300w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16174000\/PushNotifications-768x336.png 768w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16174000\/PushNotifications.png 1947w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<p>Push notifications are an excellent way to stay connected with your audience. Both PWAs and <a href=\"https:\/\/getdevdone.com\/order-now\/quote.html\" target=\"_blank\" rel=\"noopener\">React Native apps<\/a> support this functionality. The <a href=\"https:\/\/www.npmjs.com\/package\/react-native-push-notification\" target=\"_blank\" rel=\"noopener\">react-native-push-notification<\/a> library allows developers to add several types of notifications to their apps. Those will work well both on iOS and Android.<\/p>\n<p>When it comes to PWAs, though, iOS puts spokes in their wheels. For example, Safari favors Apple\u2019s own push notifications service and blocks others, including push notifications from PWAs. So, React Native is preferable in this respect.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-large wp-image-7988\" src=\"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16175307\/Summary1-1024x544.png\" alt=\"The main features of PWA and React Native\" width=\"900\" height=\"478\" srcset=\"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16175307\/Summary1-1024x544.png 1024w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16175307\/Summary1-300x159.png 300w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16175307\/Summary1-768x408.png 768w, https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/16175307\/Summary1.png 1947w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/p>\n<h2><strong>Conclusion<\/strong><\/h2>\n<p>The technologies described in this post are different in their features and capabilities. We can\u2019t say that one is better than the other, though. What matters most is your business objectives and how much money you can invest in development.<\/p>\n<p>Just go over the points we\u2019ve highlighted above and decide which of them are essential in your case. If you have any questions related to React Native or PWAs, the <a href=\"https:\/\/getdevdone.com\/order-now\/quote.html\" target=\"_blank\" rel=\"noopener\">GetDevDone developers<\/a> will be happy to give you all the advice and guidance you might need. <a href=\"https:\/\/getdevdone.com\/contact-us.html\" target=\"_blank\" rel=\"noopener\">Talk <\/a>to us today!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Both React Native (RN) and Progressive Web Apps (PWA) serve the same purpose: to provide a mobile experience for consumers fast and at a relatively low cost. However, they are not identical and have specific features that make them a perfect fit to meet some business needs but a rather&#8230;<\/p>\n","protected":false},"author":2,"featured_media":16391,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"categories":[741,750],"tags":[855,785,820,843,816,818],"class_list":["post-7972","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-comparison","category-front-end-development-services","tag-architecture","tag-cross-platform-frontend","tag-javascript","tag-mvp","tag-react","tag-react-native"],"acf":[],"aioseo_notices":[],"author_meta":{"display_name":"GetDevDone Team","author_link":"https:\/\/getdevdone.com\/blog\/author\/admin-p2h"},"featured_img":"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/28133420\/React-Native-and-PWA-300x300.png","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/getdevdone.com\/blog\/category\/comparison\" class=\"advgb-post-tax-term\">Comparison<\/a>","<a href=\"https:\/\/getdevdone.com\/blog\/category\/front-end-development-services\" class=\"advgb-post-tax-term\">Front-end development services<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Comparison<\/span>","<span class=\"advgb-post-tax-term\">Front-end development services<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/getdevdone.com\/blog\/category\/front-end-development-services\" class=\"advgb-post-tax-term\">Architecture<\/a>","<a href=\"https:\/\/getdevdone.com\/blog\/category\/front-end-development-services\" class=\"advgb-post-tax-term\">Cross-platform frontend<\/a>","<a href=\"https:\/\/getdevdone.com\/blog\/category\/front-end-development-services\" class=\"advgb-post-tax-term\">JavaScript<\/a>","<a href=\"https:\/\/getdevdone.com\/blog\/category\/front-end-development-services\" class=\"advgb-post-tax-term\">MVP<\/a>","<a href=\"https:\/\/getdevdone.com\/blog\/category\/front-end-development-services\" class=\"advgb-post-tax-term\">React<\/a>","<a href=\"https:\/\/getdevdone.com\/blog\/category\/front-end-development-services\" class=\"advgb-post-tax-term\">React Native<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Architecture<\/span>","<span class=\"advgb-post-tax-term\">Cross-platform frontend<\/span>","<span class=\"advgb-post-tax-term\">JavaScript<\/span>","<span class=\"advgb-post-tax-term\">MVP<\/span>","<span class=\"advgb-post-tax-term\">React<\/span>","<span class=\"advgb-post-tax-term\">React Native<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 6 years ago","modified":"Updated 3 years ago"},"absolute_dates":{"created":"Posted on June 16, 2020","modified":"Updated on December 28, 2022"},"absolute_dates_time":{"created":"Posted on June 16, 2020 6:17 pm","modified":"Updated on December 28, 2022 1:37 pm"},"featured_img_caption":"","series_order":"","featured_image_urls":{"thumbnail_723x315":"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/28133420\/React-Native-and-PWA-400x315.png","thumbnail_723x315-2x":"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/28133420\/React-Native-and-PWA.png","thumbnail_723x315-3x":"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/28133420\/React-Native-and-PWA.png","thumbnail_770x510":"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/28133420\/React-Native-and-PWA.png","thumbnail_770x510-2x":"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/28133420\/React-Native-and-PWA.png","thumbnail_770x510-3x":"https:\/\/s3.amazonaws.com\/newblog.psd2html.com\/wp-content\/uploads\/2020\/06\/28133420\/React-Native-and-PWA.png"},"featured_post_color":"#4d67e6","author_avatar":"https:\/\/secure.gravatar.com\/avatar\/c67d54df2c6849e5b7af3126c36fe55b10f9d6a14b227d14b35af6c027abb195?s=96&d=mm&r=g","author_position":null,"reading_time":"<span class=\"span-reading-time rt-reading-time\"><span class=\"rt-label rt-prefix\"><\/span> <span class=\"rt-time\"> 5<\/span> <span class=\"rt-label rt-postfix\">min read<\/span><\/span>","prev_post":{"slug":"react-native-a-perfect-solution-for-building-cross-platform-mobile-apps","name":"React Native: A Perfect Solution for Building Cross-Platform Mobile Apps"},"next_post":{"slug":"3-mistakes-to-avoid-when-building-animated-html5-banners","name":"3 Mistakes to Avoid When Building HTML5 Banners"},"related_posts":["frontend-development-case-study","collaboration-tools-for-web-design-agencies","why-choose-the-angular-framework-for-your-new-enterprise-project-in-2021"],"_links":{"self":[{"href":"https:\/\/getdevdone.com\/blog\/wp-json\/wp\/v2\/posts\/7972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/getdevdone.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/getdevdone.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/getdevdone.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/getdevdone.com\/blog\/wp-json\/wp\/v2\/comments?post=7972"}],"version-history":[{"count":21,"href":"https:\/\/getdevdone.com\/blog\/wp-json\/wp\/v2\/posts\/7972\/revisions"}],"predecessor-version":[{"id":24739,"href":"https:\/\/getdevdone.com\/blog\/wp-json\/wp\/v2\/posts\/7972\/revisions\/24739"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/getdevdone.com\/blog\/wp-json\/wp\/v2\/media\/16391"}],"wp:attachment":[{"href":"https:\/\/getdevdone.com\/blog\/wp-json\/wp\/v2\/media?parent=7972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/getdevdone.com\/blog\/wp-json\/wp\/v2\/categories?post=7972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/getdevdone.com\/blog\/wp-json\/wp\/v2\/tags?post=7972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}