<?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: Sudhir Dontha</title>
    <description>The latest articles on DEV Community by Sudhir Dontha (@sudhirdontha).</description>
    <link>https://dev.to/sudhirdontha</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%2F368471%2Fd4d14231-f55b-47a2-bbf9-3087c95fd527.jpg</url>
      <title>DEV Community: Sudhir Dontha</title>
      <link>https://dev.to/sudhirdontha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sudhirdontha"/>
    <language>en</language>
    <item>
      <title>How does Microsoft Azure work?</title>
      <dc:creator>Sudhir Dontha</dc:creator>
      <pubDate>Wed, 23 Jun 2021 20:26:04 +0000</pubDate>
      <link>https://dev.to/sudhirdontha/how-does-microsoft-azure-work-5eob</link>
      <guid>https://dev.to/sudhirdontha/how-does-microsoft-azure-work-5eob</guid>
      <description>&lt;h3&gt;
  
  
  How does Azure work?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/MB6mmz21wDPZc2827I/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/MB6mmz21wDPZc2827I/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Behind the scenes Azure uses a technology called &lt;strong&gt;Virtualization!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Virtualization!&lt;/strong&gt; separates the tight coupling between the computers hardware and it's operating system using an abstraction layer called &lt;strong&gt;Hypervisor!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hypervisor&lt;/strong&gt; emulates all the functions of a real computer, such as CPU and a Virtual machine. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It can run multiple Virtual machine's or (VM's) at the same time.&lt;/li&gt;
&lt;li&gt;Optimize the capacity of the hardware and each virtual machine can run any compatible software &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/xT0BKL21U5nnlW4m6k/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/xT0BKL21U5nnlW4m6k/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Interesting isn't it?&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;em&gt;Let's try to know more about how does it work?&lt;/em&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/xT1R9XWlRXt08xfDX2/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/xT1R9XWlRXt08xfDX2/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  So, how does it work?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Each data center has many blocks with servers. &lt;/li&gt;
&lt;li&gt;Each server will include a &lt;strong&gt;Hypervisor&lt;/strong&gt; to run multiple virtual machine's&lt;/li&gt;
&lt;li&gt;A network switch will be provided to connect all of these servers.&lt;/li&gt;
&lt;li&gt;One server from each block will be running a special software called &lt;strong&gt;Fabric controller.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1624478498219%2FYRt020jiC.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1624478498219%2FYRt020jiC.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Each &lt;strong&gt;Fabric controller&lt;/strong&gt; will be connected to another software known as &lt;strong&gt;Orchestrator&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Orchestrator&lt;/strong&gt; will be responsible for everything that happens within Azure
(Including responding to a user's request!) &lt;/li&gt;
&lt;li&gt;Users make a request using Orchestrator's web API&lt;/li&gt;
&lt;li&gt;The web API can be called by many tools including the user interface of the Azure portal!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/xTk9ZZvJbApGt3vy3C/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/xTk9ZZvJbApGt3vy3C/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When a user creates a request to create a Virtual machine -&amp;gt; Orchestrator packages everything required for a service. -&amp;gt; chooses the best server block -&amp;gt; Sends the package and request to Fabric controller!&lt;/p&gt;

&lt;p&gt;Once the Fabric controller has created a virtual machine -&amp;gt; User can connect to this virtual machine!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You're now familiar about how Azure works in realtime! &lt;br&gt;
It's that simple and easy to understand!!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/5eG28RENYdnMrrHuwq/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/5eG28RENYdnMrrHuwq/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Thanks a lot for reading!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/Pnh0Lou03fv92J4puZ/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/Pnh0Lou03fv92J4puZ/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;




</description>
      <category>cloud</category>
      <category>tutorial</category>
      <category>codenewbie</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>What is AWS Lambda? </title>
      <dc:creator>Sudhir Dontha</dc:creator>
      <pubDate>Sat, 22 May 2021 17:06:44 +0000</pubDate>
      <link>https://dev.to/sudhirdontha/what-is-aws-lambda-fme</link>
      <guid>https://dev.to/sudhirdontha/what-is-aws-lambda-fme</guid>
      <description>&lt;p&gt;When someone says they're going serverless by AWS, they're probably using AWS Lambda services.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.metaltoad.com%2Fsites%2Fdefault%2Ffiles%2Fstyles%2Flarge_personal_photo_870x500_%2Fpublic%2F2020-05%2Faws_lambda_0.jpg%3Fitok%3DvM7RXTeW" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.metaltoad.com%2Fsites%2Fdefault%2Ffiles%2Fstyles%2Flarge_personal_photo_870x500_%2Fpublic%2F2020-05%2Faws_lambda_0.jpg%3Fitok%3DvM7RXTeW" alt="AWS Lambda"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AWS Lambda basically operates function as a service model i.e..,
You as a developer only need to provide a function - the code to be executed whenever AWS Lambda runs - this is what serverless means.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS Function Lambda can run up to 15 minutes, in case if the function written by you takes only 5-10 seconds of time to execute, you will be paying only for the execution or the compute time it takes to run.&lt;/p&gt;

&lt;p&gt;It lets you run the code without provisioning or managing servers (Remember we need to pay only for the compute time we consume)&lt;br&gt;
&lt;br&gt;&lt;br&gt;
Concerned about pricing? &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Although, we might not start directly by paying AWS. AWS free tier offers 400,000 GB per month and up to 1 Million free requests. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F83khfsi8x5z5fq29ig53.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F83khfsi8x5z5fq29ig53.png" alt="Pricing"&gt;&lt;/a&gt;&lt;br&gt;
(You can more read about pricing in the link given at the end of the article)&lt;/p&gt;

&lt;p&gt;What after creating a function?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Once you create a function, this function can be triggered by various resources such as, uploading data to S3, using it under an API Gateway which is a HTTP request and few more...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Which programming languages support Lambda?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lambda supports various programming languages such as Node, Java, Go, Python, .Net Core. And there are different versions support for the same programming languages as mentioned.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd26go7c29h3uln9yfavi.png" alt="language-support"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;How can you create a function?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can create a function in many ways...&lt;/li&gt;
&lt;li&gt;We can create,edit the code in the inline editor provided by AWS 
(Select the programming language :) )&lt;/li&gt;
&lt;li&gt;We can upload a .ZIP file which includes all the dependencies&lt;/li&gt;
&lt;li&gt;Upload from AWS S3 
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.unsplash.com%2Fphoto-1461749280684-dccba630e2f6%3Fixid%3DMnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8%26ixlib%3Drb-1.2.1%26auto%3Dformat%26fit%3Dcrop%26w%3D1950%26q%3D80" alt="function"&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Official AWS links to know more in detail :)&lt;br&gt;
&lt;a href="https://aws.amazon.com/lambda/" rel="noopener noreferrer"&gt;https://aws.amazon.com/lambda/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/lambda/pricing" rel="noopener noreferrer"&gt;https://aws.amazon.com/lambda/pricing&lt;/a&gt;&lt;br&gt;
&lt;a href="https://aws.amazon.com/blogs/architecture/understanding-the-different-ways-to-invoke-lambda-functions/" rel="noopener noreferrer"&gt;https://aws.amazon.com/blogs/architecture/understanding-the-different-ways-to-invoke-lambda-functions/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>codenewbie</category>
      <category>tutorial</category>
      <category>computerscience</category>
    </item>
    <item>
      <title>What is Neo4j? Why it is used? What is graph Database? Neo4j - 1</title>
      <dc:creator>Sudhir Dontha</dc:creator>
      <pubDate>Thu, 29 Apr 2021 06:10:01 +0000</pubDate>
      <link>https://dev.to/sudhirdontha/neo4j-fi</link>
      <guid>https://dev.to/sudhirdontha/neo4j-fi</guid>
      <description>&lt;ul&gt;
&lt;li&gt;This will be a series of article's , #1 of Neo4j series 
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Q.What is a graph DB?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Database that uses graph structures for semantic queries with nodes, edges and properties to store data! Can perform CRUD operations too..&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cypher Query language &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Neo4j provides a powerful declarative query language known as Cypher, to represent the graph visually.&lt;br&gt;
The commands of this language are in human readable format &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cypher is easy to learn and can be used to create and retrieve relations between data without using the complex queries like Joins.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Support's two kinds of Java API: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cypher API   and
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Native Java API to develop Java applications.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;p&gt;RDBMS            -&amp;gt;          Graph Database&lt;br&gt;
Tables                     -&amp;gt; Graphs&lt;br&gt;
Rows                          -&amp;gt;  Nodes&lt;br&gt;
Columns and Data         -&amp;gt; Properties and its values&lt;br&gt;
Constraints                   -&amp;gt; Relationships&lt;br&gt;
Joins                        -&amp;gt;  Traversal&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Neo4j Graph Database has the following building blocks&lt;br&gt;
-&amp;gt;    Nodes - represents entities or items (users, accounts..)&lt;br&gt;
-&amp;gt;    Edges - Lines that connect nodes to other nodes or nodes to properties (Graphs or relationships)&lt;br&gt;
 -&amp;gt;   Properties - or Attributes which hold the info related to nodes&lt;br&gt;
  -&amp;gt;  Relationships&lt;br&gt;
   -&amp;gt; Labels&lt;br&gt;
   -&amp;gt; Data Browser&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnn9cfn1jwix1o6wvifk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnn9cfn1jwix1o6wvifk.png" alt="Example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;properties are represented in the circle / rectangle area and the relationship is represented using the lines between the properties&lt;/p&gt;

</description>
    </item>
    <item>
      <title>PWA in brief : part 2</title>
      <dc:creator>Sudhir Dontha</dc:creator>
      <pubDate>Thu, 25 Mar 2021 18:40:12 +0000</pubDate>
      <link>https://dev.to/sudhirdontha/pwa-in-brief-part-2-8c5</link>
      <guid>https://dev.to/sudhirdontha/pwa-in-brief-part-2-8c5</guid>
      <description>&lt;p&gt;For part 1 article please refer to this link : &lt;a href="https://dev.to/sudhirdontha/pwa-what-is-pwa-progressive-web-app-2kmc"&gt;https://dev.to/sudhirdontha/pwa-what-is-pwa-progressive-web-app-2kmc&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Apps store&amp;gt;has Native apps: that has native packages published by dev’s &amp;gt; when we install this app , we get a bundle -&amp;gt; this bundle is installed locally in our device.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1608209159361%2F3qiJpTVXL.png%3Fauto%3Dcompress" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1608209159361%2F3qiJpTVXL.png%3Fauto%3Dcompress" alt="AppStore &amp;amp; PlayStore"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;-&amp;gt; When bundle is installed it will probably connect to a web browser&lt;br&gt;
Bundle &amp;lt;-API calls -&amp;gt; web server&lt;/p&gt;

&lt;p&gt;-&amp;gt; If the user is offline the bundle will recognize the situation, will render a different content -&amp;gt; stop message / connect to internet.&lt;/p&gt;




&lt;h2&gt;
  
  
  Websites / web apps
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A Web server (has HTML, CSS, JS resources) ---- requests-&amp;gt;webpage -&amp;gt;https-&amp;gt;device with runtime(browser) If the user is offline the bundle will recognize the situation, will render a different content -&amp;gt; stop message / connect to internet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1608209247474%2FFs-Q4vvYC.webp%3Fauto%3Dcompress" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1608209247474%2FFs-Q4vvYC.webp%3Fauto%3Dcompress" alt="PWA architecture"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In PWA case if an app makes a request, it comes with service worker registration, this service worker will be registered in the users device, it will run with the browsers context along with the runtime , service worker will download the required files needed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In PWA for example HTML, CSS, JS and other required resources &amp;gt; the service worker will now save the file locally in the client &amp;gt; it will then serve resources to the web runtime . if the app needs a request it, service worker will now be intermediate b/w or in middle b/w web runtime and API calls, service worker will make the decision&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Service worker will act as a web server if it is offline that we are installing client side ,it will serve the content locally in the name of web server instead of going to the real web server so this is how PWA will be available offline&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Now what is a Service worker?
&lt;/h1&gt;

&lt;p&gt;A service worker is just a JavaScript file running in its own thread that will act as a local installed web server or as a web proxy for a PWA including API calls and resources.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1608209019235%2FBn3sdd-BZ.jpeg%3Fauto%3Dcompress" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1608209019235%2FBn3sdd-BZ.jpeg%3Fauto%3Dcompress" alt="Service worker"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Works on client side using browsers engine&lt;/li&gt;
&lt;li&gt;Only works under https&lt;/li&gt;
&lt;li&gt;Has its own thread and lifecycle – incase if you close the app, it can still be there up and running&lt;/li&gt;
&lt;li&gt;Acts as local or network proxy or local web server in the name of real web server&lt;/li&gt;
&lt;li&gt;Abilities to run in background.&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  App experience
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fazukidigital.com%2Fassets%2Fimages%2Fhero_graphic.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fazukidigital.com%2Fassets%2Fimages%2Fhero_graphic.svg" alt="app-experience"&gt;&lt;/a&gt;&lt;br&gt;
App experience differs by platform, by browser, by theme color.. standalone..&lt;br&gt;
Also, there are few different App experience display modes on android&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;App experiences&lt;/li&gt;
&lt;li&gt;Standalone /&lt;/li&gt;
&lt;li&gt;Minimal user interface / banking/ secure&lt;/li&gt;
&lt;li&gt;Fullscreen/games.&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Icon experience
&lt;/h1&gt;

&lt;p&gt;Now that you're familiar with App Experiences in android, read more about icon experiences as icons also reflect your application idea!&lt;/p&gt;

&lt;h5&gt;
  
  
  In Android there are 2 kinds of icon experiences
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Shortcut- creates a shortcut to browsers engine/installed only on home-screen/no icon on app launcher/doesn’t appear in the app’s list/installed apps list./ all browsers currently use this method&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;WebAPK- only available on passing PWA criteria, its full android native package, it contains only apps name, icon &amp;amp; URL , doesn’t contain html, CSS , JS resources, • APK will be installed by android OS, icon goes to home screen as well as app launcher&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Web APK’s are also available on Samsung devices using Samsung internet browser&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Link capturing a new feature – within android OS PWA will be able to capture all links pointing to your PWA scope it will render the same in the app instead of browser.
&lt;/h5&gt;

&lt;p&gt;Badging – number/just a dot displayed how many notifications received, this can be changed with push messages and with client-side code&lt;/p&gt;




&lt;h2&gt;
  
  
  Updating icon or apps meta data
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;By default, application will reinstall, doesn’t affect users if they've installed the app already..&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;*In Web APK case chrome will check daily if there’s any update in the manifest file&lt;/p&gt;




&lt;h2&gt;
  
  
  Abilities
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Web assembly: able to execute/run high performance native code within the JavaScript runtime&lt;/li&gt;
&lt;li&gt;AR/VR experiences&lt;/li&gt;
&lt;li&gt;Web GL – 3d rendering&lt;/li&gt;
&lt;li&gt;Web push – push notifications/ messages (ex: incase if user is not using the app)&lt;/li&gt;
&lt;li&gt;Web share – share content across the apps&lt;/li&gt;
&lt;li&gt;Web auth –&lt;/li&gt;
&lt;li&gt;Payment requests&lt;/li&gt;
&lt;li&gt;Games - such as Game-Pad API, uses Bluetooth listens to joystick..&lt;/li&gt;
&lt;li&gt;Web RTC – real time communication, ex : Google Duo&lt;/li&gt;
&lt;li&gt;Web Bluetooth&lt;/li&gt;
&lt;li&gt;Media recorder&lt;/li&gt;
&lt;li&gt;Machine Learning&lt;/li&gt;
&lt;li&gt;Sensors and geolocation – Ex: Uber PWA&lt;/li&gt;
&lt;li&gt;Communication with other native apps using custom URL links, such as it can open YouTube,can share content/media to other applications&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Limitations – Web platform
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flhfhunnscqa4s6fixph9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flhfhunnscqa4s6fixph9.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Not every API is exposed..&lt;/li&gt;
&lt;li&gt;Background execution : runs continously in the background.&lt;/li&gt;
&lt;li&gt;Limited or no access to features such as Geofencing, Bluetooth low energy devices&lt;/li&gt;
&lt;li&gt;Low level hardware access&lt;/li&gt;
&lt;li&gt;OS event handling- event or cached data is sometimes lost when the device is switched off or restarted later..&lt;/li&gt;
&lt;li&gt;Bugs and lacks documentation for other platforms&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Limitations – Web App manifest specifcation
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Multi-origin PWA’s are not allowed: incase if your app has more subdomains or external links pointing to other apps, in app browser will appear in this case.&lt;/li&gt;
&lt;li&gt;Splash screen customizing is not available on all platforms
Multi-platform icons – need to provide supported specific icon for each platform.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.techrepublic.com%2Fa%2Fhub%2Fi%2Fr%2F2018%2F01%2F03%2Fc9c33072-0917-4677-9d78-2a6a8f3c1bda%2Fresize%2F1200x%2F9cf51de54f9251c2aa40327af7517d6b%2Fhero-pwa-discovery.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.techrepublic.com%2Fa%2Fhub%2Fi%2Fr%2F2018%2F01%2F03%2Fc9c33072-0917-4677-9d78-2a6a8f3c1bda%2Fresize%2F1200x%2F9cf51de54f9251c2aa40327af7517d6b%2Fhero-pwa-discovery.jpg" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi installation detection- cannot detect incase if you download a PWA from Firefox, and download again from chrome, or play store if published pointing to the same app.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Please feel free to read PWA in brief : part 1 here : &lt;a href="https://dev.to/sudhirdontha/pwa-what-is-pwa-progressive-web-app-2kmc"&gt;https://dev.to/sudhirdontha/pwa-what-is-pwa-progressive-web-app-2kmc&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;You've now learned about the Service worker in brief, app &amp;amp; icon experience, limitations and required specifications and expectations required for a PWA.&lt;br&gt;
We'll be covering more about PWA in detail in the upcoming articles!! Thanks for reading!&lt;/p&gt;

&lt;p&gt;:)&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>PWA! What is PWA? (Progressive Web App)</title>
      <dc:creator>Sudhir Dontha</dc:creator>
      <pubDate>Fri, 12 Mar 2021 07:51:27 +0000</pubDate>
      <link>https://dev.to/sudhirdontha/pwa-what-is-pwa-progressive-web-app-2kmc</link>
      <guid>https://dev.to/sudhirdontha/pwa-what-is-pwa-progressive-web-app-2kmc</guid>
      <description>&lt;p&gt;Before stepping into the actual concept of PWA, we need to be familiar with other approaches and why such pattern has been introduced and widely used?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1608206627825%2FOJRhquvA0.jpeg%3Fauto%3Dcompress" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1608206627825%2FOJRhquvA0.jpeg%3Fauto%3Dcompress" alt="PWA vs Native apps"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;1.Native SDK (Software Development Kits) helps to create applications and experience the same on devices (such as Android,iOS..etc)&lt;br&gt;
2.Hybrid application development uses the Native SDK's as well as Web, Web API's to create the applications and the best experience on the platforms to be built.&lt;br&gt;
3.Web Development helps to create web applications which usually render on browser as well as runs on specific platforms as it is designed to build.&lt;/p&gt;

&lt;p&gt;It will be cumbersome for developers to code for all the platforms and to get the same seamless best experience where the end user is trying to access the application.&lt;/p&gt;

&lt;p&gt;PWA in this picture helps to reduce the time,effort for developers by writing only one or common codebase for all the platforms to achieve the best Web as well as Native experience!&lt;/p&gt;

&lt;p&gt;Following this approach it is easy to : -&amp;gt;Discover on the web using SEO approaches..&lt;br&gt;
-&amp;gt;Easy to deploy on the server!&lt;br&gt;
-&amp;gt;Easy to update&lt;br&gt;
-&amp;gt;All you need to be familiar is with the common web standards &amp;amp; web tools.&lt;/p&gt;

&lt;p&gt;pwa vs native&lt;/p&gt;

&lt;p&gt;Common features Web vs Native :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Web:&lt;br&gt;
Links and discoverability.&lt;br&gt;
easy to update to server.&lt;br&gt;
Easy to deploy!&lt;br&gt;
web standards and web tools.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Native:&lt;br&gt;
Offline access&lt;br&gt;
Push notifications.&lt;br&gt;
Installed icon and standalone&lt;br&gt;
performance and UX&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Q.What is PWA?&lt;br&gt;
A. PWA(Progressive Web App) is just a design pattern,where main objective is to work or function on any platform (where the device is able to run a browser mobile,desktop..) developed by Google . Built using common Web technologies such as HTML,CSS,JavaScript.&lt;/p&gt;

&lt;p&gt;Q.What are the main components of PWA?&lt;br&gt;
A.Three main components of PWA:&lt;br&gt;
1)Web app (html, CSS, JS)&lt;br&gt;
2)Service worker (key component)- brain of a PWA.&lt;br&gt;
3)Distribution model on web i.e., Web app manifest- is w3c spec followed, A JSON file attached to your web app, defines meta data for app installation such as name, icon, theme color.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1608206233592%2FH7c4V82lP.png%3Fauto%3Dcompress" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1608206233592%2FH7c4V82lP.png%3Fauto%3Dcompress" alt="PWA-features"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Q.How do you know if a URL is currently a PWA?&lt;br&gt;
A.The easiest way to use today is lighthouse, this is also available as CLI – NPM, within also in web Dev Tools&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PWA Installability criteria:
Checks – App meta data is present
Service worker is installed (Secured connection) by HTTP or TLS
Checks if the app is able to work offline/not without connection
Checks the app performance
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1608206437853%2FdQauJ2iyd.png%3Fauto%3Dcompress" alt="PWA-app-installation"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Q.What if it an application developed has passed the criteria?&lt;br&gt;
A.If it passes the criteria :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Its officially a PWA
Installation will be possible
A hint for the user may appear that this app has passed the criteria.
Helps with the SEO standards and discoverability features.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1608206495939%2F_w7O0rmf9.png%3Fauto%3Dcompress" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1608206495939%2F_w7O0rmf9.png%3Fauto%3Dcompress" alt="PWA-app-experience"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Progressive experience:
Reacts to different environments such as– 2g, 3g, high-end, low-end/feature phone devices
Offering a good possible experience to all users within the network bandwidth and hardware supported to the devices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Same code delivering different levels of quality (based on context and environment)&lt;/p&gt;

&lt;p&gt;Uses API's to detect environment and act in consequence, screen latency, network related!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1608206750719%2Ff5cm6eNEi.jpeg%3Fauto%3Dcompress" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1608206750719%2Ff5cm6eNEi.jpeg%3Fauto%3Dcompress" alt="PWA-characteristics"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Progressive features :
Basic web content
Add installation
Add service worker
Add hardware usage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This article was part-1 in brief.&lt;br&gt;
Thanks a lot for reading!&lt;/p&gt;

&lt;p&gt;Please kindly follow this link for part 2 ! : &lt;br&gt;
&lt;a href="https://dev.to/sudhirdontha/pwa-in-brief-part-2-8c5"&gt;https://dev.to/sudhirdontha/pwa-in-brief-part-2-8c5&lt;/a&gt;&lt;br&gt;
                     (or)&lt;br&gt;
&lt;a href="https://sudhirdontha.hashnode.dev/pwa-in-brief-part-2" rel="noopener noreferrer"&gt;https://sudhirdontha.hashnode.dev/pwa-in-brief-part-2&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>codenewbie</category>
    </item>
  </channel>
</rss>
