Progressive web apps

El retorno de la web móvil con:
Victor Aguilar
@vicobits
victor@xiberty.com


Victor Aguilar C
victor@xiberty.com
Soy desarrollador fullstack y fundador de xiberty en donde construimos aplicaciones web, móviles (android e ios) y chatbots.

Experiencia: Google I/O
Los amigos

Experiencia: GDG Global Summit
Las comunidades
Experiencia: Google I/O
El evento
Experiencia: Google I/O
Las personalidades
Los dispositivos móviles

Muchos estamos así todo el tiempo

El éxito de la web y las apps
-
43% de la población en el mundo tiene acceso a internet. (ITU)
-
Para finales del 2015 se reportaron mas de 1859 millones de dispositivos móviles conectados a internet (statista.com)

Aprox. el 58% de la gente que se conecta
a internet lo hace desde su móvil



Número de usuarios de smartphone en el mundo

Elecciones sub-nacionales 2015 en Bolivia.




¿Cuantas veces nos conectamos a internet al día?


Las apps también han tenido éxito


Apps en las App Stores (Julio 2015)



El problema real de las apps
es ...
La adopción


Existen muchas apps para cada cosa

Aplicaciones zombi
Supongamos que queremos desarrollar una app

Airhorner: Una app corneta mas en el playstore

Airhorner
- Será un app que toque un corneta cuando le damos click en el botón
- Servirá para molestar a los amigos
- También para ir al stadium

Airhorner


un 20% de usuarios
Cada paso antes de poder usar una app hace que perdamos



Airhorner
Abrir la tienda de apps

Airhorner
Lo que el usuario tiene que hacer
Buscar la app en la tienda
Click en instalar
Aceptar los permisos (sumisos)
Esperar la desCarga
Usar y esperar que guste
1000
800
640
512
410
328
67% de llegada(dinero) perdidas





Airhorner
Abrir un enlace a la app

Airhorner
Optimizando los pasos
Click en instalar
Aceptar los permisos (sumisos)
Esperar la descarga
Usar y esperar que guste
1000
800
640
512
410
59% de llegada (dinero) perdidas


airhorner.com

airhorner.com
¿Que pasaría si nuestra app fuese web?
Abrir el URL de la APP
1000
100% de llegada





Apps
Sitios web
25 apps/mes
100+ sitios/mes
Uso de apps y visitas de sitios web por mes




Ventajas de una web app
- Baja fricción
- Alto indice de llegada
- El desarrollo es estandar

LA WEB MODERNA TIENE MUCHAS COSAS COOL
PUSH NOTIFICATIONS
SERVICE WORKERS
SOPORTE MULTIMEDIA
LOCAL STORAGE
WEB SOCKETS
WEB WORKERS
WEBAPP MANIFEST
RESPONSIVE DESIGN
INDEXED DB
MUCHISI.....MAS LIBRERIAS JS


Posibles desventajas de una web app
-
Se necesita conexión a internet
-
Baja performance con alto contenido
-
Abrir el navegador y escribir la URL es un paso mas mas que darle click al lanzador de una app
-
No todas las capacidades de las apps nativas están disponibles en la web
OFFLINE con Service Workers
Cache
Manifiesto web
Notificaciones push
y mas


AL USO DE TODAS ESAS COSAS COOL EN CONJUNTO
LE LLAMAMOS


PROGRESSIVE WEB APPS
Son solo sitios web con esteroides





Características de una "Progressive web app"
RESPONSIVE DESIGN
OFFLINE
SENTIRSE Y LUCIR COMO UNA APP
ACTUALIZADA
1. Aplica
2. Puede funcionar de forma
3. Debe
4. Siempre esta

Características de una "Progressive web app"
SEGURA
IDENTIFICABLE
ACOPLABLE
INSTALABLE
5. Debe usar HTTPS para ser
6. Debe ser
7.
8.
para agregar nuevas funcionalidades
como las apps nativas
LINKEABLE
9.
para que sea facil de encontrar en la red
SI, SE PUEDE HACER TODO ESO EN LA WEB
PROGRESSIVE
WEB APPS
- Responsive Design
- HTTPS
- Buena performance en animaciones
- Buena performance en renderizado
- LocalStorage, IndexedDB
- HTML5 AppCache
- Soporte offline
- Arranque Rapido
- Notificaciones Push
- Splash screen
- Agregar una app a la pantalla principal
- Sincronización en 2do. plano
INGREDIENTES CLAVE


Recursos clave de las "Progressive web apps"
WEB MANIFEST
SERVICE WORKERS
APP SHELL ARCHITECTURE
1.
2.
3.

WEB MANIFEST
Es un archivo JSON y es una especificación que aún esta en borrador en la W3C, sirve para declarar recursos de una página.
ICONOS
LANZADOR
ORIENTACIÓN DE LA PANTALLA
SPLASH SCREEN
https://www.w3.org/TR/appmanifest/
DESCRIPCIÓN
COLORES
ETC
{
"lang": "es",
"dir": "ltr",
"name": "Super web app",
"description": "IO Extended La Paz",
"short_name": "IO LP",
"icons": [
{
"src": "icon/low.png",
"sizes": "64x64"
}, {
"src": "icon/high.jpg",
"sizes": "128x128"
}
],
"scope": "/io/",
"start_url": "/io/index.html",
"display": "fullscreen",
"orientation": "landscape",
"theme_color": "aliceblue",
"background_color": "red"
}<link rel="manifest" href="/webmanifest.json">

IDIOMA
LANZADOR
CONTEXTO
COMO SE MOSTRARÁ
ORIENTACIÓN
Service Workers
Son scripts que son ejecutados por el navegador en un hilo independiente y pueden tener la capacidad de:
- Interceptar las peticiones a servidores.
- Controlar el cache
- Enviar notificaciones push
- Sincronizar datos
- Cualquier tarea en segundo plano



if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw.js', {
scope: '/app/'
}).then(function(reg) {
console.log('SW Cargado', reg);
}).catch(function(err) {
console.log('Error: ', err);
});
}Registrando un Service Worker sw.js

self.addEventListener('install', function(event) {
// Cache para la primera carga
event.waitUntil(
caches.open('static-v1').then(function(cache) {
return cache.addAll([
'/',
'/styles/all.css',
'/styles/imgs/bg.png',
'/scripts/all.js'
]);
})
)
});
// Interceptando todas las peticiones
self.addEventListener('fetch', function(event) {
event.respondWith(
caches.match(event.request).then(function(response) {
return response || fetch(event.request);
})
);
});Service Worker sw.js




Internet
Cache
ServiceWorker
Página
1
2
3
2.1
2.2
Service Workers
Peticiones y el cache con







App Shell Architecture
Una App Shell es la cantidad mínima de HTML, CSS y JS que tu web app necesitaría para cargar la primera pantalla.

App Shell Architecture

El esqueleto the la app se cachea desde el inicio
El contenido dínamico se agrega asyncronicamente
Recap.
Progressive web apps
Son aplicaciones web que utilizan las capacidades de la web moderna para verse y sentirse como una aplicación nativa, funcionan de forma offline, reciben push notification se sincronizan en segundo plano y lo mejor es que no necesitas instalarlas, tan solo abre la URL y ya!

Enlaces de interes
Esta presentación: slides.com/jvacx/pwa


Airhorner
airhorner.com
¿Se acuerdan de nuestra app?


victor@xiberty.com
El Retorno de la web móvil con Progressive Web Apps
By Victor Aguilar
El Retorno de la web móvil con Progressive Web Apps
El retorno de la web móvil con "progressive web apps"
- 594