Staying in sync

As I mentioned a couple of days ago, I'm trying to keep my PDA/phone and web in sync. The calendar portion is reasonably well taken care of. That leaves contacts and tasks.

I got one of my domains switched to Zimbra (fodder for another post) and looked at their address book. It seems to be just a folder with .vcf files. Using IMAP, I should be able to manipulate those fairly easily. I'll have to look whether i can access the contacts format on the xv6700 directly, because then I could just sync zimbra and my phone over the net. Alternatively, I hook into activesync on my PC and sync contacts only when I dock the phone.

And then there's Tasks. Zimbra doesn't seem to have an option for that. I know apple now stores tasks in iCal, but I guess nobody else has picked up on that yet. I looked around on the net and decided to use Voo2Do for my task keeping. It's got a nice simple REST api, that I was able to wrap in short time. Last night I moved that API to to .NET CF dll and got a little demo app running on my phone that fetches the contacts from Voo2Do. Yay! While not the most straight forward experience, I am nonetheless impressed how simple programming Pocket PC is, if you are already doing .NET stuff.

That means, tasks are well on their way to being taken care of and Contacts shouldn't be impossible to do as well.

So what were the less than straigh forward pieces in developing for the phone? Most likely it comes down to not having found any good resources for doing this and everything I've done for far has been cobbled together from various web searches and forum posts. So here's what I came across:

  • Visual Studio Windows CE 5.0 projects are always targeting 2.0, even though 2.0 doesn't appear to be standard on the platform yet
  • Initial deployment failed getting the debugging cab installed, but it does put it on the phone. Running it on the phone will fix that and then deploy works fine.
  • Need to figure out signing, so I don't get complaints every time i deploy a new build
  • I currently have two copies of a source identical lib, one for .NET and one for .NET CF. Be nice to have a single source tree with multiple targets via Visual Studio. Dunno if that's possible.
  • Debug deployment works and any exception thrown on the phone is caught in Visual Studio. Breakpoints do not, however. Everytime i set one, Visual Studio complaints that the connection to the device closed (even though debug keeps running).
  • Haven't been able to figure out how to get network connectivity on the Pocket PC 2003 SE up and running, so i can't use it for testing.
  • Can't find an emulator for Windows CE 5.0 Pocket PC, just the full CE 5.0. Dunno if one exists.

Gonna have to dig around a bit and find some better sources of documentation for doing this stuff.