Saturday, July 21, 2012

Source control/backup and testing.

So for most of my projects I have a Mercurial repository for version control (totally saved my ass when I found a bug in the submitted version of Pax while halfway through unsuccessfully updating the code to 7.1), but no backup. I thought about setting up remote repositories (I have hosting with Nearly Free Speech), but I also remembered that GitHub had recently released their Windows client. I was unable to download/install the client over the coffeeshop wifi so had to set that up at home later - now you can see the code at https://github.com/jacalata/FlashCards. If that works nicely I'll put my Pax code up there as well.

I have created a test project for my Pax app in the past, but...a long time in the past. So I found this guide (http://blogs.msdn.com/b/amit_chatterjee/archive/2011/06/26/unit-testing-the-windows-phone-7-applications.aspx) as a reminder, and also found that the dll's I had were all 7.0 projects, so updated them. Added the first couple of unit tests, more to go.  Does feel better knowing I have a test framework though :)

Thursday, July 19, 2012

Flashcards app

I recently got the Telerik controls for Windows Phone (free in a deal for MS employees) and plan to use that to improve my Pax app - specifically I need the jumplist to replace the third party implementation I have now, which doesn't work for a 7.1 app. Before going in to replace everything in my Pax app, I thought I'd create a new app to get used to working with them.  

I have vague aspirations of doing a little more concentrated data structures and algorithms revision this year, and working on my french/icelandic, so I thought I could build myself a flashcard app. I used one of the Telerik default app options, which was nice and clean. I found the couple of controls I added quite simple to use: the basic info is all easily available at http://www.telerik.com/products/windows-phone/overview/all-controls.aspx,  but  I'd love that page to contain the dll each control is in, rather than looking through the 6 options. Or ideally to link to a page for each control with the full docs for it (I'm sure I found full docs, but I've forgotten where - I mostly worked by looking controls up in the Object Browser in VS). 

The first version of the app is super basic: one set of cards, can add/delete only, can move through sequentially or randomly. No option to enter the answer to keep yourself honest, no option to edit cards. What took the most time was creating the icon, which is still totally crap - all Paint no talent. Overall it took me two evenings, (probably about 8 hours) to get a working minimal version ready to submit to the app store. I didn't actually write any tests, which is bad. But it was pretty satisfying to get that done.  

I also set up a Trello board for the app (https://trello.com/board/flashcards-app/4ffb6ccacb4f94632522f9970), which I'm finding to be a really easy way to track projects. To keep myself honest, the next two tasks are tests and version control (I can't believe I forgot to do that).