Progressive Web Apps (PWAs) use modern web capabilities and a service worker to deliver an app-like user experience. Service workers allow offline use and background syncing. The document discusses key PWA technologies like service workers, caching with Cache Storage and IndexedDB, the Web App Manifest for a native-like experience, and push notifications. It provides a checklist for making an app a fully-featured PWA, including caching the app shell and dynamic data, adding a manifest, and using background syncing.
Un breve viaje por la concepción del Desarrollo de Aplicaciones Web desde el clásico patrón de Aplicaciones Web de Servidor con renderización en servidor e interactividad limitada en cliente a la reciente era de las Single Page Applications con renderización en cliente, foco en la interactividad y desacoplamiento del backend hasta llegar a los actuales patrones híbridos de renderización en cliente y servidor en busca de la mejor performance, la mejor experiencia de usuario y el mejor SEO.
Web Development on Web Project PresentationMilind Gokhale
Web development on web was part of a project in the final year of Engineering to demonstrate the implementation and application of SaaS using Microsoft Silverlight.
The application facilitated creation of web pages without having a need to install any HTML editor based software.
Here is the blog: http://www.aurorasolutions.io/architecture-workflow-of-modern-web-apps/
In the IT industry the biggest problem we regularly face is the abundance of choice. We have tons of frameworks, languages, tools, platforms, etc. Although for competition purposes; multiple choices are ultimately very good but we usually find ourselves in paralysis when we have to choose among them for our next project.
People usually still consider that (frontend) of web applications are created by mixing together HTML, CSS & JavaScript without giving any thoughts about the frontend architecture, workflow and testing; but things have definitely changed now since last couple of years and in this presentation I try to explain that how JavaScript and it’s related stuff has become first class citizen and how the new workflow looks like. And I will also explain that how the architecture of modern web applications is migrating from thick server-side applications to smart clients and services on their journey North to pure Microservices.
Here is the list of different tools and frameworks that have been discussed in this presentation:
* Yeoman: (http://yeoman.io/) Yeoman is the web’s scaffolding tool for modern webapps. Yeoman helps you to kickstart new projects, prescribing best practices and tools to help you stay productive.
* Bower: (http://bower.io/) Bower is used for dependency management, so that you no longer have to manually download and manage your scripts. Web sites are made of lots of things — frameworks, libraries, assets, utilities, and rainbows. Bower manages all these things for you.
* Grunt: (http://gruntjs.com/) Grunt is a task-based command line build tool for JavaScript projects. When you work on large projects you have couple of things that you do regularly and you would like them to be automated; Grunt is the tool to solve that problem!
* HTML5 Boilerplate: (https://html5boilerplate.com/) HTML5 Boilerplate is a professional front-end template for building fast, robust, and adaptable web apps or sites.
* Twitter Bootstrap: (http://getbootstrap.com/2.3.2/) Sleek, intuitive, and powerful front-end framework for faster and easier web development.
* Jasmine: (https://github.com/jasmine/jasmine) Jasmine is a behavior-driven development framework for testing JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. And it has a clean, obvious syntax so that you can easily write tests.
* Karma: (https://github.com/karma-runner/karma/) A simple tool that allows you to execute JavaScript code in multiple real browsers.
* PhantomJS: (https://github.com/ariya/phantomjs/) PhantomJS is a headless WebKit scriptable with JavaScript.
* Protractor: (https://github.com/angular/protractor) Protractor is an end-to-end test framework for AngularJS applications.
Un breve viaje por la concepción del Desarrollo de Aplicaciones Web desde el clásico patrón de Aplicaciones Web de Servidor con renderización en servidor e interactividad limitada en cliente a la reciente era de las Single Page Applications con renderización en cliente, foco en la interactividad y desacoplamiento del backend hasta llegar a los actuales patrones híbridos de renderización en cliente y servidor en busca de la mejor performance, la mejor experiencia de usuario y el mejor SEO.
Web Development on Web Project PresentationMilind Gokhale
Web development on web was part of a project in the final year of Engineering to demonstrate the implementation and application of SaaS using Microsoft Silverlight.
The application facilitated creation of web pages without having a need to install any HTML editor based software.
Here is the blog: http://www.aurorasolutions.io/architecture-workflow-of-modern-web-apps/
In the IT industry the biggest problem we regularly face is the abundance of choice. We have tons of frameworks, languages, tools, platforms, etc. Although for competition purposes; multiple choices are ultimately very good but we usually find ourselves in paralysis when we have to choose among them for our next project.
People usually still consider that (frontend) of web applications are created by mixing together HTML, CSS & JavaScript without giving any thoughts about the frontend architecture, workflow and testing; but things have definitely changed now since last couple of years and in this presentation I try to explain that how JavaScript and it’s related stuff has become first class citizen and how the new workflow looks like. And I will also explain that how the architecture of modern web applications is migrating from thick server-side applications to smart clients and services on their journey North to pure Microservices.
Here is the list of different tools and frameworks that have been discussed in this presentation:
* Yeoman: (http://yeoman.io/) Yeoman is the web’s scaffolding tool for modern webapps. Yeoman helps you to kickstart new projects, prescribing best practices and tools to help you stay productive.
* Bower: (http://bower.io/) Bower is used for dependency management, so that you no longer have to manually download and manage your scripts. Web sites are made of lots of things — frameworks, libraries, assets, utilities, and rainbows. Bower manages all these things for you.
* Grunt: (http://gruntjs.com/) Grunt is a task-based command line build tool for JavaScript projects. When you work on large projects you have couple of things that you do regularly and you would like them to be automated; Grunt is the tool to solve that problem!
* HTML5 Boilerplate: (https://html5boilerplate.com/) HTML5 Boilerplate is a professional front-end template for building fast, robust, and adaptable web apps or sites.
* Twitter Bootstrap: (http://getbootstrap.com/2.3.2/) Sleek, intuitive, and powerful front-end framework for faster and easier web development.
* Jasmine: (https://github.com/jasmine/jasmine) Jasmine is a behavior-driven development framework for testing JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. And it has a clean, obvious syntax so that you can easily write tests.
* Karma: (https://github.com/karma-runner/karma/) A simple tool that allows you to execute JavaScript code in multiple real browsers.
* PhantomJS: (https://github.com/ariya/phantomjs/) PhantomJS is a headless WebKit scriptable with JavaScript.
* Protractor: (https://github.com/angular/protractor) Protractor is an end-to-end test framework for AngularJS applications.
Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...Shift Conference
Good frontend development is hard. Scaling frontend development is even harder because you need to ensure that multiple teams can work on a big and complex project simultaneously and without any blockers. Today you often hear about micro frontends which are one of the more controversial Web topics. What are they? Are they worth all the fuzz? Should you implement them? As someone who worked at integrating this in Infobip’s Web Interface, I want to use our example to show you our way of thinking: how did we know that we have problems, how did we decide to approach the implementation of micro frontend architecture and why did we decide to go with it, and which problems we ran into. We will also look at alternate available possibilities useful for anyone.
Microservices is a well-known term for recently year. But the truth is that it mostly focused on backends site while the frontend is still a monolithic application. This presentation intends to provide the necessary tooling to achieve independent apps loaded separately and run on different parts on a single web page in complete isolation which is officially called micro-frontends.
Overview of Aeternity Blockchain - Sophia smart contracts, state channels, oracles and current devtools.
Presentation from Silesian Blockchain Meetup #9 (Katowice 18.03.2019)
What's behind the hype about Blazor? Is Javascript dead? Another Silverlight? If you are a .Net developer you will love Blazor: the new framework to build web/desktop and even mobile apps with C#. In this talk we will cover Blazor hosting models, Javascript Interop, Components, and a lot more.
Vue3: nuove funzionalità, differenze e come migrareAndrea Campaci
Video https://www.youtube.com/watch?v=j5prAoFZWiI
Nel talk parleremo di Vue3! Un'overview a 360 gradi sulla nuova e più recente versione del noto framework.
Partiremo dai cambiamenti, analizzeremo le differenze, tra la versione che conosciamo e quella nuova, e guardando con attenzione le nuove funzionalità che il framework ci mette a disposizione.
ngStockholm #8 at NetEnt - Micro Frontend ArchitectureIshaan Puniani
Micro frontend ngstockholm#8@netent
A brief about, How we are de-coupling Add-on features from the main application that makes the developer's life easy.
Microsoft WebMatrix is a new tool from Microsoft aimed at the non-professional and hobbiest web developers and provides them a complete toolset to create
Micro Frontends Architecture is micro service approach for Frontend development. Micro Frontends thinks web-app as a composition of features which are owned by independent teams. Each team has a distinct area of business or mission it cares about and specialises in it. A team is cross functional and develops its features end-to-end, from database to user interface and take care of CI/CD. Micro service architechure is well know concept for backend point of view but In frontend we need to follow diffrent type of design pattern to achieve this.
Key Take away:
1. Learn about Micro Frontend
2. How to practically use them
3. Key challenges
Progressive Web App
New Web Technology for the Mobile User Which work on Poor Data Connection and It Will Work With Simple Manifest File Or with use of Service Workers. It Feel Like Mobile App to the user.
What are the principles to build a progressive web app? What are its core features? What about its architecture? The blog explores it all. Give it a read. https://www.webguru-india.com/blog/checklist-for-progressive-web-app-development/
Shift Remote FRONTEND: Micro Frontend Architecture: A Look Into the Future - ...Shift Conference
Good frontend development is hard. Scaling frontend development is even harder because you need to ensure that multiple teams can work on a big and complex project simultaneously and without any blockers. Today you often hear about micro frontends which are one of the more controversial Web topics. What are they? Are they worth all the fuzz? Should you implement them? As someone who worked at integrating this in Infobip’s Web Interface, I want to use our example to show you our way of thinking: how did we know that we have problems, how did we decide to approach the implementation of micro frontend architecture and why did we decide to go with it, and which problems we ran into. We will also look at alternate available possibilities useful for anyone.
Microservices is a well-known term for recently year. But the truth is that it mostly focused on backends site while the frontend is still a monolithic application. This presentation intends to provide the necessary tooling to achieve independent apps loaded separately and run on different parts on a single web page in complete isolation which is officially called micro-frontends.
Overview of Aeternity Blockchain - Sophia smart contracts, state channels, oracles and current devtools.
Presentation from Silesian Blockchain Meetup #9 (Katowice 18.03.2019)
What's behind the hype about Blazor? Is Javascript dead? Another Silverlight? If you are a .Net developer you will love Blazor: the new framework to build web/desktop and even mobile apps with C#. In this talk we will cover Blazor hosting models, Javascript Interop, Components, and a lot more.
Vue3: nuove funzionalità, differenze e come migrareAndrea Campaci
Video https://www.youtube.com/watch?v=j5prAoFZWiI
Nel talk parleremo di Vue3! Un'overview a 360 gradi sulla nuova e più recente versione del noto framework.
Partiremo dai cambiamenti, analizzeremo le differenze, tra la versione che conosciamo e quella nuova, e guardando con attenzione le nuove funzionalità che il framework ci mette a disposizione.
ngStockholm #8 at NetEnt - Micro Frontend ArchitectureIshaan Puniani
Micro frontend ngstockholm#8@netent
A brief about, How we are de-coupling Add-on features from the main application that makes the developer's life easy.
Microsoft WebMatrix is a new tool from Microsoft aimed at the non-professional and hobbiest web developers and provides them a complete toolset to create
Micro Frontends Architecture is micro service approach for Frontend development. Micro Frontends thinks web-app as a composition of features which are owned by independent teams. Each team has a distinct area of business or mission it cares about and specialises in it. A team is cross functional and develops its features end-to-end, from database to user interface and take care of CI/CD. Micro service architechure is well know concept for backend point of view but In frontend we need to follow diffrent type of design pattern to achieve this.
Key Take away:
1. Learn about Micro Frontend
2. How to practically use them
3. Key challenges
Progressive Web App
New Web Technology for the Mobile User Which work on Poor Data Connection and It Will Work With Simple Manifest File Or with use of Service Workers. It Feel Like Mobile App to the user.
What are the principles to build a progressive web app? What are its core features? What about its architecture? The blog explores it all. Give it a read. https://www.webguru-india.com/blog/checklist-for-progressive-web-app-development/
The Web has grown from sharing information as document to highly scalable application. With the introduction of Progressive web apps, we now have a whole new way to rethink and architect client applications across multiple platforms. The primary motive of a PWA is for it feel like a native app irrespective of the platform.
A Progressive Web App (PWA) is a web app that uses modern web capabilities to deliver an app-like experience to users. These apps meet certain requirements, are deployed to servers, accessible through URLs, and indexed by search engines.
Progressive Web Applications - The Next Gen Web TechnologiesGeekNightHyderabad
In a world where majority of the population is not actively connected to the Internet, how usable are the regular web applications? What are the technologies which would help us develop apps to include all these users? To answer this need and also to bring about a great user experience, we have Progressive Web Applications (PWAs) emerging.
The talk would cover what gaps in the traditional web apps and native apps led to the emergence of PWAs. What are PWAs and the underlying technologies for making a web app progressive. It also covers what are the challenges involved in developing PWAs.
A Quick Guide On Mobile App Backend Development For Busy People.docxgoodcoders
There is no refusing that the effectiveness of the mobile app development company process majorly depends on using different technologies to meet various business purposes.
A Quick Guide On Mobile App Backend Development For Busy People.docxgoodcoders
There is no refusing that the effectiveness of the mobile app development company process majorly depends on using different technologies to meet various business purposes.
Learn how to build your own PWA enabled page in under 5 minutes ⚡️, what SPAs' have to do with PWA and how Shopware implements their headless commerce solution!
We know that having a website is not only thing that you need to shine on the internet.
you need efficient SEO and SMO services. as you may also need some local marketing along with some digital marketing.
According to a report, mobile eCommerce sales are expected to generate $710 billion in revenue by 2025. As a developer, you need to create progressive web apps (PWAs) that can help your clients generate higher sales.
“Progressive Web Apps (PWAs) are web applications that load like regular web pages or websites but can offer the user functionality such as working offline, push notifications, and device hardware access traditionally available only to native mobile applications. PWAs are an emerging technology that combine the open standards of the web offered by modern browsers to provide benefits of a rich mobile experience”
This Slide Deck Was used on my Masterclass abut PWA in my Masterclass about PWA and Web Standards. Thia was an introduction to PWA and his basic stone Path.
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBrad Spiegel Macon GA
Brad Spiegel Macon GA’s journey exemplifies the profound impact that one individual can have on their community. Through his unwavering dedication to digital inclusion, he’s not only bridging the gap in Macon but also setting an example for others to follow.
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC
Ellisha Heppner, Grant Management Lead, presented an update on APNIC Foundation to the PNG DNS Forum held from 6 to 10 May, 2024 in Port Moresby, Papua New Guinea.
1.Wireless Communication System_Wireless communication is a broad term that i...JeyaPerumal1
Wireless communication involves the transmission of information over a distance without the help of wires, cables or any other forms of electrical conductors.
Wireless communication is a broad term that incorporates all procedures and forms of connecting and communicating between two or more devices using a wireless signal through wireless communication technologies and devices.
Features of Wireless Communication
The evolution of wireless technology has brought many advancements with its effective features.
The transmitted distance can be anywhere between a few meters (for example, a television's remote control) and thousands of kilometers (for example, radio communication).
Wireless communication can be used for cellular telephony, wireless access to the internet, wireless home networking, and so on.
This 7-second Brain Wave Ritual Attracts Money To You.!nirahealhty
Discover the power of a simple 7-second brain wave ritual that can attract wealth and abundance into your life. By tapping into specific brain frequencies, this technique helps you manifest financial success effortlessly. Ready to transform your financial future? Try this powerful ritual and start attracting money today!
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesSanjeev Rampal
Talk presented at Kubernetes Community Day, New York, May 2024.
Technical summary of Multi-Cluster Kubernetes Networking architectures with focus on 4 key topics.
1) Key patterns for Multi-cluster architectures
2) Architectural comparison of several OSS/ CNCF projects to address these patterns
3) Evolution trends for the APIs of these projects
4) Some design recommendations & guidelines for adopting/ deploying these solutions.
# Internet Security: Safeguarding Your Digital World
In the contemporary digital age, the internet is a cornerstone of our daily lives. It connects us to vast amounts of information, provides platforms for communication, enables commerce, and offers endless entertainment. However, with these conveniences come significant security challenges. Internet security is essential to protect our digital identities, sensitive data, and overall online experience. This comprehensive guide explores the multifaceted world of internet security, providing insights into its importance, common threats, and effective strategies to safeguard your digital world.
## Understanding Internet Security
Internet security encompasses the measures and protocols used to protect information, devices, and networks from unauthorized access, attacks, and damage. It involves a wide range of practices designed to safeguard data confidentiality, integrity, and availability. Effective internet security is crucial for individuals, businesses, and governments alike, as cyber threats continue to evolve in complexity and scale.
### Key Components of Internet Security
1. **Confidentiality**: Ensuring that information is accessible only to those authorized to access it.
2. **Integrity**: Protecting information from being altered or tampered with by unauthorized parties.
3. **Availability**: Ensuring that authorized users have reliable access to information and resources when needed.
## Common Internet Security Threats
Cyber threats are numerous and constantly evolving. Understanding these threats is the first step in protecting against them. Some of the most common internet security threats include:
### Malware
Malware, or malicious software, is designed to harm, exploit, or otherwise compromise a device, network, or service. Common types of malware include:
- **Viruses**: Programs that attach themselves to legitimate software and replicate, spreading to other programs and files.
- **Worms**: Standalone malware that replicates itself to spread to other computers.
- **Trojan Horses**: Malicious software disguised as legitimate software.
- **Ransomware**: Malware that encrypts a user's files and demands a ransom for the decryption key.
- **Spyware**: Software that secretly monitors and collects user information.
### Phishing
Phishing is a social engineering attack that aims to steal sensitive information such as usernames, passwords, and credit card details. Attackers often masquerade as trusted entities in email or other communication channels, tricking victims into providing their information.
### Man-in-the-Middle (MitM) Attacks
MitM attacks occur when an attacker intercepts and potentially alters communication between two parties without their knowledge. This can lead to the unauthorized acquisition of sensitive information.
### Denial-of-Service (DoS) and Distributed Denial-of-Service (DDoS) Attacks
4. What you’ll learn
01
02
03
What Progressive Web Apps are?
Short introduction to key features and ideas behind Progressive
Web Apps
Key technologies
We will take a look at technologies used in Progressive Web Apps
to achieve native-like and offline user experience.
PWA checklist
Hot to make your app a Progressive Web App.
4
5. What are PWAs?
5
Progressive web apps use modern web APIs along with traditional progressive
enhancement strategy to create cross-platform web applications. These apps work
everywhere and provide several features that give them the same user experience
advantages as native apps.
Mozilla MDN
More information: https://developers.google.com/web/progressive-web-apps/
6. What is Progressive Enhancement?
6
Progressive enhancement is a development approach, not a technology choice. You
as the developer, decide on a base level of user experience for your site or application, and
more advanced functionality is added if a browser supports it.
Shopify blog
More information: https://www.smashingmagazine.com/2009/04/progressive-enhancement-what-it-is-and-how-to-use-it/
7. Progressive Web apps are...
7
Reliable - Load instantly and never show the downasaur, even in uncertain network
conditions.
8. Progressive Web apps are...
8
Fast - Respond quickly to user interactions with silky smooth animations and no janky
scrolling.
9. Progressive Web apps are...
9
Engaging - Feel like a natural app on the device, with an immersive user experience.
12. Service Worker
12
Asynchronous JavaScript that runs in a browser (on a different thread in opposite to your
web apps single-threaded JavaScript) that can react to some events (like fetch, push) and
works even when website (or browser) are closed.
More information: https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers
app.js
13. Service Worker - request proxy
13
Service Worker is a kind of proxy for you requests. You can modify them in your SW (e.g.
change the requested file name or serve it from cache instead of a server) before they are
proceeded to the server.
More information: https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers
service-worker.js
14. Why using a Service Worker requires https?
Browser is not aware of modified requests!
Website
Please give me
index.html file
Please give me
notindex.html file
Service Worker Server
notindex.htmlnotindex.html but
the website is not
aware of it
16. 16
In-browser database for storing JSON-like data. Best for caching dynamic data (JSON)
More information: https://developers.google.com/web/ilt/pwa/working-with-indexeddb
IndexedDB
17. IndexedDB
17
IndexedDB API is hard to work with but there are solutions that abstracts it to easier format:
Local Forage
iDB
...many others
18. Cache Storage
18
Object-request / Object-response browser database for caching network requests.
Best for caching static assets (HTML, CSS, JS)
More information: https://developer.mozilla.org/en-US/docs/Web/API/Cache
19. Caching resources
19
Static files:
- HTML
- CSS
- JS
- Fonts/Icons (bad idea)
Dynamic data
- JSONs from server
- Pending CUD operations
Cache Storage IndexedDB
20. Typical use case - serving app from cache when user is offline
20
21. Typical use case - serving app from cache when user is offline
21
22. Other use cases
22
- Serve static assets from cache for faster page
loads
- Use cache as a fallback for failed network
requests (or some of them)
24. What is Web App Manifest?
24
The web app manifest provides information about an application (such as name, author,
icon, and description) in a JSON text file. The purpose of the manifest is to install web
applications to the homescreen of a device, providing users with quicker access and a richer
experience.
Mozilla MDN
More information: https://developer.mozilla.org/en-US/docs/Web/Manifest
29. Push notifications
29
Works exactly like native OS push notifications and uses Push API.
You can use them to engage your users (e.g. discounts) or send them important informations (like delayed flights).
Push notifications can be sent from Service Worker so they don’t need opened website to deliver messages
instantly.
More information: https://developers.google.com/web/ilt/pwa/introduction-to-push-notifications
32. What is Background Sync
32
Background sync is a new web API that lets you defer actions until the user has stable
connectivity. This is useful for ensuring that whatever the user wants to send, is actually sent.
Google Developers
More information: https://developers.google.com/web/updates/2015/12/background-sync
33. What is Background Sync
33
Background sync allows you to provide real offline experience with all CRUD operations
available offline (Read with cache / Create, Update, Delete with Background sync).
You can also prefetch data periodically in the background so user don’t need to download it
when entering the website (see periodic sync)
For example: Like facebook/twitter post or place order on eCommerce shop while offline
36. 1. Cache your App Shell
36
Cache your App Shell (static assets) for instant loads and offline purposes. Use Cache Storage for this. Don’t forget to
make use of cached files in your Service Worker.
More information: https://developers.google.com/web/fundamentals/architecture/app-shell
37. 2. Cache dynamic data from database
37
Cache dynamic data from server (mostly JSONs) and serve it from Cache Storage when
user is offline (or choose different caching strategy).
Use IndexedDB for this but keep in mind that it’s size is limited.
At this point your App should work offline, congrats!
38. 3. Add Web App Manifest
38
Create Web App Manifest file (manifest.json) and allow users to pin your app to their
homescreens and use like a real Native App.
39. 4. Use background sync for pending requests
39
Allow your users to perform Create, Update and Delete operations while offline with
Background Sync.
40. Congrats!
40
Your app is a fully-featured PWA now!
- Works like a native app (Web App Manifest)
- Is accessible from users homescreen (Web App Manifest)
- Loads insanely fast even on slow internet connection (Cache Storage, IndexedDB, Service Worker)
- Shows cached content while user is offline (Service Worker)
- Allows user to perform some actions without internet access) (Background Sync)
42. Tools that can help you
42
Workbox
Workbox is a set of libraries and Node
modules that make it easy to cache
assets and take full advantage of
features used to build progressive web
app's.
See details
Google Lighthouse
Lighthouse is an open-source,
automated tool for improving the quality
of web pages. You can run it against
any web page, public or requiring
authentication. It has audits for
performance, accessibility, progressive
web apps, and more.
See details
43. More resources about PWA
43
- Google Developers
- Mozilla MDN
- ServiceWorker.rs (great cookbook!)
- PWA.buzz newsletter