{"id":3436,"date":"2018-05-24T04:39:59","date_gmt":"2018-05-24T04:39:59","guid":{"rendered":"https:\/\/www.botreetechnologies.com\/blog\/?p=3436"},"modified":"2020-12-02T16:00:54","modified_gmt":"2020-12-02T10:30:54","slug":"optimise-a-react-native-app-for-better-performance","status":"publish","type":"post","link":"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/","title":{"rendered":"How to Optimise the Performance of React Native Apps"},"content":{"rendered":"\n<p>Performance is quite an abstract word, for a mobile app, there are different parameters to be considered.<\/p>\n\n\n\n<p><b>For a Lehman,<\/b><\/p>\n\n\n\n<p>The app should be working fine, no sluggish navigation or freezed screens, take less memory and CPU and so ultimately less battery usage.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><b>For a developer,<\/b><\/h2>\n\n\n\n<p>If it has background threads\/tasks like location tracking\/music player\/Bluetooth connectivity then it should be handled carefully so that it eats less battery. On android it should honour the doze mode and on iOS (Let&#8217;s not talk on this, it has many things to look at in the name of &#8216;policies&#8217;!)<\/p>\n\n\n\n<p>It is quite obvious for a development team, that while working on React\/ReactNative we found many issues just because of fast paced releases every week for every package\u200a-\u200aincluding React\/ReactNative itself! <\/p>\n\n\n\n<p>To resolve most of the issues we have to manage the ongoing work in parallel with the upgrade\/migration task. It is not an easy thing, but it is also necessary to do this on time to time basis so that we can keep our application up to date with the latest versions.<\/p>\n\n\n\n<p>Developers can <a href=\"https:\/\/www.botreetechnologies.com\/react-native-development\" target=\"_blank\" rel=\"noreferrer noopener\">build a React Native application<\/a> using a single codebase. The cross-platform capabilities make it the desired framework for mobile app development. A React Native app works with the native components of a device and provides a native look-and-feel.<\/p>\n\n\n\n<p>As compared to other frameworks, React Native application performance is much better. Since there are fewer lines of code, it reduces the lag in the React Native app. And even if it\u2019s there, React Native optimization enables the application to upgrade and perform better.<\/p>\n\n\n\n<p>Based on the above, we derived a few sets of steps to improve the performance and optimizing React Native Apps:-<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Upgrade all the Packages<\/h2>\n\n\n\n<p>It should have all the latest packages, all of them! Let us understand that most of the packages have bug fixes every few weeks in their new versions, including logical improvements. This could automatically improve the performance in some extent.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Use better Navigation Libraries<\/h2>\n\n\n\n<p>The latest version of ReactNative has improved navigator now, most of the apps using the versions prior to 0.48.x are using the <i>react-native-deprecated-custom-components<\/i> for a navigator, this can be now replaced with <a href=\"https:\/\/facebook.github.io\/react-native\/docs\/navigation.html\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/facebook.github.io\/react-native\/docs\/navigation.html<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Use Common State Management &#8211; Redux or Flux<\/h2>\n\n\n\n<p>It is common for developers to use native component state management if the apps are very small or having a few screens only. This makes sense as there is not much to do for managing states between different screens, but this would be an overkill once the app is growing in size, and then it becomes essential to have common state store so that all different screens (components) can access what is needed easily. I prefer to use Redux!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Now, let&#8217;s talk on it in detail!<\/h3>\n\n\n\n<h2 class=\"wp-block-heading\">1. Upgrade React Native to the latest version<\/h2>\n\n\n\n<p>Every developer knows that we can simply use the <i>react-native upgrade<\/i> command, but it would also need us to look at the versions of all the packages\/libraries we have used in <i>package.json<\/i>.<\/p>\n\n\n\n<p>I have gone through the options available and found that the best way to go with is as per the <a href=\"https:\/\/facebook.github.io\/react-native\/docs\/upgrading.html\" target=\"_blank\" rel=\"noopener noreferrer\">react-native upgrade guide<\/a>. It suggests using the <i>react-native-git-upgrade<\/i> package.<\/p>\n\n\n\n<p>The module react-native-git-upgrade provides a one-step operation to upgrade the source files with a minimum of conflicts!<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Install the <i>react-native-git-upgrade<\/i> as per <a href=\"https:\/\/facebook.github.io\/react-native\/docs\/upgrading.html\" target=\"_blank\" rel=\"noopener noreferrer\">react-native upgrade guide<\/a>.<\/li><li>Then execute <i>react-native-git-upgrade 0.55.4<\/i>, you can change the version here with whichever you want to upgrade to.<\/li><li>This will install the new react-native version and change the version in <i>package.json<\/i> file. It will also create a <i>.patch<\/i> file inside <i>\/tmp<\/i> dir. Like, <i>\/tmp\/react-native-git-upgrade\/upgrade_0.48.0_0.55.4.patch<\/i><\/li><li>It may not apply this automatically, so we need to review this and then apply manually by using, git apply &#8211;reject &#8211;whitespace=fix \/tmp\/react-native-git-upgrade\/upgrade_0.48.0_0.55.4.patch as I was doing upgrade from 0.48.0 to 0.55.4<\/li><li>This should now apply all the changes in the <i>.patch<\/i> file to our codebase.<\/li><li>Start <i>react-native start<\/i> again<\/li><li>Run the debug build using <i>react-native run-android<\/i> to test the new build on Android.<\/li><\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Upgrade dependency packages.<\/h4>\n\n\n\n<p>You will face many issues if there are any legacy\/deprecated\/removed classes from any of the package dependencies, first, we need to fix this to make the build successful.<\/p>\n\n\n\n<p>Like, <i>react-native-camera<\/i> package has now different classname for the <i>Camera<\/i>, so that needs to be updated everywhere in the codebase.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Upgrade Android SDK versions.<\/h4>\n\n\n\n<p>Change the Android <i>build.gradle<\/i> file to use the latest versions of SDKs &#8211; Like, I have configured this inside my <i>android\/build.gradle<\/i> file,<\/p>\n\n\n\n<p><code>ext {<br> compileSdkVersion = 27<br> targetSdkVersion = 27<br> buildToolsVersion = \"27.0.3\"<br> supportLibVersion = \"27.1.1\"<br> googlePlayServicesVersion = \"15.0.1\"<br> }<\/code><\/p>\n\n\n\n<p>You may face issues for some of the node modules regarding compile SDK versions, never mind, for that we can define the SDK for all subprojects as well!<\/p>\n\n\n\n<p><code>subprojects {<br> afterEvaluate {<br> project -&gt;<br> if (project.hasProperty(\"android\")) {<br> android {<br> compileSdkVersion 27<br> buildToolsVersion '27.0.3'<br> }<br> }<br> }<br> }<\/code><\/p>\n\n\n\n<p>Now, run the Android build and test the app. Once it runs successfully, you will see may find more issues on different packages which need to be resolved one by one.<\/p>\n\n\n\n<p>Finally, when everything works fine, test your application &#8211; manually as well by running your tests &#8211; to ensure that everything is working fine.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">2. Use better navigation libraries &#8211; upgrade to react navigation<\/h2>\n\n\n\n<p>It is recommended that if we use the latest version of React Native then we should use the latest React Navigation &#8211; Unless we have a specific reason to stick to old!<\/p>\n\n\n\n<p>As you are already using the navigation library, you should have a method like <i>_navigate<\/i> in your component. This should not take much time for us,<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>The first step could be to change the implementation of this method and try running the app, that way we need changes at a few places.<\/li><li>Once it works for one component\/screen, we can do the same for all the screens.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">3.&nbsp;Use common state management &#8211; Redux or Flux<\/h2>\n\n\n\n<p>Every small app starts with basic state management at the component level, assuming that we will use Redux when we need it. But, when it grows big there is no time for refactoring and adding Redux, and then the code becomes very complex just because we have to manage states between different components!<\/p>\n\n\n\n<p>It is recommended to use Redux or Flux so that all app state is accessible easily between different components. There are plenty of articles and videos available showing how to use Redux with React\/ReactNative.<\/p>\n\n\n\n<p>Some teams also make use of <i>AsyncStorage<\/i> for small apps, to avoid the complexity of Redux (Yes, it looks complex at a first glance, as it is using functional programming paradigm!). This will allow to read any state anywhere, but then we have to remember to remove specific keys when it&#8217;s needed. And this also does not scale to a bigger level, rather this is not the intended use of <i>AsyncStorage<\/i>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Upgrade React Native App to Redux<\/h2>\n\n\n\n<p>It is very cumbersome to move to Redux from the basic react-native app, so maybe the following steps would help.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Setup redux in your application, you can follow the installation guidelines and find some example application article which explains the usage. Use new sample components so that you can test the whole flow &#8211; Like, a simple TODO list app would help.<\/li><li>Once you have set it up, add example app components in a separate folder &#8211; Like, create a new folder inside source dir and install all your sample components there.<\/li><li>Create your route for the new component so that you can use it in navigation.<\/li><li>Once you are done with this, and your sample screen is working fine with Redux, its now time to touch the real thing! Identify the screen which has very few state management flows.<\/li><li>Note down the events\/handlers where you are changing the state, Copy that component and give it a similar name- Like, MyComponentOne<\/li><li>Change code in there &#8211; install Redux, set your containers and reducers for all different events which are updating the state.<\/li><li>Once the new version is ready, use that in place of your old component in real code, and see it in action!<\/li><li>Now, test that screen properly &#8211; It should have the same events and state as the previous version. If you have written any tests, this should be faster!<\/li><li>Once you are satisfied with it, you can follow the same process for all your components and, that&#8217;s it!<\/li><\/ul>\n\n\n\n<p>Just one thing to remember, the whole state of any component should now be in redux store and the life cycle of pure react component would be changed accordingly as you would have defined new containers and reducers!<\/p>\n\n\n\n<p><strong>Conclusion<\/strong><\/p>\n\n\n\n<p>Improving the React Native performance will allow the application to behave properly. React Native implementation in the right IDE is essential to achieve the most our of the application. You need to optimize performance issues in React Native so that the development is seamless and completed within a quick period of time.<\/p>\n\n\n\n<p>There is no silver bullet to it, refactoring is always a continuous process which should be done frequently to keep your app ahead of all issues!<\/p>\n\n\n\n<p>If you are looking for <a href=\"https:\/\/www.botreetechnologies.com\/hire-react-native-developers\" target=\"_blank\" rel=\"noreferrer noopener\">React Native developers<\/a>, we have a team that can help you. Our 30+ React experts can build high-quality, scalable mobile applications.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><a href=\"https:\/\/www.botreetechnologies.com\/contact\" target=\"_blank\" rel=\"noopener noreferrer\">Consulting is free<\/a>&nbsp;\u2013 let us help you grow!<\/h3>\n","protected":false},"excerpt":{"rendered":"<p>Performance is quite an abstract word, for a mobile app,&#8230;<\/p>\n","protected":false},"author":6,"featured_media":12964,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[72,10],"tags":[],"class_list":["post-3436","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-react-native","category-technology"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Optimise a React Native App for Better Performance!<\/title>\n<meta name=\"description\" content=\"Performance is quite an abstract word, for a mobile app, there are different parameters to be considered to Optimise a 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:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Optimise a React Native App for Better Performance!\" \/>\n<meta property=\"og:description\" content=\"Performance is quite an abstract word, for a mobile app, there are different parameters to be considered to Optimise a React Native App.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/\" \/>\n<meta property=\"og:site_name\" content=\"BoTree Technologies\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/BoTreeTechnologies\/\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-24T04:39:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-12-02T10:30:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/05\/optimise-a-react-native-app.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"853\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Parth Barot\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@BoTreeTech\" \/>\n<meta name=\"twitter:site\" content=\"@BoTreeTech\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Parth Barot\" \/>\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:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/\"},\"author\":{\"name\":\"Parth Barot\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/1952b3c6679346e5a2792581a67b1b0f\"},\"headline\":\"How to Optimise the Performance of React Native Apps\",\"datePublished\":\"2018-05-24T04:39:59+00:00\",\"dateModified\":\"2020-12-02T10:30:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/\"},\"wordCount\":1545,\"commentCount\":1,\"image\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/05\/optimise-a-react-native-app.jpg\",\"articleSection\":[\"React Native\",\"Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/\",\"name\":\"Optimise a React Native App for Better Performance!\",\"isPartOf\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/05\/optimise-a-react-native-app.jpg\",\"datePublished\":\"2018-05-24T04:39:59+00:00\",\"dateModified\":\"2020-12-02T10:30:54+00:00\",\"author\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/1952b3c6679346e5a2792581a67b1b0f\"},\"description\":\"Performance is quite an abstract word, for a mobile app, there are different parameters to be considered to Optimise a React Native App.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/#primaryimage\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/05\/optimise-a-react-native-app.jpg\",\"contentUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/05\/optimise-a-react-native-app.jpg\",\"width\":1280,\"height\":853,\"caption\":\"Tips to improve the performance of React Native Apps\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.botreetechnologies.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Optimise the Performance of React Native Apps\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#website\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/\",\"name\":\"BoTree Technologies\",\"description\":\"Committed to inspire generation.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.botreetechnologies.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/1952b3c6679346e5a2792581a67b1b0f\",\"name\":\"Parth Barot\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/parth-barot-150x150.png\",\"url\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/parth-barot-150x150.png\",\"contentUrl\":\"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/parth-barot-150x150.png\",\"caption\":\"Parth Barot\"},\"description\":\"Parth is the co-founder and CTO at BoTree Technologies. He has worked on building products in different domains and technologies. He is now managing research and pre-sales by supporting it with his problem-solving approach.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Optimise a React Native App for Better Performance!","description":"Performance is quite an abstract word, for a mobile app, there are different parameters to be considered to Optimise a 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:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/","og_locale":"en_US","og_type":"article","og_title":"Optimise a React Native App for Better Performance!","og_description":"Performance is quite an abstract word, for a mobile app, there are different parameters to be considered to Optimise a React Native App.","og_url":"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/","og_site_name":"BoTree Technologies","article_publisher":"https:\/\/www.facebook.com\/BoTreeTechnologies\/","article_published_time":"2018-05-24T04:39:59+00:00","article_modified_time":"2020-12-02T10:30:54+00:00","og_image":[{"width":1280,"height":853,"url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/05\/optimise-a-react-native-app.jpg","type":"image\/jpeg"}],"author":"Parth Barot","twitter_card":"summary_large_image","twitter_creator":"@BoTreeTech","twitter_site":"@BoTreeTech","twitter_misc":{"Written by":"Parth Barot","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/#article","isPartOf":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/"},"author":{"name":"Parth Barot","@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/1952b3c6679346e5a2792581a67b1b0f"},"headline":"How to Optimise the Performance of React Native Apps","datePublished":"2018-05-24T04:39:59+00:00","dateModified":"2020-12-02T10:30:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/"},"wordCount":1545,"commentCount":1,"image":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/#primaryimage"},"thumbnailUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/05\/optimise-a-react-native-app.jpg","articleSection":["React Native","Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/","url":"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/","name":"Optimise a React Native App for Better Performance!","isPartOf":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/#primaryimage"},"image":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/#primaryimage"},"thumbnailUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/05\/optimise-a-react-native-app.jpg","datePublished":"2018-05-24T04:39:59+00:00","dateModified":"2020-12-02T10:30:54+00:00","author":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/1952b3c6679346e5a2792581a67b1b0f"},"description":"Performance is quite an abstract word, for a mobile app, there are different parameters to be considered to Optimise a React Native App.","breadcrumb":{"@id":"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/#primaryimage","url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/05\/optimise-a-react-native-app.jpg","contentUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2018\/05\/optimise-a-react-native-app.jpg","width":1280,"height":853,"caption":"Tips to improve the performance of React Native Apps"},{"@type":"BreadcrumbList","@id":"https:\/\/www.botreetechnologies.com\/blog\/optimise-a-react-native-app-for-better-performance\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.botreetechnologies.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Optimise the Performance of React Native Apps"}]},{"@type":"WebSite","@id":"https:\/\/www.botreetechnologies.com\/blog\/#website","url":"https:\/\/www.botreetechnologies.com\/blog\/","name":"BoTree Technologies","description":"Committed to inspire generation.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.botreetechnologies.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.botreetechnologies.com\/blog\/#\/schema\/person\/1952b3c6679346e5a2792581a67b1b0f","name":"Parth Barot","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/parth-barot-150x150.png","url":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/parth-barot-150x150.png","contentUrl":"https:\/\/www.botreetechnologies.com\/blog\/wp-content\/uploads\/2020\/10\/parth-barot-150x150.png","caption":"Parth Barot"},"description":"Parth is the co-founder and CTO at BoTree Technologies. He has worked on building products in different domains and technologies. He is now managing research and pre-sales by supporting it with his problem-solving approach."}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/3436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/comments?post=3436"}],"version-history":[{"count":5,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/3436\/revisions"}],"predecessor-version":[{"id":12988,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/posts\/3436\/revisions\/12988"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/media\/12964"}],"wp:attachment":[{"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/media?parent=3436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/categories?post=3436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.botreetechnologies.com\/blog\/wp-json\/wp\/v2\/tags?post=3436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}