{"id":3364,"date":"2020-07-23T20:50:45","date_gmt":"2020-07-23T20:50:45","guid":{"rendered":"https:\/\/ionicframework.com\/blog\/?p=3364"},"modified":"2020-07-28T16:44:48","modified_gmt":"2020-07-28T16:44:48","slug":"ask-a-lead-dev-react-native-or-ionic","status":"publish","type":"post","link":"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic","title":{"rendered":"Ask a Lead Dev: React Native or Ionic?"},"content":{"rendered":"<p>Hi there, I&#8217;m Eric Horodyski, the newest Solutions Architect here at Ionic. Before joining the team here, the previous five years of my professional career was spent as a Lead Developer building dozens of hybrid mobile applications, some in React Native, the others in Ionic.<\/p>\n<p>The interest in hybrid mobile development continued to grow within my professional circle throughout my years working as a Lead Developer. Some people saw it as an affordable way for their organization to enter the mobile space, others saw it as a way to consolidate existing codebases. Whatever the reason be, my involvement started when this question came about: \u201cShould we pick Ionic or React Native?\u201d<\/p>\n<p><!--more--><\/p>\n<p>It\u2019s an important question &#8211; time and money are going to be invested in this decision. Arguably as important, this decision sets the direction for development teams. What\u2019s unfortunate is that material written for that question is, in my opinion, of poor quality. After researching this topic thoroughly, I find that most articles will pit React Native and Ionic against each other in cagematch fashion: two frameworks enter, one framework leaves.<\/p>\n<p>Sticking with fighting metaphors, these articles provide a tale-of-the-tape; comparing differences like GitHub stars and framerate. I\u2019ve yet to read an article comparing frameworks on client requirements, project complexity, and organizational needs; factors that carry far more weight than hitting 60 frames-per-second.<\/p>\n<p>The honest truth is that both Ionic and React Native enable developers to build beautiful, performant mobile apps, which made it a very difficult choice to have to make as a Lead Developer. I can\u2019t give you a \u201cone-size-fits-all\u201d answer here &#8212; if that\u2019s what you were looking for with this article you can bail and I\u2019ll understand. I <em>can<\/em> provide insight into lessons learned and experience gained leading projects in both projects that I wish I had known the first time I had to make that decision.<\/p>\n<h2>Misconceptions<\/h2>\n<p>Honestly speaking, I haven\u2019t read a comparison article that doesn\u2019t position React Native as the better framework; it leverages actual native components so performance is better, and it creates standard native projects so you can more easily mix-and-match JavaScript and native code together.<\/p>\n<p>During my first year or so developing hybrid mobile apps, I strictly used Ionic and Cordova. I was excited to dig into React Native when the time came, but quickly realized that the comparison pieces were a bit misleading.<\/p>\n<h3>Performance is Framework Agnostic<\/h3>\n<p>Some framework comparison articles come with benchmarks that showcase React Native as the more performant platform. While this may be true in theory, that doesn\u2019t mean it always applies in practice. Throw in some complexity and sprinkle in poorly written code, and you can easily build a poorly performant React Native project that is slower than an Ionic project.<\/p>\n<p>Case-in-point, I worked on two projects (one in each framework) that coincidentally had a similar requirement: guide the user through a multi-step form submission process. The React Native project had a notable 0.2 second lag as it loaded each step. On the other hand, the Ionic project had lightning fast navigation even though it was the more complex implementation.<\/p>\n<p>A bit of debugging showed that the libraries we used for navigation with React Native were the cause &#8211; they just weren\u2019t as performant as Angular\u2019s router.<\/p>\n<h3>Bridging Native Code is Eerily Similar<\/h3>\n<p>Comparison pieces led me to believe that the process to bridge native code into React Native was a superior experience, and that it would be easier to bring on native mobile developers to a React Native project than an Ionic project.<\/p>\n<p>As it turns out, the process is basically the same with both frameworks. There\u2019s a standard interface to apply your native code to, used to expose native functions to your JavaScript project. Configuration changes are made to the project and app startup logic.<\/p>\n<p>Throwing Capacitor into the mix &#8212; which adds native projects as source artifacts &#8212; you can bridge native code into your Ionic app the exact same way you would as React Native, whether you plan to build a plugin for the community or keep your native code local to source control.<\/p>\n<h2>Design<\/h2>\n<p>As a Lead Developer, one of your core responsibilities is to estimate the time and effort required to design your application. Your estimations boil down to cost, so it\u2019s extremely important to know the core differences between designing and styling Ionic compared to React Native.<\/p>\n<p>Most importantly, React Native components will render their native equivalents with no pre-fabricated styling options to choose from. If your project is intended to match native platform styling as close as possible, there\u2019s a huge benefit in using React Native. Ionic ships with <a href=\"https:\/\/ionicframework.com\/docs\/core-concepts\/fundamentals#adaptive-styling\">Adaptive Styling<\/a>, where every Ionic component adapts its look to the platform on which the app is running on. However, some Ionic components, such as the datepicker, don\u2019t quite exactly match their native counterparts.<\/p>\n<p>On the flipside, if your project has a design system to adhere to and\/or should look consistent between platforms, in my experience Ionic has taken considerably less time to standardize designs between platforms.<\/p>\n<p>It\u2019s also important to note that React Native integrates a subset of CSS. On the surface, working with a subset of CSS appeared inconsequential, but I quickly found it challenging to accurately scope the effort and feasibility of particular designs. Responsive design paradigms, such as media queries, aren\u2019t readily available in React Native. This led to a particularly stressful experience working with a design team that had only designed for web-based hybrid apps &#8212; it was difficult for them to grasp how much additional effort it would take to accommodate all the device sizes they were targeting.<\/p>\n<p>Recently, accessibility (a design process in which the needs of people with disabilities are specifically considered) has become an important aspect of mobile design. The mobile development community has seen a surge in lawsuits filed for inaccessible apps. It\u2019s unfortunate that there is no mobile equivalent of the <a href=\"https:\/\/www.w3.org\/WAI\/standards-guidelines\/wcag\/\">web content accessibility guidelines (WCAG)<\/a> which provides clear and defined rules to meet accessibility compliance requirements.<\/p>\n<p>Thankfully, both React Native and Ionic set you up for accessibility success. Since Ionic is web based, you can adhere to WCAG guidelines. React Native has a robust accessibility API (which is one of my favorite pieces of the framework) but without any standardized set of accessibility compliance requirements for mobile I\u2019ve found myself working with folks from legal departments explaining that some guidelines implemented in an Ionic app weren\u2019t applicable for React Native.<\/p>\n<h2>Native Integration<\/h2>\n<p>When it comes to integrating native capabilities, both React Native and Ionic both have fairly straightforward processes &#8212; provided you are using Capacitor to build your hybrid app. Both React Native and Capacitor follow the same process:<\/p>\n<ol>\n<li>Write native code that implements a specific interface.<\/li>\n<li>Write JavaScript code that calls hooks to your native code.<\/li>\n<\/ol>\n<p>However, Capacitor is a relatively new native bridge that Ionic can leverage. For the majority of my tenure as a Lead Developer, Apache Cordova was the only native bridge option available.<\/p>\n<p>I\u2019ve always found it difficult to incorporate custom native code into the Cordova apps I\u2019ve led. Native code used by a Cordova application must be installed as a plugin; a standalone project. This would mean that my teams were no longer just focused on building one project for an app, additional projects were created to build Cordova plugins as well. Typically, this meant we would go weeks without testing how custom native code being built would interact with the actual app being built.<\/p>\n<p>Capacitor and React Native utilize platform projects as source artifacts, simplifying the process to bridge native code into your app, and yes, allowing you to test your custom native code within the same project as your app. I consider this an important takeaway, as most comparison articles don\u2019t make mention of Capacitor.<\/p>\n<p>Some mobile applications are built to enhance particular native integrations, such as Snapchat, which has its experience built around (or rather, on top) of the device\u2019s camera. I led a project that had a Snapchat-esque experience which was pretty trivial to build in React Native. Using the device camera as the background of my application was as simple as adding a community plugin that provided a React Native component to my pool of existing components, alongside buttons and input fields. Admittedly, I haven\u2019t had to build this type of experience with Ionic &#8212; neither with Capacitor nor Cordova &#8212; so I can\u2019t comment on how difficult this would be in comparison. However, I am aware of one community approach where a \u201chole is punched\u201d through the WebView hosting your app, exposing an underlying native control (such as a map) &#8211; which sounds like a larger undertaking for your typical hybrid developer.<\/p>\n<p>Most importantly though, both Ionic and React Native die by community support. An unfortunate trend that I\u2019ve encountered throughout my experience is that when it comes to native integration, most hybrid development teams rely on open-source communities to provide plug-and-play solutions. Both communities are active and healthy &#8212; but that doesn\u2019t mean that community solutions aren\u2019t abandoned after projects have become deeply intertwined with them.<\/p>\n<p>Luckily, both React Native and Ionic have solutions to this problem. <a href=\"https:\/\/expo.io\">Expo<\/a>, a company outside of the core React Native team, provides an API including a healthy offering of native integrations. Ionic supports and maintains Capacitor in addition to the Ionic Framework, in addition to offering enterprise plugins and solutions for both Capacitor and Cordova backed with support, advisory services, and SLAs.<\/p>\n<h2>Wrapping Up<\/h2>\n<p>I love both Ionic and React Native, and thoroughly enjoyed working with both as a Lead Developer. There\u2019s definitely enough room in the hybrid mobile ecosystem for both. Competition drives innovation &#8212; which ultimately winds up benefiting developers as a whole. Capacitor is a great example, providing Ionic developers with tooling on par with React Native and solving a lot of the pain points felt working with Cordova.<\/p>\n<p>As it turns out, a lot of my decision making on when to use React Native or Ionic came down to primarily non-technical drivers. If I had to boil down five years of working back-and-forth between the two frameworks and provide a \u201ccheat sheet\u201d, it would look something like this:<\/p>\n<ul>\n<li>Are you building an experience that heavily relies on augmenting the design of native features, a la Snapchat? I\u2019d go React Native.<\/li>\n<li>Have you been given a complex design that should match across platforms? Ionic.<\/li>\n<li>Are you looking to test the waters of a particular market or business capability to see if users will bite? I\u2019d suggest Ionic since it\u2019s prefabricated design lends itself to a faster time-to-market, but both frameworks excel for this use-case.<\/li>\n<\/ul>\n<p>Ultimately though, try both out. Don\u2019t go by the assumption that one framework is better than the other. With a few POC projects under your belt, you\u2019ll quickly be able to determine which framework works best for your project, your developers, and your business.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hi there, I&#8217;m Eric Horodyski, the newest Solutions Architect here at Ionic. Before joining the team here, the previous five years of my professional career was spent as a Lead Developer building dozens of hybrid mobile applications, some in React Native, the others in Ionic. The interest in hybrid mobile development continued to grow within [&hellip;]<\/p>\n","protected":false},"author":76,"featured_media":3365,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"publish_to_discourse":"","publish_post_category":"","wpdc_auto_publish_overridden":"","wpdc_topic_tags":"","wpdc_pin_topic":"","wpdc_pin_until":"","discourse_post_id":"","discourse_permalink":"","wpdc_publishing_response":"","wpdc_publishing_error":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[121,123],"tags":[3,136,155],"class_list":["post-3364","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering","category-perspectives","tag-ionic","tag-react","tag-react-native"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.0 (Yoast SEO v23.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ask a Lead Dev: React Native or Ionic? - Ionic Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ask a Lead Dev: React Native or Ionic?\" \/>\n<meta property=\"og:description\" content=\"Hi there, I&#8217;m Eric Horodyski, the newest Solutions Architect here at Ionic. Before joining the team here, the previous five years of my professional career was spent as a Lead Developer building dozens of hybrid mobile applications, some in React Native, the others in Ionic. The interest in hybrid mobile development continued to grow within [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic\" \/>\n<meta property=\"og:site_name\" content=\"Ionic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-07-23T20:50:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-28T16:44:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/rn-or-ionic-feature-image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"880\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Eric Horodyski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:site\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Eric Horodyski\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic#article\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic\"},\"author\":{\"name\":\"Eric Horodyski\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/bec836be266e0046c56c120cdb9806d6\"},\"headline\":\"Ask a Lead Dev: React Native or Ionic?\",\"datePublished\":\"2020-07-23T20:50:45+00:00\",\"dateModified\":\"2020-07-28T16:44:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic\"},\"wordCount\":1859,\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/rn-or-ionic-feature-image.png\",\"keywords\":[\"Ionic\",\"react\",\"react native\"],\"articleSection\":[\"Engineering\",\"Perspectives\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic\",\"url\":\"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic\",\"name\":\"Ask a Lead Dev: React Native or Ionic? - Ionic Blog\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/rn-or-ionic-feature-image.png\",\"datePublished\":\"2020-07-23T20:50:45+00:00\",\"dateModified\":\"2020-07-28T16:44:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic#primaryimage\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/rn-or-ionic-feature-image.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/rn-or-ionic-feature-image.png\",\"width\":1600,\"height\":880},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ionic.io\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ask a Lead Dev: React Native or Ionic?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ionic.io\/blog\/#website\",\"url\":\"https:\/\/ionic.io\/blog\/\",\"name\":\"ionic.io\/blog\",\"description\":\"Build amazing native and progressive web apps with the web\",\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ionic.io\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/ionic.io\/blog\/#organization\",\"name\":\"Ionic\",\"url\":\"https:\/\/ionic.io\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png\",\"width\":1920,\"height\":854,\"caption\":\"Ionic\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/ionicframework\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/bec836be266e0046c56c120cdb9806d6\",\"name\":\"Eric Horodyski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/T024WJZKU-U010BLA2B9S-89f661f3bfad-512-150x150.jpeg\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/T024WJZKU-U010BLA2B9S-89f661f3bfad-512-150x150.jpeg\",\"caption\":\"Eric Horodyski\"},\"url\":\"https:\/\/ionic.io\/blog\/author\/horodyski\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ask a Lead Dev: React Native or Ionic? - Ionic Blog","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:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic","og_locale":"en_US","og_type":"article","og_title":"Ask a Lead Dev: React Native or Ionic?","og_description":"Hi there, I&#8217;m Eric Horodyski, the newest Solutions Architect here at Ionic. Before joining the team here, the previous five years of my professional career was spent as a Lead Developer building dozens of hybrid mobile applications, some in React Native, the others in Ionic. The interest in hybrid mobile development continued to grow within [&hellip;]","og_url":"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic","og_site_name":"Ionic Blog","article_published_time":"2020-07-23T20:50:45+00:00","article_modified_time":"2020-07-28T16:44:48+00:00","og_image":[{"width":1600,"height":880,"url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/rn-or-ionic-feature-image.png","type":"image\/png"}],"author":"Eric Horodyski","twitter_card":"summary_large_image","twitter_creator":"@ionicframework","twitter_site":"@ionicframework","twitter_misc":{"Written by":"Eric Horodyski","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic#article","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic"},"author":{"name":"Eric Horodyski","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/bec836be266e0046c56c120cdb9806d6"},"headline":"Ask a Lead Dev: React Native or Ionic?","datePublished":"2020-07-23T20:50:45+00:00","dateModified":"2020-07-28T16:44:48+00:00","mainEntityOfPage":{"@id":"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic"},"wordCount":1859,"publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"image":{"@id":"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/rn-or-ionic-feature-image.png","keywords":["Ionic","react","react native"],"articleSection":["Engineering","Perspectives"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic","url":"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic","name":"Ask a Lead Dev: React Native or Ionic? - Ionic Blog","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic#primaryimage"},"image":{"@id":"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/rn-or-ionic-feature-image.png","datePublished":"2020-07-23T20:50:45+00:00","dateModified":"2020-07-28T16:44:48+00:00","breadcrumb":{"@id":"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic#primaryimage","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/rn-or-ionic-feature-image.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/rn-or-ionic-feature-image.png","width":1600,"height":880},{"@type":"BreadcrumbList","@id":"https:\/\/ionic.io\/blog\/ask-a-lead-dev-react-native-or-ionic#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ionic.io\/blog"},{"@type":"ListItem","position":2,"name":"Ask a Lead Dev: React Native or Ionic?"}]},{"@type":"WebSite","@id":"https:\/\/ionic.io\/blog\/#website","url":"https:\/\/ionic.io\/blog\/","name":"ionic.io\/blog","description":"Build amazing native and progressive web apps with the web","publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ionic.io\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ionic.io\/blog\/#organization","name":"Ionic","url":"https:\/\/ionic.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/10\/white-on-color.png","width":1920,"height":854,"caption":"Ionic"},"image":{"@id":"https:\/\/ionic.io\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/ionicframework"]},{"@type":"Person","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/bec836be266e0046c56c120cdb9806d6","name":"Eric Horodyski","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/T024WJZKU-U010BLA2B9S-89f661f3bfad-512-150x150.jpeg","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/T024WJZKU-U010BLA2B9S-89f661f3bfad-512-150x150.jpeg","caption":"Eric Horodyski"},"url":"https:\/\/ionic.io\/blog\/author\/horodyski"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2020\/07\/rn-or-ionic-feature-image.png","_links":{"self":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/3364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/users\/76"}],"replies":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/comments?post=3364"}],"version-history":[{"count":0,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/3364\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media\/3365"}],"wp:attachment":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media?parent=3364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/categories?post=3364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/tags?post=3364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}