Si las progressive web apps buscan ofrecer la experiencia de una app nativa, ¿por qué no mejor hacemos apps nativas? Primero, este concepto no se trata de desarrollar apps con tecnologías web por ser o no más simples, la web tiene beneficios que las apps nativas no, de modo que si logras combinar los beneficios de un sitio web, con la experiencia de una app nativa, terminas creando algo mucho mucho mejor.
Los sitios web, a diferencia de las apps nativas, son linkeables, es decir, comparto una dirección web contigo y puedes inmediatamente acceder a mi app, sin importar en qué sistema operativo estés, sin tener que instalar nada, y normalmente, sin importar qué programa uses para acceder al link compartido.
Además, las páginas son indexables, esto quiere decir que pueden ser leídas por un programa de manera sencilla, recuerda que a final de cuentas una página es un documento con texto legible e interpretable, separado y organizado por etiquetas, esto contrasta con las apps nativas que se ejecutan como código que normalmente está diseñado para una máquina virtual, que no tiene sentido para el ojo humano o los programas que indexan información. Eventualmente esto se traduce en que servicios como Google, Bing o Yahoo nos permiten buscar sitios de entre el mar de información, luego de haberlos leído.
Por otro lado, una de las barreras más complicadas de superar al construir una app nativa, es la instalación por parte de los usuarios de tu app, seamos honestos ¿cuántos usuarios están dispuestos a probar 3 o 5 apps al mes? Muy muy pocos, de verdad son la minoría. Los usuarios tradicionales tienen un conjunto de apps definidas, que únicamente se modifica cuando se responde a una necesidad muy puntual, es de verdad complicado lograr que un usuario instale una app, por otro lado, el compromiso de visitar un sitio web es muchísimo menor, solo abres el link, no hay descargas, no hay notificaciones push, no hay permisos, etc. Por eso las aplicaciones web progresivas producen mejores estadísticas en registros, uso, visitas y más, porque a diferencia de las apps nativas donde desde el inicio, sin haber probado antes la app, tienes que comprometerte a instalarla, las progressive web apps comprometen al usuario progresivamente, primero una simple visita, luego notificaciones push, luego agregar a la pantalla de inicio, etc. De ahí su nombre.
Ahora, las progressive web apps no tienen un pleito con las apps nativas, Uber se usa principalmente en apps nativas y, además, tienen una pwa en m.uber.com, Starbucks igual, tiene sus apps naticas y su sitio web progresivo, lo mismo podemos decir de Twitter, Instagram, Alibaba y bueno, un sin fin de ejemplos. No sería problema que en tu empresa decidan que además de producir apps para iOS y Android, decidan hacer una aplicación web progresiva.
Ahora, que si no tienen apps nativas, personalmente recomendaría iniciar con una progressive web app y luego, evaluar si es necesario crear apps nativas.
Continuemos.
-
Módulo 1 | 8 clases
Introducción
expand_more-
play_circle_outline
Clase 1
Presentación del curso PWA
-
play_circle_outline
Clase 2
Qué es una aplicación web progresiva.
-
play_arrow
Clase 3
Por qué desarrollar aplicaciones web progresivas
-
play_circle_outline
Clase 4
Qué cubriremos en este curso
-
play_circle_outline
Clase 5
Requisitos para tomar este curso
-
play_circle_outline
Clase 6
Stack del proyecto
-
play_circle_outline
Clase 7
Angular Universal
-
play_circle_outline
Clase 8
Configurar Angular con Firebase
-
-
Módulo 2 | 10 clases
Autenticación de usuarios
expand_more-
play_circle_outline
Clase 1
Configurar el router de Angular
-
play_circle_outline
Clase 2
Insertar nuevo componente
-
play_circle_outline
Clase 3
Autenticación con Firebase y Google
-
play_circle_outline
Clase 4
Obtener usuario autenticado
-
play_circle_outline
Clase 5
Guards de rutas
-
play_circle_outline
Clase 6
Navegación y estilos
-
play_circle_outline
Clase 7
Integrar FontAwesome
-
play_circle_outline
Clase 8
Cerrar sesión
-
play_circle_outline
Clase 9
Async Pipe
-
play_circle_outline
Clase 10
Guardar usuarios en la base de datos
-
-
Módulo 3 | 11 clases
Core central de la aplicación
expand_more-
play_circle_outline
Clase 1
Formulario para listas
-
play_circle_outline
Clase 2
NgModel doble data binding
-
play_circle_outline
Clase 3
Guardar listas en Firestore
-
play_circle_outline
Clase 4
Consultar y mostrar listas
-
play_circle_outline
Clase 5
Diseño de listas
-
play_circle_outline
Clase 6
Vista principal de una lista
-
play_circle_outline
Clase 7
Formulario de pendientes
-
play_circle_outline
Clase 8
Enums y NgModel
-
play_circle_outline
Clase 9
Guardar pendientes por lista
-
play_circle_outline
Clase 10
Mostrar los pendientes de una lista
-
play_circle_outline
Clase 11
Diseño de la tarjeta de pendientes
-
-
Módulo 4 | 13 clases
Animaciones y Más
expand_more-
play_circle_outline
Clase 1
Configuar @angular/animations
-
play_circle_outline
Clase 2
Mostrar/ocultar formulario usando animaciones
-
play_circle_outline
Clase 3
Animaciones de entrada y salida de componentes
-
play_circle_outline
Clase 4
Animaciones en coreografía
-
play_circle_outline
Clase 5
Eventos touch con HammerJS
-
play_circle_outline
Clase 6
Animar elementos al presionarlos
-
play_circle_outline
Clase 7
Evento swipe y animaciones
-
play_circle_outline
Clase 8
Actualizar pendiente en Firestore
-
play_circle_outline
Clase 9
Where en las consultas a Firestore
-
play_circle_outline
Clase 10
TrackBy para identificar elementos en ngFor
-
play_circle_outline
Clase 11
Compartir suscripciones con share
-
play_circle_outline
Clase 12
DateTime Picker
-
play_circle_outline
Clase 13
MomentJS
-
-
Módulo 5 | 19 clases
Tecnologías de aplicaciones web progresivas
expand_more-
play_circle_outline
Clase 1
Qué es una ServiceWorker
-
play_circle_outline
Clase 2
El ciclo de vida de una SW
-
play_circle_outline
Clase 3
Registrar una ServiceWorker
-
play_circle_outline
Clase 4
Eventos de una ServiceWorker
-
play_circle_outline
Clase 5
Programar una ServiceWorker
-
play_circle_outline
Clase 6
Angular ServiceWorkers
-
play_circle_outline
Clase 7
WebManifest
-
play_circle_outline
Clase 8
Fundamentos de notificaciones push con Firebase Cloud Messaging
-
play_circle_outline
Clase 9
Directiva ngIf y Else
-
play_circle_outline
Clase 10
Solicitar permisos para recibir notificaciones push
-
play_circle_outline
Clase 11
Registrar ServiceWorker para Firebase Messaging
-
play_circle_outline
Clase 12
Obtener suscripción de notificaciones de la ServiceWorker
-
play_circle_outline
Clase 13
Cancelar suscripción de notificaciones push
-
play_circle_outline
Clase 14
Detalles de UI para notificaciones
-
play_circle_outline
Clase 15
Enviar notificaciones push
-
play_circle_outline
Clase 16
Recibir notificaciones push con la app activa
-
play_circle_outline
Clase 17
Guardar tokens en Firestore
-
play_circle_outline
Clase 18
Actualizar el token
-
play_circle_outline
Clase 19
Almacenamiento de datos offline
-
-
Módulo 6 | 5 clases
Deploy y Despedida
expand_more-
play_circle_outline
Clase 1
Generando build de producción
-
play_circle_outline
Clase 2
Deploy dela aplicación
-
play_circle_outline
Clase 3
Probar proyecto en dispositivos móviles
-
play_circle_outline
Clase 4
Qué cursos tomar luego del desarrollo de Aplicaciones Web Progresivas
-
play_circle_outline
Clase 5
Despedida del curso
-