{"id":1666,"date":"2018-02-21T13:27:39","date_gmt":"2018-02-21T13:27:39","guid":{"rendered":"https:\/\/www.moveoapps.com\/blog\/?p=1666"},"modified":"2019-09-25T11:21:22","modified_gmt":"2019-09-25T11:21:22","slug":"how-to-use-constraintlayout-android-for-better-ui-design","status":"publish","type":"post","link":"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/","title":{"rendered":"How to Use ConstraintLayout in Android for Faster, Better UI Design"},"content":{"rendered":"<h2><b>What is constraint layout?<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">ConstraintLayout is a view group that facilitates the creation of flat UI hierarchies and complex layouts that intuitively adapt to different screen sizes and changing device orientations for the complex layout, allowing developers the luxury of speed. It was created to help reduce nested views and improve the performance of layout files. <\/span><span style=\"font-weight: 400;\">It was released at Google I\/O 2016 and is compatible down to API level 9 <\/span><b>\u00a0<\/b><span style=\"font-weight: 400;\">(Gingerbread). <\/span><\/p>\n<p><span style=\"font-weight: 400;\">There are many advantages of using constraintLayout. It bears some similarity to RelativeLayout in terms of laying out all views in accordance with the relationships between parent layout and sibling views, yet it\u2019s a lot more flexible and works better with Android Studio\u2019s Layout Editor. And the one advantage that most people overlook is that you can even perform animations on your ConstraintLayout views with very little code.<\/span><\/p>\n<h2><b>Using ConstraintLayout In Your Project<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">ConstraintLayout is available as a separate support library, which is great because this way, any update in the future would be compatible with all versions of Android. As of right now, the latest version supported is 1.1.0-beta4. Key changes this version includes are <\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Fixes RTL issues (guideline, chains, bias)<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Fixes missing percent handling in ConstraintSet<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Fixes various barriers issues<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Improved XML inflation speed<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">To get started with your project, first make sure that ConstraintLayout for Android and Solver for ConstraintLayout support repositories are installed. Now add the ConstraintLayout library as a dependency in your <\/span><span style=\"font-weight: 400;\">build.gradle<\/span><span style=\"font-weight: 400;\"> \u00a0file:<\/span><\/p>\n<pre>dependencies {\r\n    compile 'com.android.support.constraint:constraint-layout:1.1.0-beta4'\r\n}\r\n<\/pre>\n<p>There are two ways to get started with using ConstraintLayout in your layouts. Either you can create a new layout with the Root Tag Value of android.support.constraint.ConstraintLayout or simply right-click on the ViewGroup you\u2019d like to convert in your existing layout.<\/p>\n<h2><b>Using Auto-Connect and Infer Constraint<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Enabling auto-connect will automatically add a constraint to the view based on its position and views around it. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Just as there are two sides of a coin, auto-connect too has its advantages and disadvantages.It can make developing UI easier and faster but at the same time if the auto-connect constraints don\u2019t fulfill your requirements then you will have to make extra efforts edit them to meet your requirements.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Infer constraint comes into play when you want to create overall constraints to all the views in a layout. When you click the infer constraint icon it will add constraints according to the position of the view in the layout.<\/span><\/p>\n<h2><b>Inspector Pane<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Constraint Layout provides inspector pane to provide more ease and efficient UI designing.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">You will find inspector pane on the right hand side of the layout builder and it lists various properties of the selected widget. <\/span><\/p>\n<p><a href=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/ezgif.com-video-to-gif.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1668 src=\" alt=\"\" width=\"185\" height=\"300\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Following are the important and commonly used features of constraint layout :-<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><b>1. Bias<\/b> &#8211; bias allows us to move certain component towards a certain direction.<\/span><span style=\"font-weight: 400;\">Horizontal Bias allows us to move components horizontally whereas the Vertical Bias allows vertical movement.<\/span><\/p>\n<p><a href=\"https:\/\/media.giphy.com\/media\/d7pyWchTjQEK68VQsp\/giphy.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1669 size-medium\" src=\"https:\/\/media.giphy.com\/media\/d7pyWchTjQEK68VQsp\/giphy.gif\" alt=\"\" width=\"300\" height=\"287\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\"><b>2. Circular Positioning<\/b> &#8211; You can constrain a component\u2019s center relative to another component\u2019s center, at a particular angle and distance, thereby allowing you to place the components in a circular path.<\/span><\/p>\n<p><a href=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/ConstraintLayout-Circular-constraints.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1670 size-full\" src=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/ConstraintLayout-Circular-constraints.png\" alt=\"\" width=\"876\" height=\"369\" srcset=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/ConstraintLayout-Circular-constraints.png 876w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/ConstraintLayout-Circular-constraints-300x126.png 300w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/ConstraintLayout-Circular-constraints-768x324.png 768w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/ConstraintLayout-Circular-constraints-150x63.png 150w\" sizes=\"auto, (max-width: 876px) 100vw, 876px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\"><b>3. Chains<\/b> &#8211; There are 4 types of chain styles &#8211; \u00a0Spread, Weighted, Spread Inside and Packed<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><strong>Spread <\/strong><span style=\"font-weight: 400;\">&#8211; the components of the respective chain will spread out.this chain style is the default style.<\/span><\/li>\n<li style=\"font-weight: 400;\"><strong>Weighted <\/strong><span style=\"font-weight: 400;\">&#8211; the components of the chain are set to MATCH_CONSTRAINT and they will occupy the available space if weight properties are not set for the chain widgets.<\/span><\/li>\n<li style=\"font-weight: 400;\"><strong>Spread Inside<\/strong><span style=\"font-weight: 400;\"> &#8211; the widgets at the starting and ending of the chain will align to the parent and the rest will occupy the\u00a0space equally.<\/span><\/li>\n<li style=\"font-weight: 400;\"><strong>Packed<\/strong> <span style=\"font-weight: 400;\">&#8211;<\/span><span style=\"font-weight: 400;\"> the chain components will be packed together.You can also adjust the bias of the packed chain using horizontal or vertical bias. <\/span><\/li>\n<\/ul>\n<p><a href=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/chains-styles.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1671 size-full\" src=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/chains-styles.png\" alt=\"\" width=\"1368\" height=\"616\" srcset=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/chains-styles.png 1368w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/chains-styles-300x135.png 300w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/chains-styles-768x346.png 768w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/chains-styles-1024x461.png 1024w, https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/chains-styles-150x68.png 150w\" sizes=\"auto, (max-width: 1368px) 100vw, 1368px\" \/><\/a><a href=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/ConstraintLayout-Circular-constraints.png\"><br \/>\n<\/a><\/p>\n<p><span style=\"font-weight: 400;\"><b>4. Virtual Helper Objects<\/b> &#8211; ConstraintLayout also provides us with some virtual helpers which are not seen on the layout but helps in making UI neat and organised. These are &#8211;<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><strong>Guidelines <\/strong><span style=\"font-weight: 400;\">&#8211; These allow the constraint to attach to them and align them in the required manner.A guideline may be vertical or horizontal depending upon the requirement.<\/span><\/li>\n<li style=\"font-weight: 400;\"><strong>Barriers <\/strong><span style=\"font-weight: 400;\">&#8211; These are used to align elements which dynamically vary their size.<\/span><\/li>\n<li style=\"font-weight: 400;\"><strong>Group <\/strong><span style=\"font-weight: 400;\">&#8211; Grouping in constraintLayout refers to reference of view ids and not nesting of views. Grouping of views can be used to set the visibility of group components.<\/span><\/li>\n<\/ul>\n<h2><b>Conclusion<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">To sum up, ConstraintLayout is a faster, better and much more efficient alternative to designing large and aesthetic layouts in your Android UI. Now that you are acquainted with the basics of ConstraintLayout, you can begin experimenting with it and get a feel of how much easier it makes your job. Do share your experiences, questions and ideas with us, and have fun designing. <\/span><br \/>\n<script type=\"text\/javascript\" src=\"\/\/newsharecounts.s3-us-west-2.amazonaws.com\/nsc.js\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>What is constraint layout? ConstraintLayout is a view group that facilitates the creation of flat UI hierarchies and complex layouts that intuitively adapt to different screen sizes and changing device orientations for the complex layout, allowing developers the luxury of speed. It was created to help reduce nested views and improve the performance of layout &hellip; <a href=\"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">How to Use ConstraintLayout in Android for Faster, Better UI Design<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":101026,"featured_media":1697,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[31],"tags":[],"class_list":["post-1666","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Use ConstraintLayout in Android for Faster, Better UI Design<\/title>\n<meta name=\"description\" content=\"ConstraintLayout is a faster, better and much more efficient alternative to designing large and aesthetic layouts in your Android UI.\" \/>\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.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Use ConstraintLayout in Android for Faster, Better UI Design\" \/>\n<meta property=\"og:description\" content=\"ConstraintLayout is a faster, better and much more efficient alternative to designing large and aesthetic layouts in your Android UI.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/\" \/>\n<meta property=\"og:site_name\" content=\"Moveo Apps\" \/>\n<meta property=\"article:published_time\" content=\"2018-02-21T13:27:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-09-25T11:21:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/How-to-Use-ConstraintLayout-for-Faster-Better-UI-Design.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1294\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Darshan Shah\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Darshan Shah\" \/>\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\":\"WebPage\",\"@id\":\"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/\",\"url\":\"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/\",\"name\":\"How to Use ConstraintLayout in Android for Faster, Better UI Design\",\"isPartOf\":{\"@id\":\"https:\/\/www.moveoapps.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/How-to-Use-ConstraintLayout-for-Faster-Better-UI-Design.jpg\",\"datePublished\":\"2018-02-21T13:27:39+00:00\",\"dateModified\":\"2019-09-25T11:21:22+00:00\",\"author\":{\"@id\":\"https:\/\/www.moveoapps.com\/blog\/#\/schema\/person\/f526997c29a0290495dfa08c7e3c8cef\"},\"description\":\"ConstraintLayout is a faster, better and much more efficient alternative to designing large and aesthetic layouts in your Android UI.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/#primaryimage\",\"url\":\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/How-to-Use-ConstraintLayout-for-Faster-Better-UI-Design.jpg\",\"contentUrl\":\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/How-to-Use-ConstraintLayout-for-Faster-Better-UI-Design.jpg\",\"width\":2560,\"height\":1294,\"caption\":\"ConstraintLayout for Faster Better UI Design\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.moveoapps.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Use ConstraintLayout in Android for Faster, Better UI Design\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.moveoapps.com\/blog\/#website\",\"url\":\"https:\/\/www.moveoapps.com\/blog\/\",\"name\":\"Moveo Apps\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.moveoapps.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.moveoapps.com\/blog\/#\/schema\/person\/f526997c29a0290495dfa08c7e3c8cef\",\"name\":\"Darshan Shah\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.moveoapps.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2019\/09\/darshan-96x96.jpg\",\"contentUrl\":\"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2019\/09\/darshan-96x96.jpg\",\"caption\":\"Darshan Shah\"},\"sameAs\":[\"https:\/\/www.moveoapps.com\/\"],\"url\":\"https:\/\/www.moveoapps.com\/blog\/author\/darshan-shah\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Use ConstraintLayout in Android for Faster, Better UI Design","description":"ConstraintLayout is a faster, better and much more efficient alternative to designing large and aesthetic layouts in your Android UI.","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.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/","og_locale":"en_US","og_type":"article","og_title":"How to Use ConstraintLayout in Android for Faster, Better UI Design","og_description":"ConstraintLayout is a faster, better and much more efficient alternative to designing large and aesthetic layouts in your Android UI.","og_url":"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/","og_site_name":"Moveo Apps","article_published_time":"2018-02-21T13:27:39+00:00","article_modified_time":"2019-09-25T11:21:22+00:00","og_image":[{"width":2560,"height":1294,"url":"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/How-to-Use-ConstraintLayout-for-Faster-Better-UI-Design.jpg","type":"image\/jpeg"}],"author":"Darshan Shah","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Darshan Shah","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/","url":"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/","name":"How to Use ConstraintLayout in Android for Faster, Better UI Design","isPartOf":{"@id":"https:\/\/www.moveoapps.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/#primaryimage"},"image":{"@id":"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/#primaryimage"},"thumbnailUrl":"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/How-to-Use-ConstraintLayout-for-Faster-Better-UI-Design.jpg","datePublished":"2018-02-21T13:27:39+00:00","dateModified":"2019-09-25T11:21:22+00:00","author":{"@id":"https:\/\/www.moveoapps.com\/blog\/#\/schema\/person\/f526997c29a0290495dfa08c7e3c8cef"},"description":"ConstraintLayout is a faster, better and much more efficient alternative to designing large and aesthetic layouts in your Android UI.","breadcrumb":{"@id":"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/#primaryimage","url":"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/How-to-Use-ConstraintLayout-for-Faster-Better-UI-Design.jpg","contentUrl":"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2018\/02\/How-to-Use-ConstraintLayout-for-Faster-Better-UI-Design.jpg","width":2560,"height":1294,"caption":"ConstraintLayout for Faster Better UI Design"},{"@type":"BreadcrumbList","@id":"https:\/\/www.moveoapps.com\/blog\/how-to-use-constraintlayout-android-for-better-ui-design\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.moveoapps.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Use ConstraintLayout in Android for Faster, Better UI Design"}]},{"@type":"WebSite","@id":"https:\/\/www.moveoapps.com\/blog\/#website","url":"https:\/\/www.moveoapps.com\/blog\/","name":"Moveo Apps","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.moveoapps.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.moveoapps.com\/blog\/#\/schema\/person\/f526997c29a0290495dfa08c7e3c8cef","name":"Darshan Shah","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.moveoapps.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2019\/09\/darshan-96x96.jpg","contentUrl":"https:\/\/www.moveoapps.com\/blog\/wp-content\/uploads\/2019\/09\/darshan-96x96.jpg","caption":"Darshan Shah"},"sameAs":["https:\/\/www.moveoapps.com\/"],"url":"https:\/\/www.moveoapps.com\/blog\/author\/darshan-shah\/"}]}},"_links":{"self":[{"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/posts\/1666","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/users\/101026"}],"replies":[{"embeddable":true,"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/comments?post=1666"}],"version-history":[{"count":30,"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/posts\/1666\/revisions"}],"predecessor-version":[{"id":1701,"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/posts\/1666\/revisions\/1701"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/media\/1697"}],"wp:attachment":[{"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/media?parent=1666"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/categories?post=1666"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.moveoapps.com\/blog\/wp-json\/wp\/v2\/tags?post=1666"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}