Elegant Auto Updates for Qt - Feedback Wanted
Dear fellow Qt developers,
first of all, I hope this is the right place for this topic. If not, I would like to apologize in advance.
I used to be a Qt Ambassador in the ol’ Nokia days but I’m still new to this forum :-)
I’ve been developing desktop apps with Qt (and other frameworks) for many years now and I found myself rewriting boilerplate code over and over: Every one of my applications needed auto updates.
Of course, there are frameworks like Sparkle that help you with that but none of them are really great when you’re trying to have a good user experience across multiple platforms.
So I came up with DBLSQD.
DBLSQD is a Release and Update server that provides your application with information about new releases.
You can use DBLSQD through a simple CLI tool that does all the work for you: Uploading a new release, creating a changelog, distributing it to existing users and creating a changelog.
You can either build your own UI around DBLSQD with the SDK or use the drop-in GUI.
I’m only just starting out with DBLSQD, so I’d love to hear your feedback and thoughts on it!
P.S: Here is what integrating DBLSQD into a Qt5 application with the drop-in GUI looks like:
#include "dblsqd-sdk-qt/feed.h" #include "dblsqd-sdk-qt/update_dialog.h" dblsqd::Feed* feed = new dblsqd::Feed("https://feeds.dblsqd.com/:app_token"); dblsqd::UpdateDialog* updateDialog = new dblsqd::UpdateDialog(feed);
Hi! To be honest, instead of adding another remote attack vector to the users' computers by having yet another half-baked self-updater, I'd very much prefer integration with the operating systems' native package managers.
I'd very much prefer integration with the operating systems' native package managers
That's not really an option in windows though.
I very much appreciate this project! Thanks! Will look into this seriously - we need such a thing for Mudlet too.
@VRonin If I understand this correctly, Windows 10 has a native package manager named "PackageManagement".
- Package managers only provide additional security when you limit yourself to software provided by the OS vendor.
- Package management is only really available on Linux, macOS doesn’t have any package management and OneGet on Windows isn’t really geared towards the general public.
So, in my mind, the best way to make sure users have easy access to the latest version of your software - and thus avoiding potential security problems with older versions - is using some sort of update mechanism like Sparkle or DBLSQD.
But I didn’t mean to start a discussion on Windows vs Linux or the utility of auto updates in general :-)
So, if anyone here still hasn’t been scared off and would like to give DBLSQD a try, I’d be happy to help them set it up and hear their feedback.