"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como construir um PWA com Java e Spring Boot: práticas recomendadas para funcionalidade offline?

Como construir um PWA com Java e Spring Boot: práticas recomendadas para funcionalidade offline?

Publicado em 2024-08-24
Navegar:384

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

Atualmente estou trabalhando em um projeto de gerenciamento de mão de obra em que um dos principais requisitos é garantir que determinados recursos (como o ponto final) estejam acessíveis mesmo quando o dispositivo do usuário estiver temporariamente off-line. Embora este seja um caso raro, quero preparar o aplicativo para o futuro, habilitando funcionalidades off-line adicionais conforme necessário.

Caso de uso:

  • Back-end: Java com Spring Boot
  • Frontend: Thymeleaf com HTMX (ou potencialmente Vaadin Flow)
  • Requisito principal: Capacidade de armazenar solicitações POST em cache e navegar para páginas em cache quando estiver off-line.

Tecnologias que estou considerando:

  1. Spring Boot com Thymeleaf e HTMX: Minha pilha preferida. Gosto de construir usando TDD e essa combinação se alinha bem com minha experiência. Já construí um pequeno projeto de demonstração usando service-worker.js para armazenar em cache e reenviar solicitações POST. Não tenho certeza se esta é a melhor opção para continuar adicionando funcionalidades off-line no futuro.

  2. Vaadin Flow: Estou intrigado com o Vaadin Flow por seu forte foco na construção de aplicativos de negócios inteiramente em Java. No entanto, estou preocupado com sua capacidade de oferecer suporte à funcionalidade offline, uma vez que atualiza visualizações dinamicamente. Pelo que entendi, isso tornaria impossível armazenar em cache uma página inteira para visualização offline. Conheço Hilla, mas precisaria criar todas as visualizações no Typescript e isso anula o propósito de usar Vaadin, na minha opinião.

  3. PWA Starter: Pesquisei o PWA Starter, mas parece se concentrar na criação de aplicativos de página única (SPAs) em linguagens como Angular ou React, o que não se enquadra na minha preferência por permanecendo dentro do ecossistema Spring Boot.

  4. Quarkus ou JHipster: Também considerei Quarkus e JHipster, mas JHipster normalmente usa Angular ou Vue para o frontend, ao que parece, no qual não estou muito interessado. para algo que fique mais próximo de uma abordagem Java full-stack. Quarkus parece se concentrar em microsserviços?

Questões:

  1. Quais são as melhores práticas ou estruturas/ferramentas para integrar recursos PWA, especialmente funcionalidades offline, em um aplicativo Java e Spring Boot? Talvez exista uma ferramenta que ajude o prestador de serviço, por exemplo?
  2. Existe uma maneira de usar Vaadin Flow de maneira eficaz com cache offline ou devo usar Thymeleaf e HTMX para melhor controle sobre o service worker?
  3. Existem recursos, bibliotecas ou padrões específicos que você recomenda para implementar service workers em uma configuração Spring Boot e Thymeleaf?

Estou procurando conselhos sobre como abordar isso, considerando minha preferência em permanecer no ecossistema Java e evitar adicionar novas tecnologias front-end significativas. Tenho certeza de que há muitas questões que não considerei. Quaisquer informações ou recomendações serão muito apreciadas!

Revisão de coisas que tentei

  • Eu criei uma demonstração escrevendo meu próprio service worker. Foi bom, mas não tenho certeza até onde posso ir com isso.
  • Eu tentei Vaadin Flow, mas então percebi que qualquer funcionalidade offline exigiria Typescript e Hilla.
  • Comecei a analisar o FlutterFlow, mas parece uma grande decisão de design a ser tomada neste caso extremo de o dispositivo de um usuário estar off-line.
Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/livenathan/how-to-build-a-pwa-with-java-and-spring-boot-best-practices-for-offline-funcionality-4l3k?1 Qualquer violação, entre em contato com [email protected] para excluir
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3