Back in 2004, I was looking for a low cost solution for scanning emails, documents and downloads for viruses. Nothing really seemed to fit the bill, so in my spare time I took it upon myself to develop a graphical front-end to one of the available command-line scanning engines. ClamXav was the result.Since then, numerous features have been requested and added, and ClamXav has gone from strength to strength. When ClamXav turned 5 years old in September 2009, I released a new version — ClamXav 2.0 — built from the ground up, with an entirely new interface.Now, with ClamXav turning 10 years old, I’m releasing another new version with a large portion of the main application rewritten, new features for OS X Yosemite and a completely new version of Sentry rebuilt from the ground up.With both parts of the application now rewritten, I’ve laid the groundwork for some exciting updates in the future. In the meantime, however, I thought it would be fun to take a trip down memory lane and have a look at how ClamXav has evolved throughout the last decade.
Initially, ClamXav was only ever meant to be for my own personal use, however, a couple of friends said they thought it would be useful and convinced me to list it on the VersionTracker website. I added some preference settings and uploaded the first public release.
It was written in Cocoa-Java (a technology loved but then loathed by Apple and eventually culled), using the Brushed Metal interface (originally loved by probably me alone, now universally loathed!), and the user preferences were contained in a drawer…which were all the rage back then!
As more and more features were requested and added, it became necessary to move the preferences out of the drawer and into their own location – a sheet because sheets were cool!
November 2004 saw the addition of automatic software update checking, a progress bar while scanning, a few extra buttons on the main window, and the most requested feature – scheduled scans and updates.
The addition of scheduling also required a rejig of the preferences pane again!
ClamXav reached v1.0 in July of 2005, and brought with it the biggest change yet – ClamXav Sentry.
Sentry allows users to specify a list of folders to monitor; any new files added to those folders would be scanned for malware as they came in, giving users an early warning system and a new automatic way to scan files.
Sentry was my first foray into Objective-C programming, and opened the doors to many new features of OS X which were unavailable in the Cocoa-Java bridge.
As the whole world and his dog started to turn their collective backs on OS X’s brushed metal appearance, so did ClamXav…but very slowly!
First to shed the metal were the dialog boxes and preferences window in version 1.1.
By 2009, it became apparent that Apple were not only no-longer supporting Cocoa-Java in OS X, but that it would become completely non-existent, meaning ClamXav would not be able to run at all.
This meant I had to do a complete re-write of ClamXav from the bottom up.
With the exception of what I’d learned of Objective-C through writing Sentry, I had no re-usable code at all. Development of ClamXav v2.0 would have to start from scratch.
I took the opportunity to redesign the user interface, and tied it in with a website refresh for ClamXav’s 5th Birthday. Incredibly, I managed to get it released within a week of its birthday with the first beta of ClamXav v2.0 coming out on 28th August 2009.
Since then, ClamXav and ClamXav Sentry have both steadily improved, both in features and stability in particular.
Now, for its 10th birthday I’m releasing ClamXav v2.7 with another complete re-write of ClamXav Sentry.
ClamXav now has a Today Extension for OS X 10.10, and Sentry has gained many new features, not least of which is a window listing all malware found, making it much easier to deal with infected files arriving on your computer.
ClamXav and Sentry now share much of the same code-base, so expect to see improved reliability and some exciting updates in the future…
Over the years, ClamXav has had a variety of application icons. Here they are, in all their glory!