Jonah Sterling is a group creative director for IdentityMine.
With the launch of Windows Phone 7 (WP7), Microsoft extends its supportive and user-friendly development environment into the mobile application space. Developers who have been active with Silverlight (or other .NET technologies) for the past several years will find developing for WP7 to be a continuation of what they already know on a new platform. Microsoft’s Expression Studio tools make design and design integration (Expression Blend) very efficient; and Visual Studio 2010 makes development even easier. This article covers my experience so far with the Windows Phone 7 platform.
Taking Applications to WP7 from Other Platforms
For the legions of people who work with Microsoft technologies like Silverlight and .NET, Windows Phone 7 provides a means of easily creating iPhone and Android applications for WP7.
Rather than create replicated applications that look and function exactly the same on both platforms, many developers will create platform-specific versions of the applications that take advantage of each platform’s unique features. The good thing is that this is not the long-haul challenge for WP7 that it may have been when creating apps from iPhone to Android:
- If you are taking an application from WP7 to another platform: WP7 uses the Silverlight runtime, so any project developed for WP7 can easily be adapted to run on the regular browser/desktop version of Silverlight, and it can be mostly re-used on the WPF or Surface platforms as well. You may also be able to re-use the majority of the business logic and entity layer codebase when re-purposing the application to iOS for the iPhone/iPad and Android with the help of Mono-Touch and an extension framework.
- If you are taking an application from another platform to WP7: Taking the SBB application from the iPhone to the Windows Phone 7 is a good occasion to improve the user experience. I found that having a hardware “Back” button on the WP7 devices is something that allows for a much smoother workflow than on the iPhone, where fingers have to move much more.
What Developers Can Expect from WP7
Developers can expect a phone that is simple to use and has an easily configurable UI with WP7. The user interface for the Windows Phone is called "Metro." Metro focuses on simplicity and a consistent use of type treatments. The Metro UI guidelines are detailed enough that developers can create a consistent aesthetic to their applications, without limiting branding potential.
Metro is new so some clients may not fully understand it yet, meaning developers may need to make compromises between a full Metro experience and a full client-branded experience.
The WP7 User Experience
The WP7 user experience is not limited to the Metro style. The WP7 also introduces Panorama and Pivot features. The ‘Back’ button and ‘Windows’ on the phone also simplify the user experience. For example if you want to use an application while you compose an email, you press the ‘Windows’ key and open the desired application and two “back” button clicks will return you to the email compose screen.
WP7 development also has a 4th dimension to it because of tombstoning. Typically, an application has a predefined workflow that begins with starting the application in a specific way every time. Because WP7 supports tombstoning, apps must be designed so that they can "re-hydrate" from any page or from any state of the application. This is a significant challenge that developers should take seriously before coding starts.
Developing Around the Glitches
While the platform has some amazing features, there are still some technical issues to be resolved. For example, there is no rich text support for email due to limitations on the TextBlock control. There has also already been some feedback about the lack of cut and paste with the first generation of Windows Phones. (Microsoft is developing cut and paste functionality for future releases.) And at some point, Microsoft should provide tools to the developer community like Transition templates, ListPicker controls, and a Toolkit.
In most cases, developers will be able to work around the limitations while Microsoft addresses these issues. The emulator has been helpful, but development would be easier with better support for sensors.
There are a few things that will make the application development process go more smoothly:
- Take time to design the ViewModel perfectly
- Use background threads to download and show images
- Use simple visuals in the UI
Emulators are a fantastic way to work through the user experience of your application while you wait to get your hands on an actual device. The emulator allow most interactions with the application, especially when run on a multi-touch monitor. But for special hard-wired features, such as acceleration and location-based services, the actual device is a necessity. Also, in order to test performance and memory issues with your application, you need to see it on the actual device: Because an emulator uses all available resource, the application won’t crash no matter how much memory it uses — this is not an accurate representation of how the application will perform in the real world.<
Tools and Resources
Anyone who has been active with .NET and Silverlight technology will find it pretty easy developing for Windows Phone 7. The best way to stay connected with advancements in development for the platform is to engage with the developer community, and developers are encouraged to embrace the Metro style, explore new ways to improve application performance (and share their results with their colleagues).
The MVVM Light toolkit is a great help for starting out with WP7, and it can speed development, especially in relation to Expression Blend.
Because WP7 is so new, finding information online is a little difficult, but visiting the forums where Silverlight developers hang out is usually a very good idea. The community is very helpful.