Following is a summary of the session “Things I Wish I Knew Three Months Ago about Building Windows Phone 7 Applications” presented by Jaime Rodriguez, Microsoft evangelist, in PDC 2010.
The talk is about common windows phone 7 applications and lessons learned from building them.
First Jaime presented Vikas Gupta, mobile engineer of Facebook, that showed the panorama-based Facebook for Windows Phone 7.
Then Jaime presented Leland Rechis, program manager for twitter mobile, that showed the pivot-based Twitter for Windows Phone 7.
There is nothing special in a Windows Phone 7 applications. They have UI layer, view-models, models etc..
- Know the phone before you design an application for it. It’s not the same experience as iPhone / android.
- Learn about Metro UI design for Windows Phone 7.
- Take the design recommendations as just that, recommendations.
- Balance the graphics between the Metro UI design and the branding.
- Custom themes requires lot’s of tedious work. You must test all your themes with both of the windows phone themes (light and dark).
- If you’re doing custom theming, hide the system tray because it cannot be themed.
- The application bar actions should be page level actions only.
- Specifically, context based actions should not be on the application bar, use the content menu for them.
- Remember the application bar is always on top, event above the SIP (Soft Input Panel, AKA keyboard).
- Design your UI for 3+ screens: Portrait, Landscape and Landscape with HW keyboard
- Some pages should not be inserted to the page stack, like login page.
Use popup & Overlays to avoid a new page.
Demoed by Will Danford, lead developer of the Facebook mobile.
Why use it?
1. Make your application more attractive (having a fluid flow).
2. Carry context from one page to the next.
3. Increase perceived performance of your application.
Types of transitions:
1. Continuum animation – show the context of where you are going.
2. Turn style – used for task switching, moving between functionality different screens.
3. Popup style – used for transient screens.
Tips on transitions:
1. Make sure you need it!
2. Show the next page as quickly as possible. Data-bind only after page appears.
3. Use brief animation (up to 350ms).
4. Wrap the navigation service to avoid multiple navigation by anxious users..
5. To implement transitions subclass PhoneApplicationPage (then cancel navigation, show animation and do navigation).
Second most important concept of the phone (first is Metro design).
Tombstoning dominates the perceptions of performance.
Some tips on tombstoning:
- Only save what you need.
- Use binary serialization instead of XML-based serialization.
- Warm it up first, get the location before you need it.
- Singleton. You don’t need more than one
- Never dispose
Using Bing Maps
- Consider touch interactions. Adding the map control into a pivot control doesn’t works well, since both controls compete for touch interactions.
That’s it for now,