{"id":11223,"date":"2022-05-06T10:49:00","date_gmt":"2022-05-06T08:49:00","guid":{"rendered":"https:\/\/pagepro.co\/blog\/?p=11223"},"modified":"2024-09-20T15:19:47","modified_gmt":"2024-09-20T13:19:47","slug":"how-to-quit-expo-app-ios-android","status":"publish","type":"post","link":"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/","title":{"rendered":"How to Quit Expo App Completely From iOS and Android?"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"introduction\">Introduction<\/h2>\n\n\n\n<p>Expo is a fantastic tool to make an app in <a href=\"https:\/\/pagepro.co\/services\/react-native-development\" target=\"_blank\" rel=\"noreferrer noopener\">React Native<\/a>. <\/p>\n\n\n\n<p>As an Expo agency, we find developing mobile applications in a blink of an eye, without additional settings and without wasting time on configuration, as one of its main benefits.<\/p>\n\n\n\n<p>It is a very good tool to prepare both <a href=\"https:\/\/pagepro.co\/services\/mvp-development\" target=\"_blank\" rel=\"noreferrer noopener\">the MVP<\/a> or just very basic app. <\/p>\n\n\n\n<p>But sometimes we have to do something more complicated which isn&#8217;t supported by Expo &#8211; like writing our own native module or using a package. <\/p>\n\n\n\n<p>The natural thing, in this case, is <a href=\"https:\/\/pagepro.co\/blog\/how-to-eject-from-expo-managed-workflow-to-bare\/\" target=\"_blank\" rel=\"noreferrer noopener\">eject from Expo<\/a>, but sometimes we don\u2019t want to use Expo anymore at all &#8211; don\u2019t use their modules anymore or want our app weighs a little less. <\/p>\n\n\n\n<p>In this tutorial, I will show you how to quit the <a href=\"https:\/\/pagepro.co\/blog\/expo-apps\/\">Expo app<\/a> totally and have a plain Vanilla React Native app.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"starting-from-the-beginning\">Starting from the beginning<\/h2>\n\n\n\n<p>If you still have a managed workflow in your React Native Expo app, the first step should be eject to bare workflow. <\/p>\n\n\n\n<p>To do it you have to run <em>expo eject.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"600\" height=\"906\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-1.png\" alt=\"\" class=\"wp-image-11225\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-1.png 600w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-1-199x300.png 199w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-1-221x334.png 221w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-1-324x489.png 324w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure>\n\n\n\n<p>Now you have access to the native Android and iOS directories.&nbsp;<\/p>\n\n\n\n<p>Starting from SDK 43, in our Expo React Native project we have got <strong>Expo modules<\/strong>. <\/p>\n\n\n\n<p>It includes only a minimal set of packages that are needed in nearly every app and autolinking infrastructure that other Expo SDK packages are built with. <\/p>\n\n\n\n<p>This allows you to add any other Expo module from the SDK.<br><br>Mind that removing Expo completely from the project equals removing <strong>expo modules<\/strong> and all references in native iOS\/Android files.<br><br>Let\u2019s start from <strong>package.json<\/strong>. <\/p>\n\n\n\n<p>If we are using any of the Expo packages, we should find some alternative to it. <\/p>\n\n\n\n<p>In our project we are using an <strong>expo-linear-gradient<\/strong> package. <\/p>\n\n\n\n<p>After removing Expo modules from the project we can\u2019t use it anymore. <\/p>\n\n\n\n<p>Fortunately there is a <strong>react-native-linear-gradient<\/strong> package which doesn&#8217;t need Expo support.<\/p>\n\n\n\n<p>So if we find alternatives, install it and update the code. The next step will be removing Expo and all Expo packages from package.json.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"346\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-2.png\" alt=\"\" class=\"wp-image-11226\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-2.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-2-300x203.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-2-494x334.png 494w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-2-324x219.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<p><br>Then you should remove <strong>.expo directiories<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"87\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-3.png\" alt=\"\" class=\"wp-image-11227\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-3.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-3-300x51.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-3-500x85.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-3-324x55.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<p>If you finished with removing, as a next step delete <strong>babel-preset-expo<\/strong> in the <strong>babel.config.js <\/strong>and clear a <strong>metro.config.js<\/strong><br><br>In this step we need to add <strong>metro-react-native-babel-preset <\/strong>to our project.<\/p>\n\n\n\n<p>Add it by using <strong>npm\/yarn<\/strong> and then update the <strong>babel.config<\/strong> with it.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"249\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-4.png\" alt=\"\" class=\"wp-image-11228\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-4.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-4-300x146.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-4-500x243.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-4-324x158.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"204\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-5.png\" alt=\"\" class=\"wp-image-11229\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-5.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-5-300x120.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-5-500x199.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-5-324x129.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<p>Last step in JavaScript part is change in <strong>index.js<\/strong><\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-code-mind-cta c-cta-block\" style=\"background-color:#00141F;color:#FFFFFF\"><div class=\"c-cta-block__content\"><p class=\"c-cta-block__title\">Kickstart your react project with top developers<\/p><div class=\"c-cta-block__action\"><a href=\"https:\/\/pagepro.co\/consultation\" class=\"c-cta-block__button ga-cta ga-cta-consultation theme-bg-3\">SCHEDULE A CALL WITH OUR EXPERT. <\/a><\/div><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"removing-expo-from-ios\">Removing Expo from iOS<\/h2>\n\n\n\n<p>After ejecting our app, the folder structure appears in our iOS directory. <\/p>\n\n\n\n<p>It contains all the files used to <strong>run\/compile\/build<\/strong> app on our iOS devices. <\/p>\n\n\n\n<p>When we create an app with Expo &#8211; it also has references to that native files. <\/p>\n\n\n\n<p>After removing the <strong>Expo<\/strong> package, we should also remove all references from native code. <\/p>\n\n\n\n<p>These files are <strong>AppDelegate.h, AppDelegate.m <\/strong>and<strong> Podfile. <\/strong>Let\u2019s do it according to the code posted below.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"appdelegate-h\"><span class=\"underline-accent\">AppDelegate.h<\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"167\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-6.png\" alt=\"\" class=\"wp-image-11230\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-6.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-6-300x98.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-6-500x163.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-6-324x106.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"appdelegate-m\"><span class=\"underline-accent\">AppDelegate.m<\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"160\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-7.png\" alt=\"\" class=\"wp-image-11231\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-7.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-7-300x94.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-7-500x156.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-7-324x101.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"227\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-8.png\" alt=\"\" class=\"wp-image-11232\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-8.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-8-300x133.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-8-500x222.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-8-324x144.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<p><strong><br><\/strong>Now, after that 2 files, we have to make some updates using XCode. <\/p>\n\n\n\n<p>We need to remove <strong>Expo.plist<\/strong> reference. If you are a <strong>Macbook M1<\/strong> user you also have to add <strong>arm64 <\/strong>to the excluded architectures.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"259\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-10.png\" alt=\"\" class=\"wp-image-11234\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-10.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-10-300x152.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-10-500x253.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-10-324x164.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<p>(Remove that Expo.plist by clicking minus)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"245\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-11.png\" alt=\"\" class=\"wp-image-11235\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-11.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-11-300x144.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-11-500x239.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-11-324x155.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<p>(Add arm64 to Debug and Release)<strong><br><\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"podfile\"><span class=\"underline-accent\">Podfile<\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"156\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-12.png\" alt=\"\" class=\"wp-image-11236\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-12.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-12-300x91.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-12-500x152.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-12-324x99.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"351\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-14.png\" alt=\"\" class=\"wp-image-11237\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-14.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-14-300x206.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-14-487x334.png 487w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-14-324x222.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<p><strong><br><\/strong>After updating <strong>Podfile <\/strong>remove Pods directory from iOS directory and install Pods again.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"rm-rf-ios-pods-pod-install\"><span class=\"underline-accent\">rm -rf .\/ios\/Pods &amp;&amp; pod install<\/span><\/h3>\n\n\n\n<p>Last step to run our iOS app is generating a <strong>main.jsbundle <\/strong>file with bundle which is served to our app by Metro packager. <\/p>\n\n\n\n<p>To achieve that we need to run our xCode and remove references to old <strong>main.jsbundle<\/strong> (which doesn&#8217;t exist but our xCode reference to it anyway).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"257\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-15.png\" alt=\"\" class=\"wp-image-11239\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-15.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-15-300x151.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-15-500x251.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-15-324x163.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<p><br>Then we need to add a script to our <strong>package.json<\/strong> which generates a new valid bundle.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"83\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-16.png\" alt=\"\" class=\"wp-image-11240\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-16.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-16-300x49.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-16-500x81.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-16-324x53.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"yarn-run-buildios\"><span class=\"underline-accent\">yarn run build:ios<\/span><\/h3>\n\n\n\n<p>If everything will be ok you should see a new file in the iOS directory.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"271\" height=\"354\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-17.png\" alt=\"\" class=\"wp-image-11241\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-17.png 271w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-17-230x300.png 230w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-17-256x334.png 256w\" sizes=\"(max-width: 271px) 100vw, 271px\" \/><\/figure>\n\n\n\n<p>It was the last step. Try running a command to run your app &#8211; <strong>yarn run ios<\/strong><\/p>\n\n\n\n<p>Congratulations! You are free from Expo on iOS. <\/p>\n\n\n\n<p>It&#8217;s time for Android now.<\/p>\n\n\n\n<div class=\"c-newsletter-block-acf\">\n    <p class=\"c-newsletter-block-acf__title c-newsletter__header\">\n        EXPERT INSIGHTS, FRICTIONLESSLY DELIVERED!    <\/p>\n    <p class=\"c-newsletter-block-acf__desc c-newsletter__header\">\n        Curated tech news delivered straight to your inbox every month.\r\n\r\n    <\/p>\n    <form method=\"post\" class=\"c-newsletter-block-acf__form js-newsletter-form c-newsletter__action\" name=\"newsletter-block-form\">\n        <input name=\"newsletter-email\" id=\"newsletter-email\" type=\"text\" class=\"c-newsletter-block-acf__input js-newsletter-input\" placeholder=\"Company Email\" \/>\n        <input name=\"newsletter-campaign\" id=\"newsletter-campaign\" type=\"hidden\" value=\"\" \/>\n        <div class=\"c-newsletter-block-acf__group\">\n            <input name=\"consent\" id=\"consent\" type=\"checkbox\" class=\"js-newsletter-consent\" \/>\n            <label class=\"c-newsletter-block-acf__label\" for=\"consent\">I accept the <a href=\"https:\/\/pagepro.co\/privacy-policy\">Privacy Policy<\/a> and agree to process my personal data by Pagepro for marketing purposes.<\/label>\n        <\/div>\n        <input type=\"submit\" class=\"c-newsletter-block-acf__button button js-newsletter-sub ga-newsletter-form-content\" value=\"Sign up\" \/>\n        <p class=\"theme-size-1 js-message-valid is-hidden is-invalid\"><\/p>\n    <\/form>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"removing-expo-from-android\">Removing Expo from Android<\/h2>\n\n\n\n<p>Similar to iOS, we need to remove all references from native code. <\/p>\n\n\n\n<p>There are MainActivity.java, MainApplication.java and settings.gradle files. <\/p>\n\n\n\n<p>This step is a little easier than the iOS procedure.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"mainactivity-java\"><span class=\"underline-accent\">MainActivity.java<\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"187\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-18.png\" alt=\"\" class=\"wp-image-11242\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-18.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-18-300x110.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-18-500x183.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-18-324x118.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"181\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-19.png\" alt=\"\" class=\"wp-image-11243\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-19.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-19-300x106.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-19-500x177.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-19-324x115.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"mainappliaction-java\"><span class=\"underline-accent\">MainAppliaction.java<\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"480\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-20.png\" alt=\"\" class=\"wp-image-11244\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-20.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-20-300x281.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-20-356x334.png 356w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-20-324x304.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"223\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-21.png\" alt=\"\" class=\"wp-image-11245\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-21.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-21-300x131.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-21-500x218.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-21-324x141.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"settings-gradle\"><span class=\"underline-accent\">settings.gradle<\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"512\" height=\"69\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-22.png\" alt=\"\" class=\"wp-image-11246\" srcset=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-22.png 512w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-22-300x40.png 300w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-22-500x67.png 500w, https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2022\/04\/Quit-Expo-22-324x44.png 324w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<p>These changes completely removes Expo from the Android part of the application. <\/p>\n\n\n\n<p>Finally, we are free from Expo and can continue our project in Vanila manner.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">Conclusion<\/h2>\n\n\n\n<p>When I wanted to remove an Expo from my project I couldn\u2019t find any tutorial or tips on how to do it. <\/p>\n\n\n\n<p>I hope this guide helps you with removing and everything works fine after those changes. <\/p>\n\n\n\n<p>If you have got any questions please feel free to leave it in the comments.<\/p>\n\n\n<div class=\"c-newsletter-sendgrid-wrapper js-newsletter-sendgrid-wrapper ga-filedownload-viewed\">\n    <div class=\"c-newsletter-sendgrid\">\n                    <p class=\"c-newsletter-sendgrid__title\">\n                Want to publish you Expo App instead of quitting it?             <\/p>\n        \n         \n            <p class=\"c-newsletter-sendgrid__description\">\n                Get Your Essential Checklist for Publishing Expo React Native Apps &#8211; a step-by-step guide to deploying apps with confidence and ease.            <\/p>\n        \n        <form action=\"\" class=\"c-newsletter-sendgrid__form f-form js-newsletter-sendgrid\" data-key=\"b59fc663-b9b3-465f-8d97-58e1b3636234\">\n            <div class=\"c-newsletter-sendgrid__form-mail\">\n                <label class=\"c-label\" for=\"newsletter_email\">Company E-mail address<\/label>\n                <input class=\"c-input js-newsletter-sendgrid-email\" type=\"email\" id=\"newsletter_email\" required>\n                <input class=\"c-newsletter-sendgrid__button ga-cta-filedownload\" type=\"submit\" value=\"Download Now\">\n            <\/div>\n            <div class=\"c-newsletter-sendgrid__form-consent\">\n                                                        <input class=\"c-checkbox js-newsletter-consent\" type=\"checkbox\" name=\"newsletter_consent\" id=\"newsletter_consent_1\" required>\n                    <label class=\"c-label\" for=\"newsletter_consent_1\">By providing your e-mail address, you agree to our Privacy Policy. We will not send you any spam \u2013 only link for downloading the e-book and probably some more useful resources in the future.<\/label>\n                            <\/div>\n        <\/form>\n\n        <div class=\"c-newsletter-sendgrid__cover-container\">\n                            <img decoding=\"async\" class=\"c-newsletter-sendgrid__cover-1\" src=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2023\/08\/Ebook-Expo-React-Native.png\" alt=\"Cover image with red and black geometric shapes, the Pagepro logo, and white text: Publishing Expo App React Native\u2014Your Essential Checklist.\" >\n                                            <\/div>\n\n        <div class=\"c-newsletter-sendgrid__popup-wrapper js-newsletter-sendgrid-popup is-hidden\">\n            <div class=\"c-newsletter-sendgrid__popup\">\n                <div class=\"c-newsletter-sendgrid__popup-icon\">\n                    <svg width=\"140\" height=\"140\" viewBox=\"0 0 140 140\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <g clip-path=\"url(#clip0_6621_2135)\">\n                    <path d=\"M65.625 100.625C65.625 109.908 69.3125 118.81 75.8763 125.374C82.44 131.938 91.3424 135.625 100.625 135.625C109.908 135.625 118.81 131.938 125.374 125.374C131.938 118.81 135.625 109.908 135.625 100.625C135.625 91.3424 131.938 82.44 125.374 75.8763C118.81 69.3125 109.908 65.625 100.625 65.625C91.3424 65.625 82.44 69.3125 75.8763 75.8763C69.3125 82.44 65.625 91.3424 65.625 100.625Z\" stroke=\"#0A2B3D\" stroke-width=\"8.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                    <path d=\"M116.223 90.4517L99.2774 113.044C98.9005 113.545 98.4206 113.959 97.8701 114.259C97.3196 114.558 96.7113 114.737 96.0862 114.781C95.461 114.826 94.8335 114.736 94.246 114.518C93.6584 114.3 93.1244 113.959 92.6799 113.517L83.9299 104.767\" stroke=\"#0A2B3D\" stroke-width=\"8.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                    <path d=\"M48.125 91.875H13.125C10.8044 91.875 8.57876 90.9531 6.93782 89.3122C5.29687 87.6712 4.375 85.4456 4.375 83.125V13.125C4.375 10.8044 5.29687 8.57876 6.93782 6.93782C8.57876 5.29687 10.8044 4.375 13.125 4.375H118.125C120.446 4.375 122.671 5.29687 124.312 6.93782C125.953 8.57876 126.875 10.8044 126.875 13.125V52.5\" stroke=\"#0A2B3D\" stroke-width=\"8.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                    <path d=\"M124.898 7.5835L77.3909 44.1235C74.0176 46.7185 69.881 48.1255 65.625 48.1255C61.3691 48.1255 57.2325 46.7185 53.8592 44.1235L6.35254 7.5835\" stroke=\"#0A2B3D\" stroke-width=\"8.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/>\n                    <\/g>\n                    <defs>\n                    <clipPath id=\"clip0_6621_2135\">\n                    <rect width=\"140\" height=\"140\" fill=\"white\"\/>\n                    <\/clipPath>\n                    <\/defs>\n                    <\/svg>\n                <\/div>\n                                    <p class=\"c-newsletter-sendgrid__popup-text\">\n                        Check your inbox for free materials                    <\/p>\n                                <div class=\"c-newsletter-sendgrid__popup-action\">\n                    <button class=\"c-newsletter-sendgrid__button c-newsletter-sendgrid__button--full-width js-newsletter-sendgrid-popup-close\">Close<\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"read-more\">Read more <\/h2>\n\n\n\n<p><a href=\"https:\/\/pagepro.co\/blog\/publishing-expo-react-native-app-to-ios-and-android\/\" target=\"_blank\" rel=\"noreferrer noopener\">How to publish React Native App to iOS and Android<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/pagepro.co\/blog\/react-native-over-the-air-updates\/\" target=\"_blank\" rel=\"noreferrer noopener\">How to use React Native Over The Air Updates<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/pagepro.co\/blog\/how-to-optimize-images-for-web\/\" target=\"_blank\" rel=\"noreferrer noopener\">Optimizing Images for Web Performance<\/a><\/p>\n\n\n\n<p> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial I will show you how to quit the Expo app totally and have a plain Vanilla React Native app.<\/p>\n","protected":false},"author":2,"featured_media":6613,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[294],"tags":[59,503,317,69],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Quit Expo App Completely From iOS and Android? - Pagepro<\/title>\n<meta name=\"description\" content=\"In this tutorial I will show you how to quit the Expo app totally and have a plain Vanilla React Native app.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Quit Expo App Completely From iOS and Android? - Pagepro\" \/>\n<meta property=\"og:description\" content=\"In this tutorial I will show you how to quit the Expo app totally and have a plain Vanilla React Native app.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/\" \/>\n<meta property=\"og:site_name\" content=\"Pagepro\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/thisispagepro\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-06T08:49:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-20T13:19:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/05\/ReactNativepicture.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"682\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Norbert Kamienski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Norbert Kamienski\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/\"},\"author\":{\"name\":\"Norbert Kamienski\",\"@id\":\"https:\/\/pagepro.co\/blog\/#\/schema\/person\/467d61fcdf677085e920f7493a02f3b4\"},\"headline\":\"How to Quit Expo App Completely From iOS and Android?\",\"datePublished\":\"2022-05-06T08:49:00+00:00\",\"dateModified\":\"2024-09-20T13:19:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/\"},\"wordCount\":848,\"publisher\":{\"@id\":\"https:\/\/pagepro.co\/blog\/#organization\"},\"keywords\":[\"best practices\",\"expo\",\"for developers\",\"tips\"],\"articleSection\":[\"Mobile Development\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/\",\"url\":\"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/\",\"name\":\"How to Quit Expo App Completely From iOS and Android? - Pagepro\",\"isPartOf\":{\"@id\":\"https:\/\/pagepro.co\/blog\/#website\"},\"datePublished\":\"2022-05-06T08:49:00+00:00\",\"dateModified\":\"2024-09-20T13:19:47+00:00\",\"description\":\"In this tutorial I will show you how to quit the Expo app totally and have a plain Vanilla React Native app.\",\"breadcrumb\":{\"@id\":\"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/pagepro.co\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\/\/pagepro.co\/blog\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to Quit Expo App Completely From iOS and Android?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/pagepro.co\/blog\/#website\",\"url\":\"https:\/\/pagepro.co\/blog\/\",\"name\":\"Pagepro\",\"description\":\"Frictionless Next.js, Expo &amp; Sanity Development Blog\",\"publisher\":{\"@id\":\"https:\/\/pagepro.co\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/pagepro.co\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/pagepro.co\/blog\/#organization\",\"name\":\"Pagepro\",\"url\":\"https:\/\/pagepro.co\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/pagepro.co\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2020\/08\/logo_pagepro-b66d228a1e-1.png\",\"contentUrl\":\"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2020\/08\/logo_pagepro-b66d228a1e-1.png\",\"width\":440,\"height\":200,\"caption\":\"Pagepro\"},\"image\":{\"@id\":\"https:\/\/pagepro.co\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/thisispagepro\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/pagepro.co\/blog\/#\/schema\/person\/467d61fcdf677085e920f7493a02f3b4\",\"name\":\"Norbert Kamienski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/pagepro.co\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bb75ed486968c658d138d548af600c40?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bb75ed486968c658d138d548af600c40?s=96&d=mm&r=g\",\"caption\":\"Norbert Kamienski\"},\"description\":\"Norbert is an Engineering Manager and React Native Expert at Pagepro, where his expertise and leadership have been pivotal for over eight years. Renowned for his professionalism and meticulous attention to detail, Norbert has a well-earned reputation for optimizing app performance to its peak. His technical insight and deep understanding of React Native have made him a trusted figure both within the team and among clients.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/norbert-kamienski\/\"],\"url\":\"https:\/\/pagepro.co\/blog\/author\/norbert-kamienski\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Quit Expo App Completely From iOS and Android? - Pagepro","description":"In this tutorial I will show you how to quit the Expo app totally and have a plain Vanilla React Native app.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/","og_locale":"en_US","og_type":"article","og_title":"How to Quit Expo App Completely From iOS and Android? - Pagepro","og_description":"In this tutorial I will show you how to quit the Expo app totally and have a plain Vanilla React Native app.","og_url":"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/","og_site_name":"Pagepro","article_publisher":"https:\/\/www.facebook.com\/thisispagepro","article_published_time":"2022-05-06T08:49:00+00:00","article_modified_time":"2024-09-20T13:19:47+00:00","og_image":[{"width":1200,"height":682,"url":"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2021\/05\/ReactNativepicture.png","type":"image\/png"}],"author":"Norbert Kamienski","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Norbert Kamienski","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/#article","isPartOf":{"@id":"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/"},"author":{"name":"Norbert Kamienski","@id":"https:\/\/pagepro.co\/blog\/#\/schema\/person\/467d61fcdf677085e920f7493a02f3b4"},"headline":"How to Quit Expo App Completely From iOS and Android?","datePublished":"2022-05-06T08:49:00+00:00","dateModified":"2024-09-20T13:19:47+00:00","mainEntityOfPage":{"@id":"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/"},"wordCount":848,"publisher":{"@id":"https:\/\/pagepro.co\/blog\/#organization"},"keywords":["best practices","expo","for developers","tips"],"articleSection":["Mobile Development"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/","url":"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/","name":"How to Quit Expo App Completely From iOS and Android? - Pagepro","isPartOf":{"@id":"https:\/\/pagepro.co\/blog\/#website"},"datePublished":"2022-05-06T08:49:00+00:00","dateModified":"2024-09-20T13:19:47+00:00","description":"In this tutorial I will show you how to quit the Expo app totally and have a plain Vanilla React Native app.","breadcrumb":{"@id":"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/pagepro.co\/blog\/how-to-quit-expo-app-ios-android\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/pagepro.co\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/pagepro.co\/blog\/"},{"@type":"ListItem","position":3,"name":"How to Quit Expo App Completely From iOS and Android?"}]},{"@type":"WebSite","@id":"https:\/\/pagepro.co\/blog\/#website","url":"https:\/\/pagepro.co\/blog\/","name":"Pagepro","description":"Frictionless Next.js, Expo &amp; Sanity Development Blog","publisher":{"@id":"https:\/\/pagepro.co\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pagepro.co\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/pagepro.co\/blog\/#organization","name":"Pagepro","url":"https:\/\/pagepro.co\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/pagepro.co\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2020\/08\/logo_pagepro-b66d228a1e-1.png","contentUrl":"https:\/\/pagepro.co\/blog\/wp-content\/uploads\/2020\/08\/logo_pagepro-b66d228a1e-1.png","width":440,"height":200,"caption":"Pagepro"},"image":{"@id":"https:\/\/pagepro.co\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/thisispagepro"]},{"@type":"Person","@id":"https:\/\/pagepro.co\/blog\/#\/schema\/person\/467d61fcdf677085e920f7493a02f3b4","name":"Norbert Kamienski","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/pagepro.co\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/bb75ed486968c658d138d548af600c40?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bb75ed486968c658d138d548af600c40?s=96&d=mm&r=g","caption":"Norbert Kamienski"},"description":"Norbert is an Engineering Manager and React Native Expert at Pagepro, where his expertise and leadership have been pivotal for over eight years. Renowned for his professionalism and meticulous attention to detail, Norbert has a well-earned reputation for optimizing app performance to its peak. His technical insight and deep understanding of React Native have made him a trusted figure both within the team and among clients.","sameAs":["https:\/\/www.linkedin.com\/in\/norbert-kamienski\/"],"url":"https:\/\/pagepro.co\/blog\/author\/norbert-kamienski\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/posts\/11223"}],"collection":[{"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/comments?post=11223"}],"version-history":[{"count":24,"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/posts\/11223\/revisions"}],"predecessor-version":[{"id":17886,"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/posts\/11223\/revisions\/17886"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/media\/6613"}],"wp:attachment":[{"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/media?parent=11223"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/categories?post=11223"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pagepro.co\/blog\/wp-json\/wp\/v2\/tags?post=11223"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}