Qt Desktop Days – Day 4
Wait, there’s more? Yes, indeed. Qt Desktop Days delivered a lot of great content we’ve just got to share.
If you need to play the widest variety of audio, video, or streaming formats on the planet, you probably know about VLC (the “cone player”). But did you know that VLC uses Qt? They didn’t always. Hear the history of this interesting project from Jean-Baptiste Kempf, one of the lead developers on VLC, a project started by rebellious French university students over two decades ago that is still going strong today.
In the first Qt Desktop Days video for today, we learn from Jean-Baptiste some interesting platform constraints of the VLC project (like unbelievably, they still support OS/2!), and how their abstraction architecture has been able to grow and thrive without software bloat despite years of changing software, multiple new platforms, and loads of new features. We also learn what factors drove the switch from wxWidgets to Qt and what the team did to keep their high-performance video codecs working smoothly in their upcoming port from Qt4 to Qt5. If you’re tackling your own open-source project, the dynamic success of VLC as delivered by Jean-Baptiste might be just the inspiration you need.
If you saw our earlier talk about using Squish, you’ll have an idea of how easy it can be to automate UI testing and how that type of testing can really complement your testing regime. In this talk, Nick Medeiros from froglogic delves further into testing finesse by showing us how to get the most out of code coverage with Coco. By taking an example Qt app, Nick shows us how to beef up our test suite with code coverage.
Nick starts by explaining how code coverage identifies untested code, redundant tests, and dead code. He also shows how sophisticated code coverage has become with multiple condition coverage and modified condition/decision coverage. After walking us through how to instrument our Qt apps, Nick gives us a live demo of code coverage in action. He also shows us how to make our tests run more efficiently while using less human brainpower. He ends by explaining how to use code coverage with continuous integration and outsourced QA black box testing, showing that it can be adapted to a very modern workflow.
If you’ve ever seen Tantacrul’s YouTube channel, you know he loves destroying bad music software design with a no-punches-pulled criticism and the viral entertainment factor that puts those videos in front of millions of potential customers. What if he turned his critical eye towards your software? That brings us to the last talk on day four from Vasily Pereverzev, the engineering team lead for MuseScore. After MuseScore got skewered by Tantacrul, what do you think they did? They hired him to redesign their UI!
In our next Qt Desktop Days video, Vasily shares with us the MuseScore story. As the world’s most popular software for music notation, they already used QWidgets. But in their new fully reconsidered (and Tantacrul-approved) UI design, they needed a lot of fluid animation and customization of components – areas much better served by QML. Vasily shares the three options they considered in adding QML to their app, and why after everything was considered they went with a hybrid approach. If you’re considering an app facelift from QWidgets to QML, there’s a lot to learn from Vasily including where it makes the most sense, where you’re better to stick with QWidgets, and how to get the two UI frameworks to play together harmoniously.