Archive for the ‘WP7’ Category

1 Idea, ~40 Hours, #WP7 and #WindowsAzure = Bump!

January 11, 2011 3 comments

Bump! can be downloaded from ZUNE : http://go.hltag.IT/3r

Todays posting is about the ease and agility of building Windows Phone 7 applications. It was Christmas eve and I was walking around the office wishing everyone a Happy Holiday when I came across our Support Manager and a SAP consultant. We were chatting away when I showed my recently obtained Windows Phone 7 device. I gave a run down of its features and candidly said that I would develop an app for it over the holiday break. I said something along the lines of an application that could record Bumps in the night. You know, the sounds that occur throughout the night that you never hear (Your own snoring, doors closing, whispers etc..) and to give you the ability to play them back in the morning.

Ofcourse, I had Xmas and New Years to get through, and lots of family time and days at the beach so I didn’t want to spend too much time on the computer, so I decided to cap my time to about 40 hours total.  On the way home, a million other features and ideas came in my head on what I could do for such an app. This of-course lead me to the first phase and milestone.

1) Defining the feature set. (8 hours)

To be honest, this rolled over Xmas and New Years on and off. I jotted down ideas on what would be cool, useful, what would be possible within the V1 feature set of Windows Phone 7,  what is possible but not allowed within the WP7 certification guidelines and most importantly, what would be in Version 1, 2 and 3.

2) Prototyping (8 hours)

I had all the tools already on my work laptop so got to work prototyping ideas, getting more familiar with the inner workings of the platform and really understanding what can be done and what couldn’t.   By the end of this time (and this was done in about a day) I had cut enough code to know what I wanted to do was indeed possible and was fairly confident that Bump! would meet the requirement guidelines.

3) Develop, Test, “Productionize” to Code Complete (8 hours)

This phase was to stabilize the code, re factor some sections and complete my performance tuning. The 8 hours was total but duration was longer. I tested the app over several nights to ensure battery performance was optimal. Bump! uses your microphone to pick up sounds and analyse the amplitude so memory and cpu cycles are key here. For about 4 days I would spend about an hour in the morning analyzing the results, refactoring the code until the magic morning when all was well and performance was acceptable.

4) Deploy. (1 hour)
I had already paid my dues and created an app store account. On the side I had sent faxes to Geotrust, completed various US Tax forms etc.. which was a couple of hours of my time. The process itself was quite quick considering I started the signup on the 2nd Jan ’11. My XAP file was then uploaded to the portal where I then waited…. and waited… and waited. about 5 days had passed with the status still stuck on “Ready for testing”

5) V1.1? No wait V1.2?
As I had some time to kill, I thought I would add in a feature I really wanted to add in the first release but couldn’t as it was outside of my feature set (and I really hate scope creep) so I set to work on it. I set myself a target of no more than 8 hours. (its summer holidays! I’m not gonna be stuck inside doing this stuff ) so I set to work on the feature which was cloud integration. Remote notifications of Bumps! to the web so smartphone users can create accounts, log on to the web and remotely view any Bumps! that may have occurred.  This was a no brainer. Bump! is gonna be huge so I needed scale and massive reliability. #WindowsAzure it is then. So I created my Azure portal, SQL Azure , WCF services etc… modified Bump! to talk to Azure and did my testing. ( I ran over a little bit. this was about 12 hours) but pretty much painless.

5.1) App Hub Response (Certification Failed)
Theres nothing like the email that starts like this….

We’re Sorry, Jason…..

Crap; What happened. They send you an nice PDF report that states the certification point that you failed on, the test they did and how many times it failed. I failed because I had the emulator chrome in the marketplace images (my bad) but also because of one certification task I missed about the media library. Bump! ofcourse allows you to playback sounds that occur at night, or anytime. If the end user is already playing something within the Zune media library, you have to ask to stop/pause/integrate the sound stream before playing your sound…. Grrrr, but fair enough.
So I updated my images and added in some code to detect for sounds already playing and if so, Bump! is a good citizen and will ask if you mind if it pauses your music to play the Bump! recordings. (Once you leave the recordings page it resumes your music which is a nice touch)

All in all though, this took ~40 hours from inception to delivery. Not bad for a night time summer project and I got to experience some extra App Hub gotchas along the way.
To be honest, I probably could have done this quicker  if I had a decent work laptop (I want to throw it out the window a few times each day) and also owe @shafsky some props for lending me his laptop power cord as my one died. Without you Bump! may not have existed (Until my replacement adapter anyway)

So yeah, thanks Windows Phone 7. I had a lot of fun and I am impressed with the eco system, tooling and maturity of the platform to date. In saying this, I’m looking forward to the major updates later in the year so I can do some things that I should be able to do now. (Such as and deeper telephony integration, sms, calls, and  better hardware interaction) You are very limited in a lot of ways but its amazing the cool things that you can still do within your sandbox that you provide for me.

Note: I also plan to add in my other features very soon and will be releasing a WP7 push notification app as well so those lucky enough to have 2 WP7 devices will be able to have Bumps! pushed to their other device. This will be another free add on to the Bump! service.  I think Windows Phone 7 has a lot of legs and am looking forward developing some further high class products for my companies clients later this year.

Bump! can be downloaded from ZUNE : http://go.hltag.IT/3r

Categories: Mobile, WP7