{"id":95,"date":"2013-11-01T01:00:00","date_gmt":"2013-11-01T01:00:00","guid":{"rendered":"http:\/\/localhost\/?p=95"},"modified":"2019-06-12T14:51:35","modified_gmt":"2019-06-12T14:51:35","slug":"urls-and-hybrid-apps","status":"publish","type":"post","link":"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps","title":{"rendered":"URLs are for Web Apps, not Hybrid Apps."},"content":{"rendered":"<p>When we started planning to build what soon became <a href=\"http:\/\/ionicframework.com\/\">Ionic<\/a>, we knew that we needed to take a native-focused approach to building the next great HTML5 development framework.<\/p>\n<p>We felt that there were plenty of web-focused HTML5 frameworks, but few that treated HTML5 as a first-class citizen in the app store. We couldn&#8217;t ignore that people increasingly look to the app store to find apps, rather than browse the web for them.<\/p>\n<p>One big difference that kept coming up between web apps and native apps is how they handle URLs. Web apps utilize URLs both for the developer&#8217;s convenience but also for the user&#8217;s, allowing people all over the world to link directly to content and using them to delineate parts of a user interface. Native apps, in comparison, don&#8217;t use URLs for UI interactions, or use them only under the hood for the developer&#8217;s convenience.<\/p>\n<p><!--more--><\/p>\n<p>In a native app, a user will never see any URLs even if the app is using URL based routing underneath. Obviously there are no URL bars or browser chrome in a native app so having URLs doesn&#8217;t make sense. When used, it&#8217;s merely a convenient way to manage UI state for the developer.<\/p>\n<p>Yet most current HTML5 development frameworks have kept URLs as a core concept, limiting a lot of UI interaction to those that can triggered through an anchor like <code>&lt;a href=&quot;nextPage.html&quot;&gt;&lt;\/a&gt;<\/code>. Things like switching to a new page, popping up a dialog box, or linking tabs. It&#8217;s probably out of developer comfort, but also because the history of HTML5 and web technology is rooted in the browser app. But even then, URLs were meant to link to specific resources on the web, not to control user interface interactions.<\/p>\n<p>If you are familiar with native app development, you&#8217;ll know that native apps tend to utilize a lower level design pattern called the<a href=\"https:\/\/developer.apple.com\/library\/ios\/featuredarticles\/ViewControllerPGforiPhoneOS\/Introduction\/Introduction.html\">View Controller<\/a> pattern (ignore the Model portion for now). The idea is pretty simple: you have a set of views (think of them as boxes or rectangles where UI elements are drawn), and then controllers that manage multiple views in tandem.<\/p>\n<p>The <a href=\"https:\/\/developer.apple.com\/library\/ios\/documentation\/uikit\/reference\/UITabBarController_Class\/Reference\/Reference.html\">UITabBarController<\/a> on iOS is a perfect example of this. It takes a set of child controllers which each have their own set of views that make up each &#8220;page&#8221; in the tabs, and manages tabbing between them:<\/p>\n<div class=\"phone\">\n  <img decoding=\"async\" data-src=\"http:\/\/farm6.staticflickr.com\/5330\/9023342228_8341c60043_b.jpg\" alt=\"UITabController\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"lazyload\"><noscript><img decoding=\"async\" src=\"http:\/\/farm6.staticflickr.com\/5330\/9023342228_8341c60043_b.jpg\" alt=\"UITabController\"><\/noscript>\n<\/div>\n<div class=\"caption\">(don&#8217;t forget to drink your vitamins, all day every day)<\/div>\n<p>In the screenshot of the iOS Alarm app above, you&#8217;ll notice four tab buttons with four possible pages of the tab you can select. We are currently on the &#8220;Alarm&#8221; tab. The UITabBarController holds a reference to the <a href=\"https:\/\/developer.apple.com\/library\/ios\/documentation\/uikit\/reference\/UITabBar_Class\/Reference\/Reference.html\">UITabBar<\/a> view at the bottom (it even creates it for you), and then when a tab is selected, the controller makes sure to switch the pages for you.<\/p>\n<p>In a Web App, you might have a distinct URL for each page in the tab. That wouldn&#8217;t be the worst thing in the world for a hybrid\/native app, but it soon breaks down when we look at more complicated native apps. For example, the great <a href=\"https:\/\/itunes.apple.com\/us\/app\/yahoo-weather\/id628677149?mt=8\">Yahoo! Weather<\/a> app:<\/p>\n<div class=\"phone\">\n  <img decoding=\"async\" data-src=\"http:\/\/ionicframework.com.s3.amazonaws.com\/blog\/madison_weather.jpg\" alt=\"Yahoo! Weather\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"lazyload\"><noscript><img decoding=\"async\" src=\"http:\/\/ionicframework.com.s3.amazonaws.com\/blog\/madison_weather.jpg\" alt=\"Yahoo! Weather\"><\/noscript>\n<\/div>\n<p>If you haven&#8217;t used the Yahoo Weather app before (highly recommended), it features one single pane that scrolls up displaying a variety of weather information. The user can also swipe in between each city they&#8217;ve added, showing weather for that city:<\/p>\n<div class=\"phone\">\n  <img decoding=\"async\" data-src=\"https:\/\/s3.amazonaws.com\/ionicframework.com\/blog\/weather3.jpg\" alt=\"Yahoo! Weather Cities\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" class=\"lazyload\"><noscript><img decoding=\"async\" src=\"https:\/\/s3.amazonaws.com\/ionicframework.com\/blog\/weather3.jpg\" alt=\"Yahoo! Weather Cities\"><\/noscript>\n<\/div>\n<p>Imagine trying to model this drag animation using a URL-to-City approach in a back or frontend framework that uses route based navigation. Let&#8217;s say the first page is <code>\/cities\/current<\/code> and the second page is <code>\/cities\/Madison-WI<\/code>. When the user starts dragging to the next page, what happens? Do we navigate to <code>\/cities\/Madison-WI<\/code>, or do we wait until they complete the drag? If the routing system uses the URL state to know when to render each page, then we are stuck trying to hack around the router.<\/p>\n<p>Instead of being a convenience, URL-based routing becomes an artistic restriction.<\/p>\n<h2 id=\"ionicnativeappliedtowebandbackagain\">Ionic: Native Applied to Web, And Back Again<\/h2>\n<p>To native developers, this all might seem like a pedantic exercise, but for web developers moving to native development, it is often quite a change to not use URLs for common UI interactions. We don&#8217;t just link to different pages using <code>&lt;a href=&quot;page2.html&quot;&gt;&lt;\/a&gt;<\/code>, we use more subtle tools often powered by touch, letting the user treat our app as an open canvas.<\/p>\n<p>With Ionic, we wanted to apply these native design patterns to web development. And in doing so, we realized something really exciting: <em>HTML5 was just as powerful and flexible as native development<\/em>. But better still, it had some major benefits over native: it was faster to build in, easier to port across platforms, and known by a lot more developers.<\/p>\n<p>We realized that if we could build an HTML5 framework that loved native design concepts instead of avoiding them, we could enable developers to build any kind of app they dreamed up, not just ones that worked with the URL pattern.<\/p>\n<p>So we decided to apply the View Controller pattern to a lot of the ways developers build UI interactions in Ionic. If you are a web developer that hasn&#8217;t had much experience with native development, it will probably feel a bit strange at first. We are confident that once you see what is possible when you free yourself from the URL, you&#8217;ll feel quite empowered to build great apps in HTML5.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When we started planning to build what soon became Ionic, we knew that we needed to take a native-focused approach to building the next great HTML5 development framework. We felt that there were plenty of web-focused HTML5 frameworks, but few that treated HTML5 as a first-class citizen in the app store. We couldn&#8217;t ignore that [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":1632,"comment_status":"open","ping_status":"open","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":[1],"tags":[3],"class_list":["post-95","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all","tag-ionic"],"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>URLs are for Web Apps, not Hybrid Apps. - 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\/urls-and-hybrid-apps\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"URLs are for Web Apps, not Hybrid Apps.\" \/>\n<meta property=\"og:description\" content=\"When we started planning to build what soon became Ionic, we knew that we needed to take a native-focused approach to building the next great HTML5 development framework. We felt that there were plenty of web-focused HTML5 frameworks, but few that treated HTML5 as a first-class citizen in the app store. We couldn&#8217;t ignore that [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps\" \/>\n<meta property=\"og:site_name\" content=\"Ionic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2013-11-01T01:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-06-12T14:51:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/07\/ionic-meta.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Max Lynch\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@maxlynch\" \/>\n<meta name=\"twitter:site\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Max Lynch\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps#article\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps\"},\"author\":{\"name\":\"Max Lynch\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/91f360cffbd804a464b0c4a87b5c5f1e\"},\"headline\":\"URLs are for Web Apps, not Hybrid Apps.\",\"datePublished\":\"2013-11-01T01:00:00+00:00\",\"dateModified\":\"2019-06-12T14:51:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps\"},\"wordCount\":912,\"commentCount\":17,\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/07\/ionic-meta.jpg\",\"keywords\":[\"Ionic\"],\"articleSection\":[\"All\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps\",\"url\":\"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps\",\"name\":\"URLs are for Web Apps, not Hybrid Apps. - Ionic Blog\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/07\/ionic-meta.jpg\",\"datePublished\":\"2013-11-01T01:00:00+00:00\",\"dateModified\":\"2019-06-12T14:51:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps#primaryimage\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/07\/ionic-meta.jpg\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/07\/ionic-meta.jpg\",\"width\":1200,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ionic.io\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"URLs are for Web Apps, not Hybrid Apps.\"}]},{\"@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\/91f360cffbd804a464b0c4a87b5c5f1e\",\"name\":\"Max Lynch\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/05\/max-avatar-150x150.jpg\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/05\/max-avatar-150x150.jpg\",\"caption\":\"Max Lynch\"},\"description\":\"CEO\",\"sameAs\":[\"http:\/\/twitter.com\/maxlynch\",\"https:\/\/x.com\/maxlynch\"],\"url\":\"https:\/\/ionic.io\/blog\/author\/max\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"URLs are for Web Apps, not Hybrid Apps. - 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\/urls-and-hybrid-apps","og_locale":"en_US","og_type":"article","og_title":"URLs are for Web Apps, not Hybrid Apps.","og_description":"When we started planning to build what soon became Ionic, we knew that we needed to take a native-focused approach to building the next great HTML5 development framework. We felt that there were plenty of web-focused HTML5 frameworks, but few that treated HTML5 as a first-class citizen in the app store. We couldn&#8217;t ignore that [&hellip;]","og_url":"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps","og_site_name":"Ionic Blog","article_published_time":"2013-11-01T01:00:00+00:00","article_modified_time":"2019-06-12T14:51:35+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/07\/ionic-meta.jpg","type":"image\/jpeg"}],"author":"Max Lynch","twitter_card":"summary_large_image","twitter_creator":"@maxlynch","twitter_site":"@ionicframework","twitter_misc":{"Written by":"Max Lynch","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps#article","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps"},"author":{"name":"Max Lynch","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/91f360cffbd804a464b0c4a87b5c5f1e"},"headline":"URLs are for Web Apps, not Hybrid Apps.","datePublished":"2013-11-01T01:00:00+00:00","dateModified":"2019-06-12T14:51:35+00:00","mainEntityOfPage":{"@id":"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps"},"wordCount":912,"commentCount":17,"publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"image":{"@id":"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/07\/ionic-meta.jpg","keywords":["Ionic"],"articleSection":["All"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ionic.io\/blog\/urls-and-hybrid-apps#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps","url":"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps","name":"URLs are for Web Apps, not Hybrid Apps. - Ionic Blog","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps#primaryimage"},"image":{"@id":"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/07\/ionic-meta.jpg","datePublished":"2013-11-01T01:00:00+00:00","dateModified":"2019-06-12T14:51:35+00:00","breadcrumb":{"@id":"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ionic.io\/blog\/urls-and-hybrid-apps"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps#primaryimage","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/07\/ionic-meta.jpg","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/07\/ionic-meta.jpg","width":1200,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/ionic.io\/blog\/urls-and-hybrid-apps#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ionic.io\/blog"},{"@type":"ListItem","position":2,"name":"URLs are for Web Apps, not Hybrid Apps."}]},{"@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\/91f360cffbd804a464b0c4a87b5c5f1e","name":"Max Lynch","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/05\/max-avatar-150x150.jpg","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/05\/max-avatar-150x150.jpg","caption":"Max Lynch"},"description":"CEO","sameAs":["http:\/\/twitter.com\/maxlynch","https:\/\/x.com\/maxlynch"],"url":"https:\/\/ionic.io\/blog\/author\/max"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2015\/07\/ionic-meta.jpg","_links":{"self":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/95","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\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/comments?post=95"}],"version-history":[{"count":1,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/95\/revisions"}],"predecessor-version":[{"id":5534,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/95\/revisions\/5534"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media\/1632"}],"wp:attachment":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media?parent=95"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/categories?post=95"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/tags?post=95"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}