{"id":2111,"date":"2018-02-15T17:17:02","date_gmt":"2018-02-15T17:17:02","guid":{"rendered":"https:\/\/ionicframework.com\/?p=2111"},"modified":"2018-02-15T17:17:02","modified_gmt":"2018-02-15T17:17:02","slug":"tips-tricks-for-ionic-on-desktop","status":"publish","type":"post","link":"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop","title":{"rendered":"Tips &#038; Tricks for Ionic on Desktop"},"content":{"rendered":"<p><em>This a guest post from <a href=\"http:\/\/twitter.com\/@FdezRomero\" rel=\"noopener\" target=\"_blank\">Rodrigo Fern\u00e1ndez<\/a>, the CTO and co-founder of Savelist, an app that allows you to save and discover products from any online store, and get notified when prices or stock change.<\/em><\/p>\n<p>We have been using Ionic at <a href=\"http:\/\/savelist.co\" rel=\"noopener\" target=\"_blank\">Savelist<\/a> since the first alpha versions, and always thought that one of its strongest benefits is the ability to code an app for iOS, Android and the Web with a single codebase. Heck, we even use Ionic to build our browser extensions!<\/p>\n<p>When we went through the process of launching the Savelist Progressive Web App in January (2017), we noticed that even though it looked as expected on mobile \u2013 as we started with a \u201cmobile first\u201d approach \u2013 it didn\u2019t look quite right on the larger displays of laptops and desktops. Navigation bars and content were too wide and since most content was aligned to the left, there was too much white space on the right of almost all our screens. It felt more like the maximized version of our Android app than a website.<\/p>\n<p>In the process of customizing Savelist for larger screens, we collected some tips &amp; tricks that we wanted to share that could help you adapt your app for the desktop, without compromising the mobile experience we already had.<\/p>\n<p><!--more--><\/p>\n<p>This guide is based on the latest release of <code>ionic-angular<\/code> at the time (3.9.2). If you\u2019re using an older version of Ionic, I strongly recommend you to update to the latest release.<\/p>\n<h3>Setting up the fixed grid<\/h3>\n<p>Ionic has a great grid system based on flexbox that we can use to adapt content and make it responsive. It&#8217;s incredibly customizable, and we can define custom grid widths and breakpoints for every resolution.<\/p>\n<p>First, we limited the grid width in order to make the content easier to navigate. For our needs, all we had to do was removed the <code>xl<\/code> breakpoint. Ionic handles this without any issues.<\/p>\n<p>In our <code>src\/theme\/variables.scss<\/code>:<\/p>\n<pre><code class=\"scss\">$grid-breakpoints: (\n xs: 0, \/\/ Phone (0px - 575px)\n sm: 576px, \/\/ Phablet (576px - 767px)\n md: 768px, \/\/ Tablet vertical (768px - 991px)\n lg: 992px \/\/ Tablet horizontal, Desktop (992px and above)\n);\n<\/code><\/pre>\n<p>Next we modified the <code>$grid-max-widths<\/code> variable and made our app use 100% of the width until it reaches 992px:<\/p>\n<pre><code class=\"scss\">$grid-max-widths: (\n lg: 992px\n);\n<\/code><\/pre>\n<p>You could use any other size you&#8217;d want for this, as long as the value <code>lg<\/code> from <code>$grid-breakpoints<\/code> matches.<\/p>\n<h3>Using the fixed grid on pages<\/h3>\n<p>In order to apply a max-width to our pages, we just wrap the markup inside <code>&lt;ion-content&gt;<\/code> with <code>&lt;ion-grid fixed&gt;<\/code>. The <code>fixed<\/code> attribute tells Ionic&#8217;s grid to use the max-width corresponding to the current breakpoint, or 100% if not defined.<\/p>\n<p>So this code:<\/p>\n<pre><code class=\"html\">&lt;ion-content&gt;\n &lt;!-- Some code --&gt;\n&lt;\/ion-content&gt;\n<\/code><\/pre>\n<p>Becomes:<\/p>\n<pre><code class=\"html\">&lt;ion-content&gt;\n &lt;ion-grid fixed&gt;\n   &lt;!-- Some code --&gt;\n &lt;\/ion-grid&gt;\n&lt;\/ion-content&gt;\n<\/code><\/pre>\n<p>We don\u2019t need to apply this to pages that are displayed inside modals or popovers, as they already have a fixed width.<\/p>\n<h3>Horizontally center the header &amp; footer toolbars<\/h3>\n<p>We have better looking pages now, but the toolbars inside <code>&lt;ion-header&gt;<\/code> and <code>&lt;ion-footer&gt;<\/code> are not horizontally aligned. We can easily adjust them to match of our fixed-width pages by adding these rules at the end of <code>app.scss<\/code>:<\/p>\n<pre><code class=\"scss\">\/\/ Desktop\n\nion-header .toolbar {\n margin: auto;\n}\n\n@media (min-width: map-get($grid-breakpoints, lg)) {\n ion-navbar.toolbar,\n ion-header .toolbar[fixed],\n ion-footer .toolbar[fixed],\n ion-tabs .tabbar {\n   margin: 0;\n   padding-right: calc((100% - #{map-get($grid-max-widths, lg)}) \/ 2);\n   padding-left: calc((100% - #{map-get($grid-max-widths, lg)}) \/ 2);\n }\n}\n<\/code><\/pre>\n<p>If there is any <code>&lt;ion-toolbar&gt;<\/code> inside <code>&lt;ion-header&gt;<\/code> or <code>&lt;ion-footer&gt;<\/code>, you may want to add the <code>fixed<\/code> attribute to center them, like <code>&lt;ion-toolbar fixed&gt;<\/code>.<\/p>\n<h3>Showing tabs at the top<\/h3>\n<p>While users are used to having tabs at the bottom in mobile apps, desktop webs usually show them at the top for better usability and navigation. Well known apps like Twitter, Pinterest and Instagram all use tabs at the top for their desktop experience.<\/p>\n<p>Fortunately, Ionic Framework allows us to easily customize the position and layout of the tabs, so we can have bottom tabs with icons on top in our mobile experience:<\/p>\n<p><a href=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0.png\"><img loading=\"lazy\" decoding=\"async\" width=\"722\" height=\"123\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0.png\" alt=\"\" class=\"aligncenter size-full wp-image-2112 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0.png 722w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-300x51.png 300w\" data-sizes=\"auto, (max-width: 722px) 100vw, 722px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 722px; --smush-placeholder-aspect-ratio: 722\/123;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"722\" height=\"123\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0.png\" alt=\"\" class=\"aligncenter size-full wp-image-2112\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0.png 722w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-300x51.png 300w\" sizes=\"auto, (max-width: 722px) 100vw, 722px\" \/><\/noscript><\/a><\/p>\n<p>And top tabs with icons on the left for our desktop experience:<\/p>\n<p><a href=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1536\" height=\"235\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-1.png\" alt=\"\" class=\"aligncenter size-full wp-image-2113 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-1.png 1536w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-1-300x46.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-1-768x118.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-1-1024x157.png 1024w\" data-sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1536px; --smush-placeholder-aspect-ratio: 1536\/235;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1536\" height=\"235\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-1.png\" alt=\"\" class=\"aligncenter size-full wp-image-2113\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-1.png 1536w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-1-300x46.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-1-768x118.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-1-1024x157.png 1024w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><\/noscript><\/a><\/p>\n<p>To achieve this we can bind class properties to the <code>tabsPlacement<\/code> and <code>tabsLayout<\/code> attributes of our <code>&lt;ion-tabs&gt;<\/code>:<\/p>\n<pre><code class=\"html\">&lt;ion-tabs [tabsPlacement]=&quot;tabsPlacement&quot; [tabsLayout]=&quot;tabsLayout&quot;&gt;\n\n\n&lt;ion-tabs&gt;\n<\/code><\/pre>\n<p>And set the values depending on the platform:<\/p>\n<pre><code class=\"ts\">@Component({\n  templateUrl: &#039;app.html&#039;\n})\nexport class AppComponent {\n  tabsPlacement: string = &#039;bottom&#039;;\n  tabsLayout: string = &#039;icon-top&#039;;\n\n  constructor(\n    public platform: Platform,\n  ) {\n    if (!this.platform.is(&#039;mobile&#039;)) {\n      this.tabsPlacement = &#039;top&#039;;\n      this.tabsLayout = &#039;icon-left&#039;;\n    }\n  }\n}\n<\/code><\/pre>\n<p>You can check the different placement and layout options in the <a href=\"https:\/\/ionicframework.com\/docs\/api\/components\/tabs\/Tabs\/\" target=\"_blank\">Tabs docs<\/a>.<\/p>\n<h3>Using the responsive grid and breakpoints<\/h3>\n<p>One of Savelist&#8217;s key features is the ability to show all the products you have saved from the web in a clear and organized layout, so cards in a responsive grid was the best way to go in displaying that information.<\/p>\n<p>This option lets you have one or two cards per row on mobile, and more cards as the screen gets bigger. Cards don\u2019t have a fixed width and make the best use of the available space.<\/p>\n<p>Mobile<\/p>\n<p><a href=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"852\" height=\"642\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-2.png\" alt=\"\" class=\"aligncenter size-full wp-image-2114 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-2.png 852w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-2-300x226.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-2-768x579.png 768w\" data-sizes=\"auto, (max-width: 852px) 100vw, 852px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 852px; --smush-placeholder-aspect-ratio: 852\/642;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"852\" height=\"642\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-2.png\" alt=\"\" class=\"aligncenter size-full wp-image-2114\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-2.png 852w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-2-300x226.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-2-768x579.png 768w\" sizes=\"auto, (max-width: 852px) 100vw, 852px\" \/><\/noscript><\/a><\/p>\n<p>Tablet<\/p>\n<p><a href=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1538\" height=\"732\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-3.png\" alt=\"\" class=\"aligncenter size-full wp-image-2115 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-3.png 1538w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-3-300x143.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-3-768x366.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-3-1024x487.png 1024w\" data-sizes=\"auto, (max-width: 1538px) 100vw, 1538px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1538px; --smush-placeholder-aspect-ratio: 1538\/732;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1538\" height=\"732\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-3.png\" alt=\"\" class=\"aligncenter size-full wp-image-2115\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-3.png 1538w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-3-300x143.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-3-768x366.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-3-1024x487.png 1024w\" sizes=\"auto, (max-width: 1538px) 100vw, 1538px\" \/><\/noscript><\/a><\/p>\n<p>Desktop<\/p>\n<p><a href=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"556\" data-src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-4.png\" alt=\"\" class=\"aligncenter size-full wp-image-2116 lazyload\" data-srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-4.png 1600w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-4-300x104.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-4-768x267.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-4-1024x356.png 1024w\" data-sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" style=\"--smush-placeholder-width: 1600px; --smush-placeholder-aspect-ratio: 1600\/556;\" \/><noscript><img loading=\"lazy\" decoding=\"async\" width=\"1600\" height=\"556\" src=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-4.png\" alt=\"\" class=\"aligncenter size-full wp-image-2116\" srcset=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-4.png 1600w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-4-300x104.png 300w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-4-768x267.png 768w, https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/01\/pasted-image-0-4-1024x356.png 1024w\" sizes=\"auto, (max-width: 1600px) 100vw, 1600px\" \/><\/noscript><\/a><\/p>\n<p>It\u2019s easy to achieve this layout with the help of the grid breakpoints we set up before and <code>col-{breakpoint}-{#}<\/code>:<\/p>\n<pre><code class=\"html\">&lt;ion-grid fixed&gt;\n &lt;ion-row&gt;\n   &lt;ion-card ion-col *ngFor=&quot;let product of products&quot; col-6 col-md-4 col-lg-3&gt;&lt;\/ion-card&gt;\n &lt;\/ion-row&gt;\n&lt;\/ion-grid&gt;\n<\/code><\/pre>\n<p>Rows will start with 2 cards on <code>xs<\/code> and <code>sm<\/code>, 3 cards on <code>md<\/code> and 4 cards on <code>lg<\/code> and above.<\/p>\n<h3>Adapting the experience<\/h3>\n<p>We have addressed the biggest points of adapting the PWA \u201capp shell\u201d to big screens. However, you may still notice some items that you want to show differently, like font size, images, UI, etc.<\/p>\n<p>There is no silver bullet for this, but you can achieve almost anything you want starting with this media query, so if you ever change the <code>lg<\/code> breakpoint the media query will update as well:<\/p>\n<pre><code class=\"scss\">@media (min-width: map-get($grid-breakpoints, lg)) {\n \/\/ Your rules here\n}\n<\/code><\/pre>\n<p>Another way is to show or hide elements according to the platform type instead of the screen size with <code>showWhen<\/code> and <code>hideWhen<\/code>. You can use the value <code>core<\/code> to target desktops.<\/p>\n<h3>Share your tricks!<\/h3>\n<p>This was just a few of the changes we made to Savelist in order to look better on larger screens, but I&#8217;m sure there&#8217;s more ideas out there. I&#8217;d love to know what tricks you have in your bag with working with Ionic, so leave a comment below!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This a guest post from Rodrigo Fern\u00e1ndez, the CTO and co-founder of Savelist, an app that allows you to save and discover products from any online store, and get notified when prices or stock change. We have been using Ionic at Savelist since the first alpha versions, and always thought that one of its strongest [&hellip;]<\/p>\n","protected":false},"author":60,"featured_media":2129,"comment_status":"open","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":[1],"tags":[87,33,25],"class_list":["post-2111","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-all","tag-desktop","tag-pwa","tag-tutorials"],"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>Tips &amp; Tricks for Ionic on Desktop - 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\/tips-tricks-for-ionic-on-desktop\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tips &amp; Tricks for Ionic on Desktop\" \/>\n<meta property=\"og:description\" content=\"This a guest post from Rodrigo Fern\u00e1ndez, the CTO and co-founder of Savelist, an app that allows you to save and discover products from any online store, and get notified when prices or stock change. We have been using Ionic at Savelist since the first alpha versions, and always thought that one of its strongest [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop\" \/>\n<meta property=\"og:site_name\" content=\"Ionic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-02-15T17:17:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/02\/desktop-trick-img.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1400\" \/>\n\t<meta property=\"og:image:height\" content=\"680\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Rodrigo Fern\u00e1ndez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@FdezRomero\" \/>\n<meta name=\"twitter:site\" content=\"@ionicframework\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rodrigo Fern\u00e1ndez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop#article\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop\"},\"author\":{\"name\":\"Rodrigo Fern\u00e1ndez\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/a5c597448e38a837222a721957672cab\"},\"headline\":\"Tips &#038; Tricks for Ionic on Desktop\",\"datePublished\":\"2018-02-15T17:17:02+00:00\",\"dateModified\":\"2018-02-15T17:17:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop\"},\"wordCount\":887,\"commentCount\":36,\"publisher\":{\"@id\":\"https:\/\/ionic.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/02\/desktop-trick-img.jpg\",\"keywords\":[\"Desktop\",\"PWA\",\"Tutorials\"],\"articleSection\":[\"All\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop\",\"url\":\"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop\",\"name\":\"Tips & Tricks for Ionic on Desktop - Ionic Blog\",\"isPartOf\":{\"@id\":\"https:\/\/ionic.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/02\/desktop-trick-img.jpg\",\"datePublished\":\"2018-02-15T17:17:02+00:00\",\"dateModified\":\"2018-02-15T17:17:02+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop#primaryimage\",\"url\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/02\/desktop-trick-img.jpg\",\"contentUrl\":\"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/02\/desktop-trick-img.jpg\",\"width\":1400,\"height\":680},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ionic.io\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tips &#038; Tricks for Ionic on Desktop\"}]},{\"@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\/a5c597448e38a837222a721957672cab\",\"name\":\"Rodrigo Fern\u00e1ndez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9dc0a5ba384fa8e997d06aca0ae5948de23c799cf80c2ead3723ce34c88578c3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9dc0a5ba384fa8e997d06aca0ae5948de23c799cf80c2ead3723ce34c88578c3?s=96&d=mm&r=g\",\"caption\":\"Rodrigo Fern\u00e1ndez\"},\"sameAs\":[\"http:\/\/savelist.co\",\"https:\/\/x.com\/FdezRomero\"],\"url\":\"https:\/\/ionic.io\/blog\/author\/fdezromero\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Tips & Tricks for Ionic on Desktop - 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\/tips-tricks-for-ionic-on-desktop","og_locale":"en_US","og_type":"article","og_title":"Tips & Tricks for Ionic on Desktop","og_description":"This a guest post from Rodrigo Fern\u00e1ndez, the CTO and co-founder of Savelist, an app that allows you to save and discover products from any online store, and get notified when prices or stock change. We have been using Ionic at Savelist since the first alpha versions, and always thought that one of its strongest [&hellip;]","og_url":"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop","og_site_name":"Ionic Blog","article_published_time":"2018-02-15T17:17:02+00:00","og_image":[{"width":1400,"height":680,"url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/02\/desktop-trick-img.jpg","type":"image\/jpeg"}],"author":"Rodrigo Fern\u00e1ndez","twitter_card":"summary_large_image","twitter_creator":"@FdezRomero","twitter_site":"@ionicframework","twitter_misc":{"Written by":"Rodrigo Fern\u00e1ndez","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop#article","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop"},"author":{"name":"Rodrigo Fern\u00e1ndez","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/a5c597448e38a837222a721957672cab"},"headline":"Tips &#038; Tricks for Ionic on Desktop","datePublished":"2018-02-15T17:17:02+00:00","dateModified":"2018-02-15T17:17:02+00:00","mainEntityOfPage":{"@id":"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop"},"wordCount":887,"commentCount":36,"publisher":{"@id":"https:\/\/ionic.io\/blog\/#organization"},"image":{"@id":"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/02\/desktop-trick-img.jpg","keywords":["Desktop","PWA","Tutorials"],"articleSection":["All"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop","url":"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop","name":"Tips & Tricks for Ionic on Desktop - Ionic Blog","isPartOf":{"@id":"https:\/\/ionic.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop#primaryimage"},"image":{"@id":"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop#primaryimage"},"thumbnailUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/02\/desktop-trick-img.jpg","datePublished":"2018-02-15T17:17:02+00:00","dateModified":"2018-02-15T17:17:02+00:00","breadcrumb":{"@id":"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop#primaryimage","url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/02\/desktop-trick-img.jpg","contentUrl":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/02\/desktop-trick-img.jpg","width":1400,"height":680},{"@type":"BreadcrumbList","@id":"https:\/\/ionic.io\/blog\/tips-tricks-for-ionic-on-desktop#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ionic.io\/blog"},{"@type":"ListItem","position":2,"name":"Tips &#038; Tricks for Ionic on Desktop"}]},{"@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\/a5c597448e38a837222a721957672cab","name":"Rodrigo Fern\u00e1ndez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ionic.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/9dc0a5ba384fa8e997d06aca0ae5948de23c799cf80c2ead3723ce34c88578c3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9dc0a5ba384fa8e997d06aca0ae5948de23c799cf80c2ead3723ce34c88578c3?s=96&d=mm&r=g","caption":"Rodrigo Fern\u00e1ndez"},"sameAs":["http:\/\/savelist.co","https:\/\/x.com\/FdezRomero"],"url":"https:\/\/ionic.io\/blog\/author\/fdezromero"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/ionic.io\/blog\/wp-content\/uploads\/2018\/02\/desktop-trick-img.jpg","_links":{"self":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/2111","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\/60"}],"replies":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/comments?post=2111"}],"version-history":[{"count":0,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/posts\/2111\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media\/2129"}],"wp:attachment":[{"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/media?parent=2111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/categories?post=2111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ionic.io\/blog\/wp-json\/wp\/v2\/tags?post=2111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}