"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo crear una PWA con Java y Spring Boot: mejores prácticas para la funcionalidad sin conexión?

¿Cómo crear una PWA con Java y Spring Boot: mejores prácticas para la funcionalidad sin conexión?

Publicado el 2024-08-24
Navegar:354

How to Build a PWA with Java and Spring Boot: Best Practices for Offline Functionality?

Actualmente estoy trabajando en un proyecto de gestión laboral donde uno de los requisitos clave es garantizar que ciertas funciones (como marcar la salida) sean accesibles incluso cuando el dispositivo del usuario esté temporalmente fuera de línea. Si bien este es un caso poco común, quiero preparar la aplicación para el futuro habilitando funciones adicionales fuera de línea según sea necesario.

Caso de uso:

  • Backend: Java con Spring Boot
  • Frontend: Thymeleaf con HTMX (o potencialmente Vaadin Flow)
  • Requisito clave: Capacidad de almacenar en caché las solicitudes POST y navegar a páginas almacenadas en caché sin conexión.

Tecnologías que estoy considerando:

  1. Spring Boot con Thymeleaf y HTMX: Mi pila preferida. Me gusta construir usando TDD y esta combinación se alinea bien con mi experiencia. Ya construí un pequeño proyecto de demostración usando service-worker.js para almacenar en caché y reenviar solicitudes POST. No estoy seguro de si esta es la mejor opción para seguir agregando funciones sin conexión en el futuro.

  2. Vaadin Flow: Vaadin Flow me intriga por su fuerte enfoque en la creación de aplicaciones empresariales completamente en Java. Sin embargo, me preocupa su capacidad para admitir la funcionalidad sin conexión, ya que actualiza las vistas dinámicamente. Por lo que tengo entendido, esto haría imposible almacenar en caché una página completa para verla sin conexión. Conozco Hilla, pero entonces necesitaría crear todas las vistas en Typecript y, en mi opinión, eso frustra el propósito de usar Vaadin.

  3. PWA Starter: Busqué PWA Starter, pero parece centrarse en la creación de aplicaciones de una sola página (SPA) en lenguajes como Angular o React, lo que no se ajusta a mis preferencias permanecer dentro del ecosistema Spring Boot.

  4. Quarkus o JHipster: También consideré Quarkus y JHipster, pero JHipster normalmente usa Angular o Vue para la interfaz, al parecer, lo cual no me interesa mucho. Estoy buscando para algo que se acerque más a un enfoque de pila completa de Java. ¿Parece que Quarkus se centra en microservicios?

Preguntas:

  1. ¿Cuáles son las mejores prácticas o marcos/herramientas para integrar capacidades de PWA, particularmente la funcionalidad fuera de línea, dentro de una aplicación Java y Spring Boot? ¿Quizás haya una herramienta que ayude con el trabajador de servicio, por ejemplo?
  2. ¿Existe alguna forma de utilizar Vaadin Flow de forma eficaz con el almacenamiento en caché sin conexión, o debería seguir con Thymeleaf y HTMX para tener un mejor control sobre el trabajador del servicio?
  3. ¿Existen recursos, bibliotecas o patrones específicos que recomiende para implementar trabajadores de servicios en una configuración Spring Boot y Thymeleaf?

Estoy buscando consejos sobre cómo abordar esto, considerando mi preferencia por permanecer dentro del ecosistema Java y evitar agregar nuevas tecnologías de front-end significativas. Estoy seguro de que hay muchas preguntas que no he considerado. ¡Cualquier idea o recomendación será muy apreciada!

Revisión de cosas que he probado.

  • Creé una demostración escribiendo mi propio trabajador de servicio. Estuvo bien, pero no estoy seguro de hasta dónde puedo llegar con eso.
  • Probé Vaadin Flow, pero luego me di cuenta de que cualquier funcionalidad fuera de línea requeriría Typecript y Hilla.
  • Empecé a buscar FlutterFlow, pero parece una gran decisión de diseño para este caso extremo en el que el dispositivo de un usuario está fuera de línea.
Declaración de liberación Este artículo se reproduce en: https://dev.to/livenathan/how-to-build-a-pwa-with-java-and-spring-boot-best-practices-for-offline-functionality-4l3k?1 Cualquiera infracción, comuníquese con [email protected] para eliminar
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3