3 Top Tips for Windows Phone Development

For developers familiar with S40, Android, iOS and Blackberry, there are very good habits to bring with you into the world of Windows Phone; for example, we must still consider performance, memory constraints, and simplicity of UI. Then there are new ways of thinking that are unique to this platform: these spring mainly from the programming model, the design language, and the development tools.

If you are an experienced mobile dev but new to Windows Phone, here are three simple, but important things we think you should know:

1. Navigation is different

The way users move from app to app, and within each app, is similar to web pages in a browser. Each page in your app has an address, and the system has a navigation controller that satisfies requests to go to specific pages. Crucially, it also takes care of a ‘back stack’ that works a lot like the page history in a browser. Although this may be a new concept to grasp, with some clear examples of good practice and an understanding of the quite simple mechanism, implementing navigation correctly is easy.

2. The Execution Model is unique

Unlike, say, Android, where multiple apps may be running at once, Windows Phone supports a single foreground app. When your app goes to the background, the system can suspend its operation and may even close it, depending on the resource situation. It is up to you to manage saving page and app state (although there are good mechanisms to help you do this). You can also implement a background agent or a scheduled task to do occasional auxiliary tasks. But be advised: there are many constraints (processor, memory, API access) that limit what a background agent may do. If your app relies on a service running constantly in the background, you’re going to have to re-think how it can work and what it can do on Windows Phone.

3. Learn to think in MVVM

The Model View View-Model design pattern is at the heart of Windows Phone app development. It is a simple pattern to understand, especially if you are already familiar with MVP and other patterns that attempt to separate the data model from the view. XAML for user-interface definition, C# for program logic, and data-binding supported by the application framework are incredibly useful tools for helping you implement responsive, elegant apps with MVVM.

That’s it for now. We’ll come back soon with some thoughts on the pre-submission test kit, typographical UI and live tiles. In the meantime, good luck and enjoy!

This Matchbox article is also published on Alphalabs

Image by twicepix