4.7 sur 5
4.7

Applications Web progressives (PWA) – Le guide complet

Créez une application Web progressive (PWA) qui ressemble à une application iOS et Android, à l'aide de l'appareil photo de l'appareil, des notifications push et plus encore
Instructeur :
Mahefa Abel
English En savoir plus
Créez des applications Web qui ressemblent à des applications mobiles natives pour iOS et Android
Utilisez des techniciens de maintenance pour créer des applications Web qui fonctionnent sans connexion Internet (hors ligne d'abord)
Exploitez les fonctionnalités de l'appareil telles que la caméra et la géolocalisation dans vos applications Web
Utilisez les notifications Web push pour augmenter l'engagement des utilisateurs avec vos applications Web

Les

Applications Web progressives (PWA) sont la prochaine grande nouveauté du développement Web, car elles offrent des expériences similaires à celles d’une application mobile à vos utilisateurs sans qu’ils aient à installer une application depuis l’App Store/Play Store.

Vous créez toujours une application Web (HTML, CSS, JavaScript) mais ce cours vous apprendra comment ajouter des fonctionnalités telles que appareil photo accès, techniciens de maintenance pour l’assistance hors ligne, notifications push et plus encore. Cela combine le meilleur des deux mondes : Vous offrez des expériences rapides, engageantes et fiables tout en ayant la portée et l’accessibilité d’une page Web.

“Application Web Progressive” est simplement un terme résumant tout les fonctionnalités vous permettant de proposer des expériences de type mobile. Le sujet est très tendance et c’est aussi un sujet qui est là pour rester ! Non seulement il est fortement promu par Google (en fait beaucoup de discussions à Google I/O 2017, le développeur de Google conférence, étaient consacrés aux PWA), il est également rapidement adopté par de grandes entreprises comme Twitter ou le Washington Post.

Avoir les compétences pour construire et optimiser ce type d’applications Web est déjà une compétence importante et très demandée pour les développeurs Web modernes, une tendance qui ne fera que s’accélérer ! Par conséquent, apprendre à créer des PWA vous donnera un avantage concurrentiel !

En détail, ce cours couvrira tout ce dont vous avez besoin pour créer des PWA incroyables – menant à un score de 100 ( sur 100) dans l’outil d’audit PWA “Lighthouse” de Google :

  • explication de ce qu’est exactement une PWA  p>
  • Comment utiliser un manifeste d’application pour rendre votre application Web installable sur les écrans d’accueil des appareils
  • Utiliser les techniciens de maintenance offriront une assistance hors ligne en mettant en cache les ressources
  • Utilisation avancée des techniciens de maintenance et stratégies de mise en cache
  • Un rappel sur Promises et l’Fetch API car les deux concepts sont largement utilisés dans les PWA
  • Comment améliorer l’engagement des utilisateurs en ajoutant des notifications push
  • Un moyen de synchroniser les données en arrière-plan, même si la connexion est perdu
  • Comment accéder aux fonctionnalités natives de l’appareil comme la caméra ou la géolocalisation
  • Utiliser Workbox pour faciliter la gestion des techniciens de maintenance
  • Explications sur la façon de transformer votre prochain projet SPA  en PWA
  • Et plus

Toutes ces choses sont bien sûr mises en pratique en construisant un cours projet. Pour vous assurer que vous pouvez appliquer les connaissances à N’IMPORTE QUEL de vos projets, le projet de cours ne suppose aucun framework JavaScript mais se concentre sur les fonctionnalités de base mentionnées ci-dessus !

Ce cours a donc beaucoup de à offrir, comment savoir si c’est pour vous ?

C’est définitivement le bon choix si …

  • … vous êtes déjà développeur Web (que vous soyez expérimenté ou encore novice dans le domaine) et souhaitez préparer l’avenir
  • … vous aimez travailler avec HTML,  CSS et JavaScript et souhaitez tirer parti de toute la puissance des technologies Web et des navigateurs
  • … vous souhaitez offrir la meilleure expérience possible à vos utilisateurs, en utilisant des technologies telles que les notifications Web push  ou l’assistance hors ligne

Que devez-vous savoir pour tirer le meilleur parti du cours ?

  • Vous devez au moins connaître les bases de HTML, CSS et JavaScript
  • Pas de connaissances avancées Cependant, vous n’avez PAS besoin de connaître un framework JavaScript comme Angular ou React – les PWA fonctionnent avec N’IMPORTE QUELLE application JavaScript, même si vous n’utilisez pas de framework du tout (en fait, c’est ce que nous allons construire dans le cours !)

Je serais très heureux de vous accueillir à bord de ce cours et de commencer ce voyagez avec vous !

Max

Getting Started

1
About this Course
2
What are Progressive Web Apps?

Let's start with the most important question first: What are progressive web apps? This lecture takes a closer look!

3
Join our Online Learning Community
4
PWAs vs Native Mobile Apps

Why would you build a progressive web app if you can just build a native mobile app? There are many reasons, let's dive into the important ones in this lecture.

5
Node.js Download
6
A Demo PWA & What We'll Build in this Course

Time to see a progressive web app in action! In this lecture, we'll have a look at a real PWA and at the final course project.

7
Our First Progressive Web App

Now that we saw a finished progressive web app, let's build our own one. At least a very simple one!

8
PWA Core Building Blocks

You already learned quite a bit about progressive web apps but you also heard a lot of buzzwords. Let me summarize which core building blocks make up a progressive web app in this lecture.

9
Comparing PWAs and SPAs

Sometimes, PWAs and SPAs get mixed up. What is the difference? In this lecture, you'll learn how both concepts are related to each other - or how they are not.

10
What is "Progressive Enhancement"?

What does the "progressive" in "progressive web app" actually mean? Let's explore this question and have a look at "progressive enhancement" in this lecture.

11
Course Outline

We had a look at a lot of the core concepts of PWAs, now it's time to also dive into the question what this course has to offer to you. Let's explore the course outline.

12
Course Project Setup

In this course, we're going to learn and apply everything directly on a course project. For that, we of course need one, so let's set it up!

13
How to get the Most out of this Course

My #1 goal is to make sure that YOU get the most out of this course. Let me share some tipps & tricks about how that works out.

Understanding the App Manifest

1
Module Introduction

Let's get started with one of the core features: The App Manifest!

2
Using an App Manifest to Make your App Installable

Why is it interesting to use to have an installable app? What does that actually mean? Let's find out in this lecture.

3
Adding the Manifest

With the manifest set up, it's time to add it to our application and make sure it loads in our running app.

4
Understanding App Manifest Properties

Which properties may we actually configure in our web app manifest? This lecture takes a closer look.

5
Adding Properties to the App Manifest

Now that we know which properties we may use, let's use them! In this lecture, we'll explore how to configure our web app manifest.

6
PWAs and Browser Support

Which browser do support our web app manifest? That's of course an important question and one we'll dive into this lecture.

7
Using the Chrome Developer Tools

When working with PWAs, you definitely want to make your life easier. We'll do this with the help of the Chrome developer tools. Let's dive into them in this lecture.

8
Simulating the Web App on an Emulator

We're building an app which should behave great on mobile apps. We need a mobile device! Learn how to quickly set one up with the Android simulator in this lecture.

9
Preparing the Emulated Device for ALL PWA Features

We started a virtual device - this article explains all details about how to do that and dives into how you may prepare your virtual device for the rest of this course.

10
Installing the Web App - Prerequisites

The cool thing about the web app manifest is, that it allows us to install our application on a real device. Let's do that in this lecture!

11
Understanding manifest.json

Are you a manifest.json expert? Do you know how a good manifest.json file looks like? Check your knowledge!

12
Adding Properties for Safari

The web manifest isn't understood by all browsers. We can help Safari as this lecture shows.

13
Adding Properties for the Internet Explorer

Just as Safari needed some extra help, this lecture explains how you get your app to work correctly on Internet Explorer, too.

14
Wrap Up

Let me wrap this module up and summarize what we learned.

15
Useful Resources & Links

This lecture not only holds the source code of this module but also provides some useful links for you to dive deeper.

The Service Workers

1
Module Introduction

Let's enter the realm of service workers and learn how to use them!

2
Why Service Workers Are Amazing!

Why do we need service workers to begin with? This lecture takes a closer look.

3
Understanding Service Worker Events

Service Worker support various events - let's get an overview over the most important/ relevant ones.

4
The Service Worker Lifecycle

Service Workers follow a certain lifecycle when we register them on a page. Learn more about that cycle in this lecture.

5
Service Worker Browser Support

Obviously, you need to know which Browser even support service workers before using them. This lecture explores browser support.

6
Registering a Service Worker

You know the basics about service workers, but we haven't worked with any yet. Time to change that!

7
Reacting to Incoming Events (in SW)

Let's start using our service worker and register some events. This will also lead us to some important point we have to discuss.

8
Updating & Activating Service Workers

What does "fetch" actually mean/ do? Let's dive into it and understand more about this key event listener in this lecture.

9
Non-Lifecycle Events

Thus far, we had a look at the "install" and "activate" events. Let's now also dive into other events we can listen to - namely the "fetch" event.

10
The App Install Banner & Chrome 68+

Don't miss this lecture!

11
Getting that "App Install Banner"

Let's go back to that App Install Banner and see how we can get it to show up.

12
Connecting Chrome Developer Tools to a Real/ Emulated Device

Learn how to use chrome to remotely debug your Android devices.

13
Testing the App on Real Device (and Installing the App!)

Time to see that App Install Banner in Action - on a real device!

14
Deferring the App Install Banner

The best thing about the app install banner is that you can fully control when it's getting displayed. At least as long as the base requirements are met. Let's dive into that in this lecture.

15
Wrap Up

Let me wrap this module up and summarize what we learned thus far.

16
Service Worker FAQ

Service Workers are a vast topic - in this lecture, you'll find some FAQs about them.

17
Useful Resources & Links

This lecture not only holds the source code of this module but also provides some useful links for you to dive deeper.

Promise and Fetch

1
Module Introduction

Let me introduce you to this module and what you're going to learn in it!

2
Async Code in JavaScript

To understand Promises, you need to understand the problem they solve. Let's dive into that in this lecture.

3
Promises - Basics

Let's dive into the basics about Promises.

4
Rejecting Promises

Promises simply promise us a response. That can also be an error! Learn how to reject promises.

5
Where we Use Promises in our Project

We're already using Promises in our project! Let's have a look at some examples.

6
Fetch - Basics

Now that we had a look at Promises, let's dive into Fetch, another core API we'll use in this course.

7
Sending Post Requests via Fetch

We're not limited to using Fetch for getting data - we can also use it to send data via POST request, as strange as that might sound. Learn more in this lecture!

8
Fetch and CORS

Fetch also allows you to work with CORS responses. Learn more in this lecture.

9
Comparing Fetch and Ajax

Now that we had a closer look at Fetch, let's see how it compares to traditional Ajax requests.

10
Adding Polyfills (for Legacy Browser Support)

Older browser don't support Promises and Fetch. That's no issue though, we can use polyfills to fix that. So let's do that!

11
Fetch & Service Workers

Now that we know more about the Fetch API, let's come back how Fetch interacts with service workers.

12
Time to Practice - Promises & Fetch API
13
[OPTIONAL] Assignment Solution
14
Wrap Up

Let me summarize this module and wrap up what we learned.

15
Useful Resources & Links

This lecture not only holds the source code of this module but also provides some useful links for you to dive deeper.

Service Workers - Caching

1
Module Introduction

Let me introduce you to this module and to what you'll learn in it!

2
Why Caching?

Let's start with the basics: Why do we need Caching? Why would it be interesting to have our app run without an internet connection?

3
Understanding the Cache API

Now that we know why caching is interesting, let's dive into the Cache API in this lecture.

4
Browser Support

Caching is interesting but where (in which browsers) can we use it? This lecture explores your options.

5
Adjusting the Course Project

Let's dive into caching with service workers! For that, we need to adjust our course project. So let's do that now!

6
Identifying (Pre-)Cacheable Items

Of course, we want to cache the right items. How do we identify them? Let's dive into this question in this lecture.

7
Static Caching/ Precaching

Let's start with "static caching" or "precaching". What is that and how does it work? Well, let's dive into it!

8
Retrieving Items from the Cache

With items being stored in cache, we of course also want to retrieve them from there when the time comes. Let's explore how that works.

9
Adding & Retrieving Multiple Files (to/ from Cache)

Thus far, we only put one item onto the cache. Time to change that in this lecture!

10
Cache Multiple Files with addAll

Adding files to the cache one-by-one is pretty time-consuming. Let's accelerate that with addAll().

11
Dynamic Caching - The Basics

Thus far, we only cached files statically. That means during the installation of the service worker. Let's now move on and add items dynamically.

12
Implementing Dynamic Caching

With the basics about dynamic caching set, it's now time to use it!

13
Handling Errors

Let's now dive into how we may work with errors and let's fix some whilst we're at it.

14
Adding Cache Versioning

An important part of cache management is "Versioning". Why is it important and what exactly does it mean? Let's take a closer look!

15
Different Cache Versions & Cleanup

Since we added versioning to our cache, we'll have to deal with outdated versions, too. Learn how to deal with such versions in this lecture.

16
Optimizing Cache Management

Let's now optimize our cache management and learn which tools we may use for that.

17
Time to Practice: Service Workers & Caching
18
[OPTIONAL] Assignment Solution
19
Wrap Up

Let me summarize this module and wrap it up!

20
Useful Resources & Links

In this lecture, you'll find some useful links as well as the source code for this module.

Service Workers - Advanced Caching

1
Module Introduction

Let me introduce you to this module and to what we'll cover in it!

2
Module Preparation: Adding a Button

To dive into advanced caching, we'll actually start simple and add a button. No worries, it'll get more advanced, soon!

3
Offering "Cache on Demand"

Let's dive into our first strategy - "Cache on Demand". This allows the user of our page to specify when something should get cached.

4
Providing an Offline Fallback Page

Sometimes, you don't have the right files in the cache. That doesn't mean you can't show a nice page though. Learn how to provide a generic fallback page in this lecture.

5
Strategy: Cache with Network Fallback

After having a look at two interesting enhancements (Cache on Demand and Offline Fallback), it's time to dive into our first "real" caching strategy. Learn more about it in this lecture.

6
Strategy: Cache Only

We had a look at our first "real" strategy - time for the next one!

7
Strategy: Network Only

What's the opposite of "Cache only"? Correct! Network only. Let's learn how to implement that strategy.

8
Strategy: Network with Cache Fallback

Network only doesn't fit your needs? No problem at all, let's turn our heads towards "Network with Cache Fallback".

9
Strategy: Cache then Network

After having a look at "Network with Cache Fallback", let's dive into another popular strategy in this lecture.

10
Cache then Network & Dynamic Caching

We can actually "enhance" the "Cache then Network" strategy by adding dynamic caching. Learn how that works in this module.

11
Cache then Network with Offline Support

The "Cache then Network" strategy is pretty good, but right now, it doesn't really work if we're offline. Time to improve this.

12
Cache Strategies & "Routing"

Often times, we want to apply different strategies to different types of assets. A common requirement is to differentiate by URL. Learn how to do that, in this lecture.

13
Applying Cache Only

There is room for a "Cache only" strategy in our app! Learn how to combine it with "Routing" to enhance our app.

14
Time to Practice - Advanced Caching
15
[OPTIONAL] Assignment Solution
16
A Better Way Of Parsing Static Cache URLs

We can improve the way we parse our static cache URLs - let's explore how to do that in this lecture.

17
Making Route Matching More Precise

The current "cache only" route matching has a flaw - learn how to fix it here.

18
A Better Way Of Serving Fallback Files

Just as we improved our static-cache parsing, we can improve the way we serve fallback files. Learn how to do that, in this lecture.

19
Post Request and Cache API

Thus far, we only worked with GET requests. What about POST requests? Let's explore them, in this lecture.

20
Cleaning/ Trimming the Cache

Caching everything isn't an option - your cache will get too full. Learn how to manage its size, in this lecture.

21
Getting Rid of a Service Worker

Everything's working great thus far - but did you ever consider getting rid of a service worker? How would that work? Well, let's have a look.

22
Preparing the Project for the Next Steps

With a lot of caching strategies practiced and implemented, let's now prepare the project for the next steps.

23
Wrap Up

Let me wrap this module up and summarize what we learned thus far.

24
Useful Resources & Links

This lecture contains some useful resources and links for this module.

IndexedDB and Dynamic Data

1
Module Introduction

Let me introduce you to this module and to what you're going to learn in it.

2
Understanding the Basics

Let me explain the requirements for this module and what we need to change about our project.

3
Changed Firebase Console Layout
4
Setting Up Firebase

We need some dynamic data for this module and I don't want to use some dummy endpoint. So let's use Firebase to quickly set up our own, customizable backend.

5
Connecting Frontend to Backend

With the backend set up, let's use some dummy data there and connect our frontend (the PWA) to the backend (Firebase).

6
Dynamic Caching vs. Caching Dynamic Content

Hearing about "Dynamic Caching" and "Caching Dynamic Data" can be confusing. Time to clear up the confusion and explain what the difference actually is.

7
Introducing IndexedDB

As mentioned, we'll use IndexedDB in this module. Time to take a closer look at it!

8
IndexedDB Browser Support

Let turn our heads towards browser support and find out where we may use IndexedDB.

9
Adding the IDB File

We'll use IndexedDB in this section, but the default API is kind of clunky. Let's use a better package which allows us to utilize promises.

10
Storing Fetched Posts in IndexedDB

We added idb.js, let's now use it. What better way of using it than to start right away with caching incoming posts?

11
Using IndexedDB in the Service Worker

We already used IndexedDB, let me now show you how you may use it in the service worker and even share the relevant code between service worker and "normal" JS code.

12
Reading Data from IDB

With data being stored in IDB, it's now time to also fetch it. Otherwise, offline access will be hard.

13
Clearing IDB & Handling Server-Client Mismatch

What happens if data on our server changes and we got old data stored in our client? That's not too good, is it? Learn more about this and how to fix it, in this lecture.

14
Implementing the Clear Database Method

So we know that clearing our database will be important, let's now implement the logic to do just that.

15
Deleting Single Items from the Database

Of course, you don't always want to clear the entire database. Hence I'll dive into deleting single items in this lecture.

16
IndexedDB and Caching Strategies

With our IndexedDB solution implemented - how does it compare to caching via the Cache API? What about caching strategies? I'll explore that question in this lecture.

17
Wrap Up

Let me wrap this module up and summarize what we learned.

18
Useful Resources & Links

In this lecture, you'll find the section source code and some useful resources to dive deeper.

Creating a Responsive User Interface (UI)

1
Module Introduction

Let me introduce you to this module and to what you're going to learn in it.

2
Responsive Design in this Course

Responsive design is a vast topic. Actually, there are very long courses out there which will only focus on that. Hence I won't dive deeply into in this course as I explain in this lecture.

3
Understanding Responsive Design in our Project

We actually already have a responsive application. At least a lot of parts of it are responsive. Let's identify them in this lecture.

4
CSS and Media Queries

CSS Media Queries are a core tool in your toolbox when it comes to creating responsive web pages. Let's dive into the very basics about them in this lecture.

5
Want to see more of your Images?

The posts are deliberately not that high - of course we can change that though!

6
Using Images in a Responsive Way

We can also optimize the way we use images. We don't need to load the big high-resolution ones on small devices in the end, do we?

7
Adding Animations

Animations are not really related to responsive design but still a crucial part of PWAs. We want our app to really look and behave nicely, don't we?

8
The Viewport & Scaling

Let me also briefly dive into the viewport meta-tag and how to handle it correctly.

9
Wrap Up

Let me wrap this module up and summarize what we learned.

10
Useful Resources & Links

Attached to this lecture, you'll find the module code, inside the lecture, you'll find some helpful resources.

Background Sync

1
Module Introduction

Let me introduce you to this module and to what we're going to cover in it.

2
How does Background Sync Work?

Let's dive into the basics about Background Sync and understand how it works behind the scenes.

3
Adding the Basic Setup to our Project

Before we can start using Background Sync, we need to prepare our project. Let's do so now.

4
Registering a Synchronization Task

We got the app prepared, now it's time to let the service worker know about the data it should synchronize.

5
Storing our Post in IndexedDB

In order to sync our data, we also need to store it. Learn how to do that, in this lecture.

6
Adding a Fallback

As always in our app, we have to make sure that we also have a fallback so that it also works on older browsers.

7
Syncing Data in the Service Worker

With the data stored and the sync request sent to the service worker, let's now finally add the code to successfully write queued-up data to the backend.

8
Understanding Periodic Sync

Thus far, we had a look at one-time sync, which is useful for sending data at a later point of time. There's also another feature coming up - periodic sync. Learn more about it, in this lecture.

9
MUST READ: Firebase Cloud Functions & Billing
10
Adding Server Side Code

The app is taking shape but we need more control over the backend now. Let's dive into a bit more Firebase here and add our own server-side code.

11
Fixing Errors

Unfortunately, there's an error in our Firebase backend - let's fix it in this lecture!

12
Wrap Up

Let me wrap up and summarize what we covered in this module.

13
Useful Resources & Links

Attached, you find the module source code, in the lecture, you'll find some useful links to learn more.

Web Push Notifications

1
Module Introduction

Let me introduce you to this module and to what we're going to cover here!

2
Why we need Web Push Notifications

Before we learn HOW to use Notifications, let's learn WHY we might be interested in doing so.

3
How Push & Notifications Work

Let's understand how Push and Notifications (these are different things!) work. More about that, in this lecture.

4
Displaying Notifications - Some Theory First

Let's dive into Notifications and let me clarify how it works.

5
Browser Support

As always, we of course want to find out how browser support for this feature looks like. We'll do that, in this lecture.

6
Requesting Permissions

If we want to display Notifications (and send Push Messages), we need to fetch the permissions to do so first. This lecture shows how that works.

7
Displaying Notifications

With the permissions requested (and hopefully granted), we can now have a look at how we actually display Notifications.

8
Notifications from Within the Service Worker

We sent a Notification directly from our JavaScript code, in this lecture we'll have a look at how that works when using a Service Worker instead.

9
Understanding Notifications' Options

Displaying simple notifications is already great but of course not all we can do. You can actually customize a lot about these notifications. Let's learn more in this lecture.

10
Advanced Options

Now that we already had a look at notification options, let's dig deeper and see what else we can configure about these notifications.

11
Adding Actions to Notifications

One important option is missing until now: The option to show actions on our notification. Let's implement this feature, too.

12
Reacting to Notification Interaction - Clicks

Since we can display a notification (maybe even with actions), wouldn't it be great if we could also listen to user interactions with it? We can as this lecture shows!

13
Reacting to Notification Interaction - Closing

We're not limited to listening to clicks on the notification or an action, we can also react to the user dismissing it. Learn how that works in this lecture.

14
From Notifications to Push Messages

Notifications are NOT push messages, that's important! Let me explain the difference and explain how to get started with push messages in this lecture.

15
Creating a Push Subscription

Now that we learned what Push Messages are, let's set up our first push subscription so that we have a possibility of sending messages to the client.

16
Storing Subscriptions

With a new subscription created, we can now also store it on a server. Actually, we should do that. Learn more about it in this lecture.

17
Connecting Server & Client (PWA)

We're making good progress! The next step is to take our created subscription and store it on the server. Learn how to establish the connection in this lecture.

18
Sending Push Messages from the Server

Everything's set up now! Let's now dive into sending push messages from a server!

19
Listening to Push Messages

Now that we're sending push messages from the server, we have to work on the client again to ensure that we're listening to these incoming messages.

20
Displaying Push Notifications on a Real Device

We're sending push messages and listening to that - let's now explore how the whole process works and looks like on a real device.

21
Opening a Page upon User Interaction

Now that we display a notification, we also want to control what happens when the user clicks/ touches it. We can easily do that as this lecture shows.

22
Improving our Code

Not much left to do, let's just improve our code a little bit and then move on.

23
Wrap Up

Let me wrap this module up and summarize what we learned thus far.

24
Useful Resources & Links

Attached to this lecture, you'll find the section code, in the lecture, you'll find some useful links.

Native Device Features

1
Module Introduction

Let me introduce you to this module and explain what we'll cover throughout it.

2
Preparing the Project

In order to use the native device features of this section, we need to prepare our project code. Only a couple of adjustments are required, let's quickly do them.


3
Getting DOM Access

In order to display a live-picture of the camera, we need to secure DOM access. Let's set this up in this lecture.

4
Creating our own Polyfills

The camera feature is available in a lot of browser, but some implement it differently. Let's create a custom polyfill to be able to use it in as many browser as possible.

5
Getting the Video Image

With camera access now available in many browsers. let's get that video image and output it in our page.

6
Hooking Up the Capture Button

With the video stream running, the next goal is to take that picture. For that, let's listen to the capture button and act accordingly.

7
Storing the Image on a Server

Taking a picture of course is nice but only worth something if we can also store the image on some server. Let's implement the code to do so.

8
Accepting File Upload Example with Firebase

Sending an image via Http is only one half - we also need to accept incoming images on our backend. Time to adjust the code there!

9
MUST READ: Required Changes to Cloud Function Code

Due to some breaking changes to Firebase Cloud Functions, we need to adjust our function code to again work correctly.

10
Testing the Camera & Upload

Time to test our image-taking feature and post our pictures to our backend service. Let's fix any error we may encounter.

11
Implementing a Fallback

What if we have a device without a camera? Or permission to access the camera was denied? We need a fallback! So let's implement one in this lecture.

12
Getting the User Position

Of course, we also want to get that user position - learn how to use Geolocation to do just that.

13
Fixing Bugs

Unfortunately, our app has some tiny bugs - time to fix them in this lecture to make sure that everything works as it should.

14
Testing the App on a Real Device

We did it! We added a lot of new features, so let's now take a real device to test everything and see how it works!

15
Wrap Up

Let me wrap this module up and summarize what we learned thus far.

16
Useful Resources & Links

Attached to this lecture, you'll find the module source code. In the lecture, you'll find some helpful resources.

Service Worker Management with Workbox

1
Module Introduction

Let me introduce you to this module and explain what we're going to cover in it.

2
Understanding the Basics

What's the idea behind a tool like Workbox, which problem does it try to solve? I'll answer this question in this lecture.

3
The Workbox Version Used In This Course

Please read this article to find out which version you want to use and which adjustments are required.

4
Installing Workbox & Using It

In order to use Workbox, we need to install it first. Let's do that in this lecture.

5
Configuring Workbox Precaching

Workbox does precaching for us, but it's setup might not fulfil all our requirements. Let's configure it to our needs in this lecture then.

6
Customizing the Service Worker

We have a service worker which gets generated by Workbox. That's nice but can also be an issue: What if we want to customize Workbox's solution? We can do that - learn more about it in this lecture.

7
Implementing Routing with the Workbox Router

Dynamic caching can be challenging, especially if you want to use different strategies and caches for different URLs/ assets. It's easy with Workbox though! Let's take a closer look.

8
Expanding Dynamic Caching

Let's add more dynamic caching routes to the Workbox setup, to ensure that we really cache everything we want to cache.

9
Options and Setting Up Strategies

The cool thing about Workbox and its strategies is that you can configure a lot about it. Let's dive into how that works.

10
Custom Handlers (Example: For IndexedDB)

There's no IndexedDB strategy integrated into Workbox - we can only work with the Cache API. How do we then use our code for caching/ fetching posts? Learn how to create your own handlers, in this module.

11
Providing an Offline HTML Fallback

What if we want to load some resource that just isn't cached? We can use a fallback page for that as you learned. In this module, you'll now learn how to implement one with Workbox.

12
Handling Background Synchronisation and Push Notifications

Thus far, we still don't have background sync and push notifications integrated into the Workbox service worker. Time to change that, in this lecture.

13
Understanding the Workbox Documentation

Workbox offers more features than are covered in this course. Unfortunately, the docs can be confusing - let's explore them in this lecture.

14
Enhancing the Build Workflow

We can do more than just use Workbox to optimize/ improve our project. Let's dive into another important enhancement in this lecture.

15
Running our App on a Real Server

We're nearing the end! Let's now test our application on a real web server.

16
Auditing our Webpage with Lighthouse

We added many features, we optimized our service workers and we truly built a progressive web app. At least, that's what we think. Let's audit our app with Google's Lighthouse.

17
Wrap Up

Let me wrap this module up and summarize what we learned throughout it.

18
Useful Resources & Links

Attached to this lecture, you'll find the module source code. In the lecture, you'll find some helpful resources.

SPAs and PWAs

1
Module Introduction

Let me introduce you to this lecture and to what you're going to learn in it.

2
React with create-react-app

React is probably the most popular framework for SPAs - learn how to turn your React app into a PWA (when using create-react-app).

3
A General Note about SPAs and PWAs

Here's one general note about SPAs and PWAs that's super important to understand!

4
Angular with the CLI

Of course you might want to turn your Angular app into a PWA. Learn how that would work in this lecture.

5
Vue with Vue CLI

Last but not least: Vue.js. It's extremely popular and turning a Vue app into a PWA is easy as this lecture shows!

6
Wrap Up

Let me wrap this module up and summarize what we learned.

7
Useful Resources & Links

Attached to this lecture, you'll find the module source code. In the lecture, you'll find some helpful resources.

Course Roundup

1
Course Roundup

Amazing job, you made it through the course and learned a lot about progressive web apps! Let me summarize this course and outline some possible next steps.

2
Bonus: More Content!
Vous pouvez afficher et revoir les supports de cours indu00e9finiment, comme une chau00eene u00e0 la demande.
Absolumentu00a0! Si vous disposez d'une connexion Internet, les cours sur WeCours sont disponibles u00e0 tout moment sur n'importe quel appareil. Si vous n'avez pas de connexion Internet, certains instructeurs permettent u00e9galement u00e0 leurs u00e9tudiants de tu00e9lu00e9charger les cours. instructeur cependant, alors assurez-vous d'u00eatre de leur bon cu00f4tu00e9u00a0!
4.7
4.7 sur 5
Notes9235

Détails des Notes

Étoiles 5
5904
Étoiles 4
2312
Étoiles 3
377
Étoiles 2
68
Étoiles 1
23
Suivre un cours
Garantie de remboursement de 30 jours

Inclut

16 heures de vidéo à la demande
Accès complet à vie
Accès sur le mobile et la télévision
Certificat d'achèvement

Archive

Working hours

Monday 9:30 am - 6.00 pm
Tuesday 9:30 am - 6.00 pm
Wednesday 9:30 am - 6.00 pm
Thursday 9:30 am - 6.00 pm
Friday 9:30 am - 5.00 pm
Saturday Closed
Sunday Closed