「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Java と Spring Boot を使用して PWA を構築する方法: オフライン機能のベスト プラクティス?

Java と Spring Boot を使用して PWA を構築する方法: オフライン機能のベスト プラクティス?

2024 年 8 月 24 日に公開
ブラウズ:413

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

私は現在、労務管理プロジェクトに取り組んでいます。その重要な要件の 1 つは、ユーザーのデバイスが一時的にオフラインになっている場合でも、特定の機能 (退勤など) に確実にアクセスできるようにすることです。これはまれなケースですが、必要に応じて追加のオフライン機能を有効にすることで、アプリケーションの将来性を確保したいと考えています。

使用事例:

  • バックエンド: Spring Boot を使用した Java
  • フロントエンド: HTMX を使用した Thymeleaf (または潜在的に Vaadin Flow)
  • 主要な要件: POST リクエストをキャッシュし、オフライン時にキャッシュされたページに移動する機能。

私が検討しているテクノロジー:

  1. Thymeleaf と HTMX を使用した Spring Boot: 私の好みのスタック。私は TDD を使用して構築するのが好きで、この組み合わせは私の経験とよく一致します。私はすでに、service-worker.js を使用して POST リクエストをキャッシュし、再送信する小さなデモ プロジェクトを構築しました。今後オフライン機能を追加し続ける上でこれが最善の選択かどうかはわかりません。

  2. Vaadin Flow: Vaadin Flow は完全に Java でビジネス アプリケーションを構築することに重点を置いているため、興味をそそられています。ただし、ビューが動的に更新されるため、オフライン機能をサポートできるかどうかが心配です。私の理解では、これにより、オフラインで表示するためにページ全体をキャッシュすることは不可能になります。 Hilla のことは知っていますが、その場合はすべてのビューを Typescript で作成する必要があり、私の意見では、それは Vaadin を使用する目的を無効にしてしまいます。

  3. PWA Starter: PWA Starter について調べてみましたが、Angular や React などの言語でシングルページ アプリ (SPA) を作成することに重点を置いているようで、私の好みには合いませんでした。 Spring Boot エコシステム内に留まります。

  4. Quarkus または JHipster: Quarkus と JHipster も検討しましたが、JHipster は通常、フロントエンドに Angular または Vue を使用するようで、あまり興味がないようです。 Java のフルスタック アプローチに近いものを対象としています。 Quarkus はマイクロサービスに重点を置いているようですね?

質問:

  1. PWA 機能、特にオフライン機能を Java および Spring Boot アプリケーション内に統合するためのベスト プラクティスまたはフレームワーク/ツールは何ですか?たとえば、Service Worker を支援するツールがあるかもしれません?
  2. オフライン キャッシュで Vaadin Flow を効果的に使用する方法はありますか? それとも、Service Worker をより適切に制御するために Thymeleaf と HTMX を使い続ける必要がありますか?
  3. Spring Boot および Thymeleaf セットアップで Service Worker を実装するために推奨する特定のリソース、ライブラリ、またはパターンはありますか?

Java エコシステム内にとどまり、重要な新しいフロントエンド テクノロジの追加を避けたいという私の好みを考慮して、これにどのようにアプローチするかについてのアドバイスを探しています。私が考えていない質問がたくさんあると思います。洞察や推奨事項があれば大歓迎です!

試してみたことのレビュー

  • 独自の Service Worker を作成してデモを構築しました。それは問題ありませんでしたが、どこまでできるかわかりません。
  • Vaadin Flow を試してみましたが、オフライン機能には Typescript と Hilla が必要であることがわかりました。
  • FlutterFlow について検討し始めましたが、ユーザーのデバイスがオフラインになるというこのエッジケースに対応するために、大きな設計上の決定を行う必要があるようです。
リリースステートメント この記事は次の場所に転載されています: https://dev.to/livenathan/how-to-build-a-pwa-with-java-and-spring-boot-best-practices-for-offline-functionity-4l3k?1権利侵害、削除するには[email protected]までご連絡ください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3