As anyone who reads this blog (anyone?) will know I have been on a journey over the last 18 months that began shortly after I decided to take some time to learn Silverlight. (see here for the full story) The announcement of Silverlight support in the forthcoming ‘Windows Phone 7 Series’ phone (as it was know then) proved to be a catalyst for me to really take the challenge I had given myself. My first Silverlight project http://apps.webservicesuk.com/FromTheMalverns (still up but desperate for a code update!) was a great place to start. A year on and I almost dread the thought of reviewing that code (though I am committed to do so) I have learned a lot over the last year:
ITS EASY TO WRITE SILVERLIGHT APPLICATIONS!
Of course that’s not the whole story. MS has been very smart in not allowing multitasking in the first iteration of WP7 and this single fact is probably going to save the souls of a lot of developers. Why? You might argue that if an app does it’s job then why should you care about the underlying code (actually I don’t know any developer who would take this view, but these phones are not targeted at developers!). The simple fact is that as a result of Microsofts’ decision, poorly coded apps are not going to get the opportunity of impacting other apps (and perhaps more importantly the phone experience itself). That said, the average user is going to think they do have multi-tasking as a result of the “tombstoning” process that goes on when a user switches away from any App (either by answering a call or just navigating away from the app, EG to take a picture. Having said that in order for this trick to work seamlessly the developer has to have coded the app correctly.
So where am I going with this? The simple fact of the matter is that while the tools for developing Silverlight (and XNA) apps on the phone are easy to pick up, you cannot get away from the fundamentals of quality & performance, understanding the impact of ensuring that code runs on a particular thread for instance, is going to be crucial to getting the best performance. (I’m not going to dwell on the intricacies of this but direct you to a great resource from Microsoft: ‘Creating High Performance Silverlight Applications for Windows Phone)’. (The graphic comes from this article)
Which brings me to my latest application for Windows Phone ‘Metro Drummer’. Having spent my formative years in a band programming drum machines (ranging from the Roland TR606 and 909 through to Linn Drums) the thought of developing a drum machine for the phone was quite attractive. That said, I knew from the start that performance was going to be critical to success! (Nobody wants to hit the drum and hear the sound ‘some time later’ for instance). I’m still in the process of optimising ‘Metro Drummer’, which has already involved an almost complete rewrite! The learning process itself is great, and integral to the preparation for becoming a JEDI warrior.
At the end of the day ‘Metro Drummer’ will be as fully optimised as I am able to make it. Will it see the light of day come October? Let’s see, Its going to be an interesting journey.
Hope you enjoyed reading this post , as if on queue the AA van is just pulling up behind me – I’m stuck on the hard shoulder of the M4 while writing this, isn’t technology wonderful? (except maybe my car.)
(So I guess that’s it then, I really do need to get myself a proper job & start earning some money again!)