Introducció a les PWA
Què és una PWA?
Una Aplicació Web Progressiva (PWA) és una aplicació web que utilitza capacitats modernes del web per oferir una experiència similar a una aplicació nativa. Les PWA combinen les millors característiques de les aplicacions web i les aplicacions mòbils natives.
Característiques Clau de les PWA
- Responsive: S'adapten a qualsevol mida de pantalla.
- Offline: Funcionen sense connexió a Internet gràcies a la memòria cau.
- Seguretat: S'executen sobre HTTPS per garantir la seguretat de les dades.
- Actualitzacions Automàtiques: Sempre estan actualitzades gràcies a la seva naturalesa web.
- Instal·lables: Es poden instal·lar a l'escriptori o al dispositiu mòbil com una aplicació nativa.
Configuració d'una PWA amb Ionic
Passos per Configurar una PWA
-
Crear un Nou Projecte Ionic
ionic start myPWAApp blank --type=angular cd myPWAApp
-
Afegir el Suport PWA Ionic proporciona un paquet que facilita la configuració d'una PWA.
ng add @angular/pwa --project app
-
Configurar el
manifest.json
El fitxermanifest.json
defineix com es comporta la PWA quan s'instal·la al dispositiu.{ "name": "My PWA App", "short_name": "PWA App", "start_url": "/", "display": "standalone", "background_color": "#ffffff", "theme_color": "#4A90E2", "icons": [ { "src": "assets/icons/icon-72x72.png", "sizes": "72x72", "type": "image/png" }, { "src": "assets/icons/icon-96x96.png", "sizes": "96x96", "type": "image/png" }, { "src": "assets/icons/icon-128x128.png", "sizes": "128x128", "type": "image/png" }, { "src": "assets/icons/icon-144x144.png", "sizes": "144x144", "type": "image/png" }, { "src": "assets/icons/icon-152x152.png", "sizes": "152x152", "type": "image/png" }, { "src": "assets/icons/icon-192x192.png", "sizes": "192x192", "type": "image/png" }, { "src": "assets/icons/icon-384x384.png", "sizes": "384x384", "type": "image/png" }, { "src": "assets/icons/icon-512x512.png", "sizes": "512x512", "type": "image/png" } ] }
-
Configurar el Service Worker El
ng add @angular/pwa
ja configura un service worker per a tu. Pots personalitzar-lo angsw-config.json
.
Exemple de ngsw-config.json
{ "index": "/index.html", "assetGroups": [ { "name": "app", "installMode": "prefetch", "resources": { "files": [ "/favicon.ico", "/index.html", "/*.css", "/*.js" ] } }, { "name": "assets", "installMode": "lazy", "updateMode": "prefetch", "resources": { "files": [ "/assets/**", "/*.(png|jpg|jpeg|gif|svg)" ] } } ] }
Executant i Provant la PWA
Executar en Mode de Desenvolupament
Obre el navegador i accedeix a http://localhost:8100
. Utilitza les eines de desenvolupador del navegador per simular diferents dispositius i condicions de xarxa.
Construir per a Producció
Els fitxers de producció es generaran a la carpeta www
.
Servir la PWA
Per servir la PWA, pots utilitzar qualsevol servidor web estàtic. Un exemple amb http-server
:
Accedeix a http://localhost:8080
per veure la teva PWA en acció.
Exercici Pràctic
Objectiu
Crear una PWA amb Ionic que mostri una llista d'elements i permeti afegir-ne de nous, tot funcionant offline.
Passos
-
Crear el Projecte
ionic start myOfflineApp blank --type=angular cd myOfflineApp ng add @angular/pwa --project app
-
Crear una Pàgina per a la Llista
ionic generate page list
-
Afegir Funcionalitat per Afegir Elements Modifica
list.page.html
:<ion-header> <ion-toolbar> <ion-title>My Offline List</ion-title> </ion-toolbar> </ion-header> <ion-content> <ion-list> <ion-item *ngFor="let item of items">{{ item }}</ion-item> </ion-list> <ion-item> <ion-input [(ngModel)]="newItem" placeholder="New Item"></ion-input> <ion-button (click)="addItem()">Add</ion-button> </ion-item> </ion-content>
Modifica
list.page.ts
:import { Component } from '@angular/core'; @Component({ selector: 'app-list', templateUrl: 'list.page.html', styleUrls: ['list.page.scss'], }) export class ListPage { items: string[] = []; newItem: string = ''; addItem() { if (this.newItem.trim().length > 0) { this.items.push(this.newItem); this.newItem = ''; } } }
-
Configurar el Service Worker per a Funcionalitat Offline Modifica
ngsw-config.json
per incloure la pàgina de la llista:{ "index": "/index.html", "assetGroups": [ { "name": "app", "installMode": "prefetch", "resources": { "files": [ "/favicon.ico", "/index.html", "/*.css", "/*.js" ] } }, { "name": "assets", "installMode": "lazy", "updateMode": "prefetch", "resources": { "files": [ "/assets/**", "/*.(png|jpg|jpeg|gif|svg)" ] } } ], "dataGroups": [ { "name": "api", "urls": [ "/list" ], "cacheConfig": { "strategy": "freshness", "maxSize": 100, "maxAge": "1d", "timeout": "10s" } } ] }
Provar la Funcionalitat Offline
-
Executa l'aplicació en mode de desenvolupament:
ionic serve
-
Obre les eines de desenvolupador del navegador i activa el mode offline.
-
Afegeix elements a la llista i comprova que es mantenen fins i tot sense connexió a Internet.
Conclusió
En aquesta secció, hem après què són les Aplicacions Web Progressives (PWA) i com podem configurar una PWA utilitzant Ionic. Hem vist com configurar el manifest.json
i el service worker
, així com com provar la funcionalitat offline. Finalment, hem realitzat un exercici pràctic per reforçar els conceptes apresos.
En el següent tema, explorarem com utilitzar Ionic amb altres frameworks com React i Vue.
Curs de Desenvolupament Ionic
Mòdul 1: Introducció a Ionic
- Què és Ionic?
- Configuració de l'Entorn de Desenvolupament
- Creant la Teva Primera App Ionic
- Entenent l'Estructura del Projecte
- Executant i Depurant la Teva App
Mòdul 2: Components Bàsics i Navegació
- Visió General dels Components Ionic
- Utilitzant Botons i Icones Ionic
- Creant i Utilitzant Pàgines
- Navegació i Enrutament
- Pestanyes i Menús Laterals
Mòdul 3: Estilització i Tematització
- Introducció a l'Estilització Ionic
- Utilitzant CSS i SCSS en Ionic
- Tematitzant la Teva App Ionic
- Disseny Responsiu en Ionic
- Personalitzant Components Ionic
Mòdul 4: Treballant amb Dades
- Introducció al Binding de Dades
- Utilitzant Serveis Angular
- Peticions HTTP i APIs
- Emmagatzemant Dades Localment
- Utilitzant Ionic Storage
Mòdul 5: Components i Funcionalitats Avançades
- Utilitzant Formularis Ionic
- Validació i Gestió d'Errors
- Utilitzant Plugins Ionic Native i Cordova
- Accedint a Funcionalitats del Dispositiu
- Notificacions Push
Mòdul 6: Proves i Desplegament
- Proves Unitàries en Ionic
- Proves de Cap a Cap
- Construint per a Producció
- Desplegant a les Botigues d'Aplicacions
- Integració i Lliurament Continu