The Download App is a free application from Download.com that helps keep the software on your Windows computer up-to-date, as well as clean up the junk that accumulates on your system over time. Using the software catalog that powers Download.com, the Download App provides secure, spyware free software updates.
This is very special project for us. When so big company wants us to build a flagship application for them it is a challenge, believe us.
For a long time CBS Interactive, their well–known subdivision Downloads.com, had been maintaining an incredible application called TechTracker. TechTracker was tracking updates for users' applications, did it perfectly, but had minimalistic UI.
CBS decided to build a new application called Download App based on TechTracker idea but having new GUI and bunch of new features.
It would be a written from scratch desktop application, having minimal memory footprint, handy and easy to use, able to work in background and customizable enough to work silently for long time if users want it to. In fact the app would do what Google or Apple application stores do.
- Minimal memory footprint.
- Slick and fast UI.
- Integration with the existing infrastructure.
Starting from scratch
As was said above we were asked to build it from scratch. The question was which technology to use.
After thorough consideration and weeks of intensive research we ended up with two options: WPF or HTML5. We choose HTML and Google’s Chromium Embedded framework and never regretted about this decision. WPF was still slow, blurry and memory–greedy.
Benefits for customer
What is interesting for CBS here? We weren't asking for constant assistance when designing the app.
In contrast to quite many of the outsourced projects we didn't need a constant governance by the project management team. We had understanding what we need to build (CBS had made incredible work making their requirements clear and comprehensive), we got enough domain knowledge, and we were keeping in touch with CBS people all the time we were working on the project.
In the very beginning of the project we made an extensive analysis on existing GUI technologiesand frameworks. We compared their strengths, weaknesses, and viability as a long term solution.In many way this research deserved to be published separately despite it's a bit outdated by now.
We examined native, hybrid, .NET/WinForms, .NET/WPF, Adobe AIR, Silverlight and JavaFX, having in mind technical characteristics, memory footprint, performance, flexibility, touch screens capabilities, and the technology's impact on development lifecycle, maintenance and support.
On the first iteration we choose WPF and hybrid (Chromium Embedded framework), wrote two fully–functional prototypes, evaluated them and then made a choice we have never regretted: Chromium Embedded Framework.
On our test hardware, HTML5–based prototype started five times faster, and used a tiny fraction the memory of WPF–based one.