Archive for March, 2013


Symbian CardDAV prototype

Cards-256Here it is, without further ado: Cards 0.1
(Update 2013-03-29: I’m in the process of trying to get whitelisted to continue using this API with google, see this blog post)

(Update 2014-02-03: Since I failed adding OAuth and get DAV responses, here’s the source: . In the other news, SyncML seems to still be working with settings like here).

What does it do? it connects to google and downloads vcards from there, then it presents them in a (sorted) list where you can select one to call or email. It doesn’t store them or sync them in any way.

This is proof-of-concept work, of course.

It’s based on Qt4.7.4 for Anna – is it working for you?

I don’t know if I will add more features to this, as my itch is scratched, but feel free to come up with suggestions!

Some things I learned along the way:

QML development is very nice, things evolved very fast and in a good way since the first time I took a look at Qt for Symbian (that was without QML or QtQuick).

The actual Digia Qt documentation is still up for the 4.7/4.8 Symbian parts and you still find Nokia forums with lots of info from people.

The actual coding of this went on for about a month, in 10 sessions of a couple of ours each:)I went from making the briefly reading the CardDAV rfc to coding the PROPFIND request in Qt C++, then started reading on how to set up QML and Qt together in the same project, then trying to fill a ListView with the card info and finally learning a bit about page navigation and adding a login page. The last bit was firing up Inkscape, watching a squircle tutorial and bam! I have an icon too.

Unfortunately for actually synchronizing the agenda or make a call without confirmation I need to write even more Qt C++ code:) Also, the PROPFIND request only returns the IDs of the cards, I had to download them one request at a time (altough in theory queries can be made was not able to get the cards in the first reply itself).

And all this was done on Linux! Thank you Nokia! (I actually had two QtCreators, one for simulator and one for building .sis files, since the remote compiler I used before was pulled out, then I figured how to configure the simulator to run in the second QtCreator)

What I didn’t do is I haven’t read about signing, UIDs, putting into store etc. Maybe I’ll figure this out later too.