When I presented
Polka, my experiment to reframe the user interface for address books, some people suggested that it would be interesting to try something similar for todo lists. So I did try. The result is a small app called
Bliss, because it makes you happy and gives you peace of mind.
I started with taking the concept from Polka to have freely arrangeable items on a canvas organized in groups. That works, but it had a flaw, because the basic element of todos is not the individual item, but a list.
Todos are much more dynamic than information about people. You create, remove, and rearrange them all the time. Context matters. One powerful effect of writing todos down is that you relieve your brain from having to constantly make sure you don't forget about them. This only works, if it's easy and quick enough to structure and arrange the todos according to your mental model. Lists are the natural structure here to keep priorities and order.
So basically a group became a list, where you can reorder items by dragging them around, either within the list or to other groups.
But in addition to this it's also quite useful to have multiple lists in one view. You can for example model a flow between things to do today, this week, and this month, where items in one list are replenished from the next one. Or you can have something like a
personal Kanban with lists for things to do, being done, and done. Or you can use a scheme like in the
Getting Things Done method. The combination of groups and lists is pretty powerful here.
Bliss keeps the complete history of what you did, so you can always look or go back without cluttering your views with done items. It animates all the transitions when moving items or navigating groups, so you don't lose context when items are rearranged or you change the view. Especially when dealing with such dynamic objects like todo items, animations really make sense, not as eye-candy, but as a way to support you in keeping track of what's happening. That said, they also make the app more fun to use.
The menus are done in the same way as in Polka, as semicircular context menus, which works nicely not only with the mouse, but also on a touch screen.
The code is in the
KDE git as well as on
GitHub. If you want to give it a try and play around with the UI you can get it from there. I'm happy about
feedback.
The technology behind this experiment doesn't matter much. It's mostly reusing Polka code, a
QGraphicsView based
Qt GUI with an
Kode-generated XML backend, which stores data in a git repository. To move forward it would be nice to redo the UI in
QML and connect it to
Akonadi. But the more interesting part it experimenting with the user interface right now.
Looking ahead it would also be interesting to rethink the UI of mails and calendars by moving beyond the limitations of the traditional widget based approach. This could make it possible to come up with user interfaces which are much more tailored to the natural mental model of people, and make full use of the opportunities you have by not being constrained to paper. There are tons of unexplored areas here.
I'm looking forward to more experimentation.