On October 11th my mobile application entitled BYU Mobile Student (v1.0) was certified and released to the Microsoft Zune Marketplace for use with Windows Phone 7, free of charge. You can view the latest version in the marketplace here. Although I imagine that the market for university students at BYU Provo who use a Windows Phone is limited, this app was nonetheless a rewarding exercise in Visual Studio development using C# and Silverlight. Currently the app boasts the following features:
- Academic Calendar
- Campus Map
- Location Map (new w/ version 1.1 release)
- Testing Center Line Conditions
- Useful Links
Although I think the WP7 interface is pretty smooth and that the Microsoft App Hub provides some useful tools/support to developers, some of the features in this app were much more difficult to implement than they should have been.
For example, I needed the high-resolution campus map image to be pannable/zoomable within a scrolling control, but due to the lack of availability of built-in elements to handle this (and hours wasted searching for a real solution), I ended up sticking it in a custom web viewer container which luckily had those controls built-in. The downside is that the image has to be downloaded from a remote source instead of local phone storage, causing a slight slowdown during the initial app load time and unwanted dependency on the data connection. With a newer build of the current version 1.1, I was able – with the help of a knowledgeable friend – to finally get the web container to display the image as local instead of remote content.
Another hiccup is that for Microsoft certification, every app candidate must explicitly handle “tombstoning” or app resumption. The known method for saving the current page state before pausing the app and eventually restoring it, however, is buggy in the original version of the Windows Phone 7 OS and crashes the app. I had to work around this by simply not saving the page state but implementing the default behavior anyway in a roundabout way just to satisfy a requirement. With version 1.1 running Mango though the issue has finally been fixed and overall phone performance is much better. Still, a little refinement to the developer tools will take WP7 a long way toward competitiveness against Apple’s iOS.
The WP7 SDK in conjunction with Silverlight is certainly a viable app framework that provides a wealth of functionality with relatively little overhead. Overall I highly recommend it to potential and current Visual Studio developers.