One of the main reasons I am interested in Quartex Pascal is an Application that has access to local data on whatever the OS is. Due to contracts with Publishers we need to pursue local data instead data on a server. Would there be a simple way to cover Windows, Mac, iOS, Android, Linux or does one need to account for data storage on each system?
We have a Bible software system on Windows 32bit Delphi 12.3 but really need to move into other platforms. If we can minimize the necessary changes that will help us greatly plus changing contracts is harder than coding...
Web tech is by definition client-server based, however there are runtime models that deals exclusively with running a web app as a "real app".
Electron and Phonegap are post-processors that takes your html/js/css etc and bundles that as a real application. This removes the typical limitations for storing local data.
You can also do things even simpler, by just creating a shortcut that starts your html file in Chrome in kiosk mode. This too removes the typical limitations such as file-access. But direct file-access from the DOM is very annoying, with multiple nested callback mechanisms, so I would probably opt for something slightly more compartmentalized.
Personally i would have implemented a node.js "server" that you fire up when the user starts your "program", who in turn contains a html server - and then open a browser and point it to localhost on whatever port you decide to use. The experience for the user wont be much different than running a program. A simple bat script for windows, or bash script for linux.
This solution would be more scalable, as you can choose to put the server online if you want to, or run it locally.
A lot of python devs use the exact same approach. Most of the AI front-ends are coded in python which uses a webUI style approach (the UI happens in a browser window the python script creates) and all work happens via messages to the server it started before the UI.
Alternatively, isolate the above in a docker container, and fire up the container (where docker would be the only real dependency the user would have to download). Node etc would be a part of the docker image, and run isolated.
This is more or less the entire point of Ragnarok, the message system in QTX. Making it easier to send messages over websocket, udp or http (where a message is a command).
As for data: You dont specify what you mean by data. Are we talking about JSON files? Text files? or a SQLite database?