2015-05-15

Stage

About two years ago I did couple of public presentations and prepared the slides with LibreOffice. That was quite frustrating experience. LibreOffice is like MS Office in the way it offers huge amount of features which makes the UI a mess. My slides are always quite simple: texts, boxes, and images. Presentation programs' features are total overkill for my needs, but on the other hand I've been seriously frustrated by how difficult is to align the elements in the screen the way I want.

Apple's Keynote has one feature I really like. Its use of anchor lines instead of grid for aligning elements is really nice. When you move an element and it comes near existing anchor line, the anchor line becomes visible meaning that element will snap to it. There are anchor lines, in middle and edges of elements, and screen making it easy to align elements. And anchor line stays visible only for certain time, so you can ignore it easily.

From my frustration to Office suites and admiration of Keynote's anchoring mechanism I come to conclusion that I would really like to make my own simple presentation program that would support anchoring the way Keynote does, but other than that it would be minimal so that unnecessary complexity will not distract user from essentials.

Around july 2013 I started working on the app I call Stage. I haven't worked much on it and it is far from being useful yet, but I still like the idea and the anchoring code was interesting to write. I'm using Qt5 and QtQuick Controls since I want to make the app cross platform and QML is just so much fun. On the technical side I'm also playing with idea of doing as much as possible with QML and only using C++ when absolutely needed. In case anybody is curious, the project is at https://github.com/veskuh/stage. The code is quite quick and dirty, and the architecture hasn't been thought about at all.

I've been playing with Stage code again for few days. Doing desktop development this way is super nice and easy compared to the mobile development and the kind of projects I've been working. It's a fun little project, but it is likely that it will never be anything more than toy program. There is just too much work to be done, even for the simple set of features that I need in my presentations. It is good to have different kind of hobby projects, you always learn new things from them.