Skip to content

Instantly share code, notes, and snippets.

@kenwebb
Last active September 4, 2025 17:15
Show Gist options
  • Save kenwebb/99e975b0be0219ce2500a54016112b77 to your computer and use it in GitHub Desktop.
Save kenwebb/99e975b0be0219ce2500a54016112b77 to your computer and use it in GitHub Desktop.
Progressive Web Application (PWA) - 2025
<?xml version="1.0" encoding="UTF-8"?>
<!--Xholon Workbook http://www.primordion.com/Xholon/gwt/ MIT License, Copyright (C) Ken Webb, Thu Sep 04 2025 13:14:38 GMT-0400 (Eastern Daylight Time)-->
<XholonWorkbook>
<Notes><![CDATA[
Xholon
------
Title: Progressive Web Application (PWA) - 2025
Description:
Url: http://www.primordion.com/Xholon/gwt/
InternalName: 99e975b0be0219ce2500a54016112b77
Keywords:
My Notes
--------
2025 Sept 4
This workbook is a fresh look at progressive web applications (PWA) as of September 2025.
## References
(1) search: web app pwa
(2) https://learn.microsoft.com/en-us/microsoft-edge/progressive-web-apps/
(3) https://github.com/MicrosoftEdge/Demos
(4) https://github.com/MicrosoftEdge/Demos/tree/main/pwa-getting-started
Temperature converter - PWA getting started demo app
(5) https://microsoftedge.github.io/Demos/pwa-getting-started/
sample web app, ready to be installed and run
(6) https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Guides/What_is_a_progressive_web_app
(7) https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps/Tutorials/CycleTracker
(8) https://web.dev/learn/pwa/getting-started
(9) https://en.wikipedia.org/wiki/Progressive_web_app
(10) https://www.w3.org/groups/wg/webapps/publications/
(11) search: web app pwa react
(12) search: web app pwa react native
]]></Notes>
<_-.XholonClass>
<!-- domain objects -->
<PhysicalSystem/>
<Block/>
<Brick/>
<!-- quantities -->
<Height superClass="Quantity"/>
</_-.XholonClass>
<xholonClassDetails>
<Block>
<port name="height" connector="Height"/>
</Block>
</xholonClassDetails>
<PhysicalSystem>
<Block>
<Height>0.1 m</Height>
</Block>
<Brick multiplicity="2"/>
</PhysicalSystem>
<Blockbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[
var a = 123;
var b = 456;
var c = a * b;
if (console) {
console.log(c);
}
//# sourceURL=Blockbehavior.js
]]></Blockbehavior>
<Heightbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[
var myHeight, testing;
var beh = {
postConfigure: function() {
testing = Math.floor(Math.random() * 10);
myHeight = this.cnode.parent();
},
act: function() {
myHeight.println(this.toString());
},
toString: function() {
return "testing:" + testing;
}
}
//# sourceURL=Heightbehavior.js
]]></Heightbehavior>
<Brickbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[
$wnd.xh.Brickbehavior = function Brickbehavior() {}
$wnd.xh.Brickbehavior.prototype.postConfigure = function() {
this.brick = this.cnode.parent();
this.iam = " red brick";
};
$wnd.xh.Brickbehavior.prototype.act = function() {
this.brick.println("I am a" + this.iam);
};
//# sourceURL=Brickbehavior.js
]]></Brickbehavior>
<Brickbehavior implName="org.primordion.xholon.base.Behavior_gwtjs"><![CDATA[
console.log("I'm another brick behavior");
]]></Brickbehavior>
<SvgClient><Attribute_String roleName="svgUri"><![CDATA[data:image/svg+xml,
<svg width="100" height="50" xmlns="http://www.w3.org/2000/svg">
<g>
<title>Block</title>
<rect id="PhysicalSystem/Block" fill="#98FB98" height="50" width="50" x="25" y="0"/>
<g>
<title>Height</title>
<rect id="PhysicalSystem/Block/Height" fill="#6AB06A" height="50" width="10" x="80" y="0"/>
</g>
</g>
</svg>
]]></Attribute_String><Attribute_String roleName="setup">${MODELNAME_DEFAULT},${SVGURI_DEFAULT}</Attribute_String></SvgClient>
</XholonWorkbook>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment