<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Maye Edwin</title>
    <description>The latest articles on DEV Community by Maye Edwin (@mayeedwin).</description>
    <link>https://dev.to/mayeedwin</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F83408%2Ffe44a378-632e-4131-836a-c415b6247920.jpg</url>
      <title>DEV Community: Maye Edwin</title>
      <link>https://dev.to/mayeedwin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mayeedwin"/>
    <language>en</language>
    <item>
      <title>Delete Documents In Cloud Firestore For Web, Update The UI</title>
      <dc:creator>Maye Edwin</dc:creator>
      <pubDate>Mon, 10 Feb 2020 14:28:03 +0000</pubDate>
      <link>https://dev.to/mayeedwin/firebase-password-authentication-boilerplate-web-ui-4ej9</link>
      <guid>https://dev.to/mayeedwin/firebase-password-authentication-boilerplate-web-ui-4ej9</guid>
      <description>&lt;p&gt;I have been working on some little &lt;strong&gt;side project&lt;/strong&gt; dubbed &lt;a href="http://lolfacts.web.app/"&gt;Lolfacts&lt;/a&gt;, while learning much more of Firebase for Web and need to CRUD(Create, Read, Update and Delete) has been evident in the tiny project. Really exciting.&lt;/p&gt;

&lt;p&gt;If this is the first time exploring &lt;a href="https://pwafire.org/developer/codelabs/cloud-firestore-for-web/"&gt;Firebase Cloud Firestore for Web&lt;/a&gt;, be sure to have a look at this codelab code snippets and/or take it just to understand how to render each document data into the Front-end using Vanilla ES6.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Within the delete element
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt; &lt;span class="c1"&gt;// 1. grab the delete element say "del" and listen to a click event&lt;/span&gt;
  &lt;span class="nx"&gt;del&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;click&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;event&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// 2. prompt to confirm delete&lt;/span&gt;
    &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;confirm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Want to delete? This action can not be undone.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="c1"&gt;// 3. logic to delete the element named say, "lolfact"&lt;/span&gt;
      &lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stopPropagation&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
      &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;lolfact&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;data-id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
      &lt;span class="c1"&gt;// 4. get the collection to delete from&lt;/span&gt;
      &lt;span class="nx"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;collection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;lolfacts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;doc&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;delete&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
      &lt;span class="c1"&gt;// 5. delete it from the parent element to refresh the ui&lt;/span&gt;
      &lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;removeChild&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;lolfact&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Orginally Posted &lt;a href="https://maye.pwafire.org/articles/how-to-delete-a-document-in-cloud-firestore-for-web-and-update-the-ui/"&gt;on maye.pwafire.org&lt;/a&gt;&lt;/p&gt;

</description>
      <category>firebase</category>
      <category>cloud</category>
      <category>firestore</category>
      <category>crude</category>
    </item>
    <item>
      <title>🍏 Easy hands-on starter codelab for 
Firebase Cloud firestore!</title>
      <dc:creator>Maye Edwin</dc:creator>
      <pubDate>Fri, 31 Jan 2020 11:59:44 +0000</pubDate>
      <link>https://dev.to/mayeedwin/easy-hands-on-starter-codelab-for-firebase-cloud-firestore-o64</link>
      <guid>https://dev.to/mayeedwin/easy-hands-on-starter-codelab-for-firebase-cloud-firestore-o64</guid>
      <description>&lt;p&gt;In this codelab, we're going to learn how to add Firebase to your web app and serve content from the Firebase Cloud Firestore database and make your Web App work offline as well. Cloud Firestore is magical and good for &lt;strong&gt;PWAs&lt;/strong&gt; because of its offline capability! &lt;/p&gt;

&lt;p&gt;⚽️ Setting up cloud firestore&lt;/p&gt;

&lt;p&gt;⚽️ ES6 Modules&lt;/p&gt;

&lt;p&gt;⚽️ Progressive Web App&lt;/p&gt;

&lt;p&gt;Codelab url : &lt;a href="https://pwafire.org/developer/codelabs/cloud-firestore-for-web/"&gt;https://pwafire.org/developer/codelabs/cloud-firestore-for-web/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>firebase</category>
      <category>firestore</category>
      <category>es6</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Progressive Web App Template - GitHub</title>
      <dc:creator>Maye Edwin</dc:creator>
      <pubDate>Sun, 07 Jul 2019 13:24:07 +0000</pubDate>
      <link>https://dev.to/mayeedwin/progressive-web-app-template-github-5djp</link>
      <guid>https://dev.to/mayeedwin/progressive-web-app-template-github-5djp</guid>
      <description>&lt;h2&gt;
  
  
  Build your &lt;a href="https://pwabuzz.web.app/"&gt;first-pwa&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Learn how to build your first progressive web app with &lt;a href="https://pwafire.org"&gt;pwafire.org&lt;/a&gt; in &lt;a href="https://pwafire.org/developer/codelabs/pwafire/"&gt;this starter codelab&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In this codelab, you'll be able to build a progressive web app with mostly static resources or meant to work best for static web apps or sites.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Using &lt;a href="https://developers.google.com/web/tools/workbox/"&gt;Workbox&lt;/a&gt; instead
&lt;/h2&gt;

&lt;p&gt;We will be adding a more advanced codelab to help you learn how to build Progressive Web Apps that are dynamic or for large scale production scenario by having the power to :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;choose what to cache&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;dictate how to cache&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;decide how long to cache&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;decide when to cache&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;decide what resources to cache&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;decide how much of a resource to cache &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Demo in play...
&lt;/h2&gt;

&lt;p&gt;Whoaaa 🎉 we gatchu! You'll be able to finally create a progressive web app that &lt;a href="https://pwabuzz.web.app/"&gt;looks like me here&lt;/a&gt;&lt;/p&gt;

</description>
      <category>web</category>
      <category>webdev</category>
      <category>progressiveweapp</category>
      <category>pwa</category>
    </item>
    <item>
      <title>Progressive Web Apps In VS Code</title>
      <dc:creator>Maye Edwin</dc:creator>
      <pubDate>Wed, 22 May 2019 10:30:31 +0000</pubDate>
      <link>https://dev.to/mayeedwin/progressive-web-apps-in-vs-code-646</link>
      <guid>https://dev.to/mayeedwin/progressive-web-apps-in-vs-code-646</guid>
      <description>&lt;p&gt;Build Progressive Web Apps in VS Code on the go and like a pro. We have &lt;a href="https://developers.google.com/web/tools/workbox/"&gt;Workbox Support&lt;/a&gt; fully stacked too.&lt;/p&gt;

&lt;h3&gt;
  
  
  About &lt;a href="https://pwafire.org"&gt;pwafire.org&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Our mission is to make your &lt;strong&gt;webdev&lt;/strong&gt; environment fully stacked up for best web development practices with Progressive Web Apps.&lt;/p&gt;

&lt;p&gt;We have an Official Developer Guide &lt;a href="https://pwafire.org/developer/docs/how-to-use-vscode-pwa-in-vscode/"&gt;published here&lt;/a&gt; and updated with latest update for this Extension.&lt;/p&gt;

&lt;h3&gt;
  
  
  Setting up the PWA Development Environment
&lt;/h3&gt;

&lt;p&gt;We have a &lt;strong&gt;pwadev tips&lt;/strong&gt; &lt;a href="https://github.com/mayeedwin/pwadev-tips"&gt;repo available here&lt;/a&gt; to help guide you if you're just starting up or want to have your setup checklist done right.&lt;/p&gt;

&lt;h3&gt;
  
  
  Setting up the App Manifest and registering the Service Worker
&lt;/h3&gt;

&lt;p&gt;Write the &lt;strong&gt;Service Worker&lt;/strong&gt; and &lt;strong&gt;App Manifest&lt;/strong&gt; really quick and like a pro!&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Purpose and where to type&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;register service worker&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;register service worker in your landing page say &lt;code&gt;index.html&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;add web manifest to pages&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;link &lt;code&gt;app.webmanifest&lt;/code&gt; to your pages in the &lt;code&gt;head tag&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;theme color&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;add theme color in your pages head tag&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;manifest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;add manifest meta data in your empty &lt;code&gt;app.webmanifest&lt;/code&gt; file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Simple basic Service Worker
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Purpose and where to type&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;basic service worker&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;create simple service worker for simple static sites&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Commands to type in your editor for CDN Workbox
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Purpose and where to type&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;import workbox&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;import workbox in your service worker&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;workbox.strategies&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;add cache strategies in your service worker&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cache assets&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;make your JS and CSS ⚡ fast by returning the assets from the cache, while making sure they are updated in the background for the next use in your workbox &lt;code&gt;service-worker.js&lt;/code&gt; file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cache images&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;serve images quickly from the cache, while making sure you don’t cache them indefinitely, consuming your users' storage in your workbox &lt;code&gt;service-worker.js&lt;/code&gt; file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cache fonts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;rely on google fonts or other fonts being available offline after the user has visited your site&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cache external orgins&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;cache external resources from external orgins for example boostrap css&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;workbox set config&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;workbox set config for debug or production builds&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;workbox window&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;add workbox window in your landing page for faster new service worker installs and refresh&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;workbox page reload&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;offer a page reload for users&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;workbox.cacheableResponse&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;cache based on numeric status code, the presence of a header with a specific value, or a combination of the two; &lt;a href="https://developers.google.com/web/tools/workbox/modules/workbox-cacheable-response"&gt;learn more here&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Setting up Workbox pre-cache
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Purpose and where to type&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;precache for npm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;workbox precache config code snippet in your say &lt;code&gt;sw-config.js&lt;/code&gt; file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;workbox-cli devDependencies&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;adding workbox cli de dependancies in your &lt;code&gt;package.json&lt;/code&gt; file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;workbox injectManifest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;add precache versioned urls config in your workbox &lt;code&gt;service-worker.js&lt;/code&gt; file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Commands to type in your editor for NPM Workbox, using a bundler
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Excerpt :&lt;/strong&gt; When using a bundler to create your service worker, you install the Workbox packages you want to use from &lt;strong&gt;npm&lt;/strong&gt;, and&lt;br&gt;
then you use import statements to directly reference the Workbox modules you want to use.&lt;/p&gt;

&lt;p&gt;Read more &lt;a href="https://developers.google.com/web/tools/workbox/guides/using-bundlers"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Purpose and where to type&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;import workbox npm modules&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;import all workbox npm modules in your workbox &lt;code&gt;service-worker.js&lt;/code&gt; file&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;workbox register route for npm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;matching a route with a string, basically a block of a complete cache route for a resource(s)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;workbox google analytics for npm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;add offline google analytics in your workbox &lt;code&gt;service-worker.js&lt;/code&gt; file, at the bottom.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Advanced Progressive Web Apps Features
&lt;/h3&gt;

&lt;p&gt;Add Background Sync - To your javascript source folder, create an empty &lt;strong&gt;backgroundSync.js&lt;/strong&gt; file and type the following&lt;br&gt;
keyword in it to add &lt;a href="https://pwafire.org/developer/docs/background-sync/"&gt;backgroud sync&lt;/a&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;Purpose and where to type&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;background sync&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;add background sync in your new &lt;code&gt;backgroundSync.js&lt;/code&gt; file&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Requirements
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   &lt;span class="s2"&gt;"vscode"&lt;/span&gt;: &lt;span class="s2"&gt;"^1.8.0"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=mayeedwin.vscode-pwa"&gt;Install vscode-pwa&lt;/a&gt;. It's available in Visual Studio Marketplace! OR&lt;/p&gt;

&lt;p&gt;Launch VS Code Quick Open ( Ctrl + P ), paste the following command and press enter.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   ext &lt;span class="nb"&gt;install &lt;/span&gt;mayeedwin.vscode-pwa
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Demo with PWA VS Code in play
&lt;/h3&gt;

&lt;p&gt;Load &lt;a href="//.github/images/vscode-pwa-vid.gif"&gt;preview in your browser here&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Known Issues
&lt;/h3&gt;

&lt;p&gt;All good to go with beta!&lt;/p&gt;

&lt;h3&gt;
  
  
  Release Notes
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;This beta version allows you to import Workbox and use cache strategies like a pro already!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Latest release of vscode-pwa beta!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enjoy 😊 🐥&lt;/strong&gt; and thanks for checking it out. Let's connect on twitter &lt;a href="https://twitter.com/mayeedwin1"&gt;@mayeedwin1&lt;/a&gt; : )&lt;/p&gt;

</description>
      <category>pwa</category>
      <category>vscode</category>
      <category>web</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Introducing Progressive Web User Interface 🎉</title>
      <dc:creator>Maye Edwin</dc:creator>
      <pubDate>Wed, 24 Apr 2019 07:27:31 +0000</pubDate>
      <link>https://dev.to/mayeedwin/introducing-progressive-web-user-interface-gb8</link>
      <guid>https://dev.to/mayeedwin/introducing-progressive-web-user-interface-gb8</guid>
      <description>&lt;p&gt;We've had amazing stories so far with &lt;a href="https://pwafire.org"&gt;Progressive Web Apps&lt;/a&gt; and that's just great. They work for every user, regardless of browser choice because they're built with progressive enhancement as a core principle.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Progressive &lt;strong&gt;Web in 360°&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;When thinking about Progressive Web Apps think of the entitre app cylce. From how &lt;em&gt;you deliver resources&lt;/em&gt; at your backend to how &lt;em&gt;the pwa looks&lt;/em&gt; like when the user interacts with it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V6glgjpS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pwafire.org/images/codelabs/pwaui.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V6glgjpS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pwafire.org/images/codelabs/pwaui.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Users do not care about what actually is happening at the backend of your web app or just any app. What they see and how their goals are fullfilled on your web app is king!&lt;/p&gt;

&lt;p&gt;Read more about &lt;strong&gt;Progressive Web User Interface&lt;/strong&gt; and how we're working hard to tap into this at &lt;a href="https://pwafire.org"&gt;pwafire.org&lt;/a&gt; in &lt;a href="https://pwafire.org/developer/docs/progressive-user-interface/"&gt;this pwadev doc&lt;/a&gt;&lt;/p&gt;

</description>
      <category>pwafire</category>
      <category>pwa</category>
      <category>web</category>
      <category>ui</category>
    </item>
  </channel>
</rss>
