Liking cljdoc? Tell your friends :D

Progressive Web Apps (PWA)

Weave includes built-in support for Progressive Web Apps (PWAs), allowing your applications to be installed on devices and provide a more app-like experience.

PWA Support in Weave

Weave automatically generates and serves the necessary resources for PWAs:

  1. Web App Manifest: A JSON file that tells the browser about your application
  2. Icons: Various sized icons for different devices and contexts

Note: Currently, Weave does not automatically generate a service worker, which is required for full PWA functionality like offline support. If you need offline capabilities, you'll need to implement a custom service worker and register it in your application.

Configuration

To enable PWA features in your Weave application, provide an :icon path and optional :pwa configuration when starting your application:

(weave/run view-fn 
  {:title "My PWA App"
   :icon "public/my-icon.png"  ;; Path to an icon in your classpath
   :pwa {:name "My PWA App"
         :short-name "MyApp"
         :description "A description of my application"
         :display "standalone"
         :background-color "#f2f2f2"
         :theme-color "#4a86e8"
         :start-url "/"}})

Icon Requirements

The icon you provide should be:

  • A PNG image
  • High resolution (at least 512x512 pixels recommended)
  • Located in your classpath (typically in resources directory)

Weave will automatically resize your icon to create:

  • /favicon.png (32x32) - For browser tabs
  • /icon-180.png (180x180) - For iOS home screens
  • /icon-192.png (192x192) - For Android home screens
  • /icon-512.png (512x512) - For high-resolution displays

Web App Manifest Options

The :pwa configuration map supports these options:

OptionDescriptionDefault
:nameFull application nameValue of :title option
:short-nameShort name for app iconsSame as :name
:descriptionApp descriptionNone
:displayDisplay mode"standalone"
:background-colorBackground color during loading"#f2f2f2"
:theme-colorTheme color for browser UI"#ffffff"
:start-urlURL to load when app launches"/"

Testing Your PWA

Modern browsers provide tools to test PWA functionality:

  1. In Chrome, open DevTools and go to the "Application" tab
  2. Check the "Manifest" section to verify your web app manifest
  3. Use Lighthouse (in the "Audits" tab) to test PWA compliance

Installation Experience

When users visit your Weave application in a supported browser:

  1. After some engagement, the browser may show an "Add to Home Screen" prompt
  2. Users can also manually install the app through the browser menu
  3. Once installed, the app will appear on the device's home screen or app launcher
  4. When launched, it will open in a standalone window without browser UI

Can you improve this documentation?Edit on GitHub

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close