So it has been quite a while since the last update on OpenTodoList. But - as always - this by far does not mean there’s nothing going one. In fact, especially recently there’s been a lot of refactoring, both in the app’s backend infrastructure and the user interface. The results… a hopefully even more flexible architecture that’ll allow easy implementation of new backends (there’s still only the XML backend which stores todos locally, but that’ll change soon hopefully) and have a more resource friendly behavior of the app in general. Also, the UI has been redone completely to have to ensure it is running better on smartphone (and tablet) devices. But also on a Desktop computer OpenTodoList should better adapt to a user’s settings. For example, the font size (and thus generally size of any graphical component) is taken from global settings. Except for some “minor” things, most of the features of the old implementation are available meanwhile. So, if you would like to give it a test, just install the APK on your Android device by clicking here (Note: You’ll have to enable installation of apps from unknown locations - sorry for that, this also should be solved sometime soon). If you are on a Desktop system, you’ll have to compile the binaries on your own. The sources can be found on Gitorious. You should use Qt 5.2.1 (or later). By the way: In theory the app should also work on iOS and on Blackberry devices… but, that’s untested ;) Should you have the chance to try out compilation and testing, I’d appreciate any feedback). Finally (as usual) some screenshots on the new version :)

Several examples of the refactored user interface.

After the porting of OpenTodoList to the upcoming Qt 5.2 library, I managed to resume to reducing the number of entries in the OpenTodoList issue tracker. The result: A much improved OpenTodoList especially with fixes for Android ;) So, except of a “minor issue” in Qt 5.2 itself, it should work now in a halfway usable way. If you like to test it on your own - I prepared some ready to use binaries that can be installed on Android. Right now (well… sorry, I’m biased here) these are only available for ARM v7. So, if you feel ready just download the APK and install it. Just some notes:

  • OpenTodoList is still very young. Use it on your own risk ;) Should you stumble over some bugs (or things you’d like to see improved), please don’t hesitate to visit the issue tracker mentioned above.
  • The APK is not specially signed. Apart from allowing installation from unknown sources, you will also have to accept unsigned packages. Sorry for that, I will look into this next.

Please let me know in case you run into any problems with testing and have a lot of fun :)

When I initially started the OpenTodoList project, I mentioned that

Even iOS and Android are possible (and targeted) operating systems on which OpenTodoList can be run.

In fact, I had two main goals in mind:

  • Having an easy to use application to track my todos - especially for managing my tasks on work.
  • Replacing my current choice for todo tracking also on Android as it has some shortcomings.

In the very beginning I mainly focused on the first point as I urgently needed to have something available. Now, even though not yet all “desktop use cases” are covered, I started to investigate on mobile targets. So, how does that went? First of all, as I said I had mobile targets in mind from the very beginning. Indeed OpenTodoList was designed to be usable via touch input starting from it’s first version. Thanks to my current choice as a Laptop (an Asus Zenbook with touch screen) I was even able to easily pre-test that everything (more or less) worked out as expected. That way, development went quite easy and fast. However, as that is in no way a replacement for testing on a real device (in my case a Samsung Galaxy S3), I recently wanted to try out how OpenTodoList looks and behaves on that device. Thanks to the great work the Qt developers did, compiling and deploying to Android from within Qt Creator is quite easy. All you have to do is

  • Download and install the Android SDK
  • Download and install the Android Native Development Kit (NDK) - than one is required for bridging the Qt/C++ world into Android
  • And finally, download the Qt Libraries and Qt Creator for Android.

On top, some additional tools (the Java SDK on some flavor and Ant) are required. However, also no problem (in my case, apt-get install is able to get everything required). After setting up everything, compiling and deploying, this is how OpenTodoList looks like on Android right now:

Examples of the current state of the app on Android

There were some general changes in the layout recently, but apart from that, the Desktop and Mobile versions don’t differ except of one little detail. The “start view” shows in the desktop (or “tablet”) view your todo lists (including the “auto” lists) and also the top level todos in the currently selected list side by side. On a small form factor, this is (of course) a bad idea, so in this case

  • the todo list view shows only the available lists
  • after selecting a list, a special view is shown containing the todos of the just clicked list

Some other changes were required as well. Especially the progress indicator and the priority selector were using fixed sizes in PIxels - a bad idea as it turned out. Thus, in the current version of OpenTodoList, the sizes of these elements are taking the systems resolution and density into account, making useing these controls quite pleasant on both traditional desktop an mobile devices. During my experiments with Android, I also had to discover one little annoying thing: Using the Android simulator together with QML2 does not seem to work. In fact, no matter what I tried and how I configured my virtual devices, all I got when starting OpenTodoList was a white screen (and some debug output about failed compilation in basic shaders in Qt Creator). So, seems there is no way around having some real device for testing. On the other side, that also takes away the possibility to easily test your app with slightly different devices (in my case, I’d be interested in how OpenTodoList would look like on a smaller device than my physical one). Sure, for some basic testing, the desktop version does the trick as well (there I just can resize the Window to any size to test whether the app is still usable then) but - as I’ve written above - that is in no way a replacement for testing with a real device (or at least an emulated one). In the future I definitely have too look into this a bit more in order to test better. However, for now I just have to say: I’m thrilled about how everything worked out :)

So some weeks back I came to the conclusion that it would be a good idea to write a todo list application. So far so good. Unfortunately, a lot of my past projects have got stuck somewhat in the very beginning of their development phase. I do not claim that OpenTodoList had an easier life. In fact, due to I have only a little spare time left nowadays, finding some to invest in such a “side project” is not easy. However, OTL had one advantage: I urgently needed a todo list app that fits my needs - especially at work ;) By the way, during the development, I stumbled upon an interesting topic (which meanwhile is probably not so unknown anymore): Flat design :) I’m not a designer, however, I found that design approach quite interesting and (of course) rewrote the UI parts of OTL in that fashion. Thanks to QML, that went quite easy - during one evening the UI was vastly ported. The transition is definitely not finished yet (and again, I’m not a designer, so there’s definitely still a lot to learn about good design). Now, enough words, see some before and after pics below. Enjoy :)

Before and after the great flattening.