Five great things about developing for Windows Phone 7—and five things that should be in the next release

Slalom Consultant Rob Howard

Rob Howard is a software developer and part of Slalom's National Mobility Team charged with putting emerging technologies to work in business.

In the past few months I’ve gotten a chance to write a couple of applications for Windows Phone 7.  Some of the concepts in the development environment, both new and old, were executed very well.  I was able to create some powerful features in these apps that would have been difficult for other mobile platforms.  Here is a list of five of those things that I would like to give the people on the Windows Phone 7 development team kudos for:

Portability of Skills

Anyone that has written code for the web in Silverlight should be able to easily read and implement a Windows Phone 7 app.  Since many of the same controls are used, one doesn’t have to learn a new UI API to work on phone development.  Also, with the inclusion of Expression Blend, skills that a designer has used in UI customization for WPF or Silverlight are valuable in Windows Phone development.

Networking combined with Data Serialization

It is almost a given that an application that one would write for a mobile phone will need to use network resources.  Windows Communication Foundation is included in the Windows Phone 7 libraries along with a loaded HttpWebRequest.  When used with the DataContractSerializer classes, fetching and parsing data from the cloud becomes a simple implementation where it can be very complicated on other mobile platforms.

LINQ

Without a local database API, it can be a challenge to write an application that consumes, aggregates, or combines collections of data.  Thankfully, LINQ is part of the SDK for Windows Phone 7 and is a valuable tool in bridging the gap until there is a database API available.  It’s also easy to understand and very useful for non-database object collections.

A Good Minimum Hardware Specification

The minimum device specification for Windows Phone 7 combines a good processor, large screen, and a good set of resources to create a compelling application.  It’s good to know that this is a starting point and that they are going to only get better.   Since the bar is set high, developers can also feel confident that their applications will run on all of the hardware available to end users.

Debugger / Performance Monitoring

Visual Studio’s debugger is known as one of the best in the industry.  It works very well with Windows Phone 7, including extra monitoring features like the frame rate counter, memory monitor, and overlays for both redraw regions and GPU accelerated regions.

On the flipside…

Not everything is perfect when it comes to writing an app for the new Windows Phone.  There are certainly signs that this is a 1.0 release.  In many places, developers porting applications will be frustrated with the lack of certain features.  The following is a short list of things that I hope will be improved in a release not so far in the future:

Local Database

Unlike previous versions of Windows Mobile operating systems, there is no API for creating and querying a local database.  It seems like Microsoft is urging developers to move many things to the “cloud”, but this isn’t feasible for all applications.  Some may require working while offline, or have performance and storage requirements that just need a local database.

Default Transition Animations

Currently, navigation from one page within an application to another, or rotation of the screen, will cause a very sharp snap transition.  Unlike other mobile platforms, it is up to the developer to custom build those transitions, and there currently isn’t a consensus on how they should look or how they would be implemented.

Improved Launchers and Choosers

In order to make a phone call, or access the contacts on the device, the Windows Phone 7 SDK includes the concept of launchers and choosers.  It would be nice to have more options with things like saving a contact, for example, where there are currently basically only two options, save a number or save an email address.  It doesn’t have the feature set of importing a full contact’s information into the device that you would expect.

Navigation

Writing code for navigation between pages in a Windows Phone application can be tricky.  Passing data with query parameters isn’t the easiest solution for many applications.  For apps with loading screens and login pages, a developer must be careful to account for the back navigation that could occur with the back button on the device.  It could lead to some tricky or unclear code when trying to prevent navigation to a splash screen.  It would be nice if future versions of the SDK would allow more customization of the navigation stack and an interface for passing objects both forward and backward in navigation.

Full Set of Controls

Some of the very useful controls seen throughout the native and demo applications on the device are missing from the APIs provided to developers.  For example, the jump list, found in the contacts application, is absent and is a necessity in apps that have a large list of items.  Among the other missing items are combo boxes, context menus, and date/time pickers.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: