A poor man's app updater
J. Landman Gay
jacque at hyperactivesw.com
Sun Mar 18 15:57:11 EDT 2018
On 3/18/18 6:44 AM, Graham Samuel via use-livecode wrote:
> Now, here is the primitive bit: if the user selects the update option, he/she is invited to carry out the following sequence:
> - quit the current version (actually this can of course be done automatically via an “OK” button);
I'd automate this. The fewer steps the user needs to follow, the better.
> - delete the current version using the facilities of the OS (just trash it from the Applications folder on a Mac, or use the Control Panel on Windows): there is no reliable way of doing this from within an LC standalone, AFAIK;
I think you'd benefit from distributing some type of installer. When the
user clicks the "OK" button, launch the URL of your web site where they
can download it. Matthias' LC installer is ready (and the signing
version is close to ready) so you could use that while staying within
the LC environment. It does all the work for you.
Users know how to use installers and many Windows users don't understand
anything else. There are more users than you think who don't know how to
find a file or where apps are stored on their drive. The OS and/or the
installer will manage older versions so you don't have to.
> - download and run a special “Uninstall Helper” program that gets rid of the Working Stack in the writeable area, plus preference files and the like - I don’t see any way of making this happen automatically, since logically it needs to be done **after** the main program is deleted;
Instead of a helper, I'd put some logic into your app itself. The
working stack would have a custom property with its current version
number. The standalone would check on launch if the working stack
exists, and if so, if its custom version property matches the one it
expects. If not, overwrite the existing one with the new one. The new
one could either be downloaded from the internet on demand, or stored as
a binary in a custom property of the standalone. Either way, overwriting
is just a matter of putting the binary content into the existing stack
file path on disk.
> - use the information given at the time of purchase to download the appropriate installer from the server;
> - reinstall the program and input the registration data from the original purchase.
So, it sounds like you are already using an installer. If so, they're
mostly done. I wouldn't remove the user registration file or
preferences; unless it's changed there's no reason to make the user find
their registration info again (and many will lose or misplace it, which
will increase support requests.)
The short summary: The user only has to click "OK", the app quits, and
the user is taken to a web site to download the update installer. Once
they launch that and run the install, everything else is automatic. On
first launch, the app replaces any necessary files.
Jacqueline Landman Gay | jacque at hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
More information about the Use-livecode