Auto update is widely used in modern software development. It simplifies and speeds up product upgrade to enhance features and fix problems. I have been working on an application which is still in alpha version and testers need to update it incrementally and frequently. The testers are not computer professionals, so I have to make the update process as easy as possible. Below is the basic design and code. The toolkit that’s being used is QT 4.5. But the concept is universal.
To design such system, the following steps are considered:
- A server that contains the latest version and a list of updated files.
- The application should connect to the server to retrieve the list and compare the versions.
- If there is a new version, download the updated files to replace the new ones.
- Clean up.
Let’s work on it step-by-step. To save space, I will only post relevant code:
Read on …

