Auto Updates [Was Re: External functions]
Trevor DeVore
lists at mangomultimedia.com
Tue Feb 5 10:02:07 EST 2008
On Feb 4, 2008, at 6:08 PM, Neal Campbell wrote:
> Has anyone looked into writing an external for Sparkle for OS X? I
> have used it with other languages and its pretty slick, albeit OS X
> only.
Hi Neal,
I looked at Sparkle a number of months ago while doing some work on
auto updating. It seems to be a great solution as lots of OS X
developers are using it. I'm not sure that wrapping up Sparkle in an
external is the ideal approach though since Revolution is cross-
platform. As I understand it, Sparkle basically:
* Provides a call that will check for updates.
* If an update exists the dmg, zip, etc. of the .app is downloaded,
the app quits, the update is installed and the app is relaunched.
The components to do the same thing in Rev (probably) exist in each of
the auto updaters that some of us are using individually. We just need
a generalized solution that can plug into any application.
The fact that OS X uses application bundles for applications is
beneficial here since Sparkle can completely wipe out the app and
replace it, never worrying if some user file is being erased.
On Windows the application folder is not as protected and I know I
have customers that have stored files in my application's folder
before. Even if people shouldn't store files in an application folder
it is probably bad if their files disappear because they updated your
application.
If this concern is to be taken into account when providing a general
auto updater then you need to decide if the auto updater tries to keep
the application folder contents in sync. It is easy enough to install
updated files each time and even add additional files to the
installation folder. It is more difficult if you wanted to remove
files during an update (i.e. you moved all stacks in stack file B into
stack file A and no longer need stack file B). I imagine this is
pretty rare during minor updates of a major version and having a file
that isn't being used in the application folder probably wouldn't be
the end of the world.
Can anyone think of a reason why it would be bad? Is the reason bad
enough that the auto updater should be able to wipe out files that are
no longer needed?
I'm asking these questions because the lack of tools in Revolution for
providing basic functionality that almost all applications need (or
that users expect) is something Jerry and I have discussed quite a
bit. I think that for Revolution to truly deliver on the promise of
rapid application development a true end-to-end solution needs to be
available.
Revolution is great for laying out your GUI and coding your
application. As you have to make decisions about how to organize your
application files on disk it can be confusing the first few times
around. When you add your first library it can be confusing as to
where to put it and how to initialize it. Determining where to store
preferences on each OS can be time consuming. There are lots of little
decisions like this that Revolution developers are making again and
again until they come up with a formalized method. Our time could be
better spent and we are looking at ways to improve the situation.
Regards,
--
Trevor DeVore
Blue Mango Learning Systems
www.bluemangolearning.com - www.screensteps.com
More information about the use-livecode
mailing list