Developers: How to Prepare your app for Tango

The Windows Phone developer blog just posted some new tips on how to design your app to work with the lower-end Tango devices, as noticed by Neowin.net. Their tips are broken up into four sections…

 

Optimize Startup Time
All apps must display something other than the splash screen within 5 seconds of opening the app, or else they will fail certification. The blog posts reminds you to offload any initialization until your main page is actually displayed.

They also recommend using background worker threads to manipulate data (loading from isolated storage), in order to avoid blocking the UI thread. I highly recommend all developers use threading, it’s dead simple and I’m even completely new to developing!

Finally, they mention that a splash screen can slightly slow down load speeds (although in my testing, there wasn’t a noticeable difference with or without a splash screen, using a camcorder to precisely time the load speeds). And they also mention you should reduce unneccisary XAML as much as possible. Personally, I prefer to use C# as much as I can, and I try to avoid XAML at all costs, so that loading is even faster.

 

Reduce Memory Usage
With the new regulations, apps running on low-end 256 MB RAM devices can NOT exceed 90 MB of memory usage. Read their full blog post for more information on how to avoid memory leaks and how to monitor how much memory your app uses.

 

Handle Feature Reductions
One of the big disadvantages of Tango on low-end devices is the lack of background services. If your app uses a periodic task to update the live tile every 30 minutes, then that is now impossible on any cheap 256 MB RAM devices.

That means all low-end devices can say goodbye to nearly all live tiles! The only live tiles that will work are ones that pull an image from a server online. There is now no way to locally update live tiles. You should handle the exception thrown when trying to schedule a periodic/resource intensive task, and generate something else instead of a dead live tile.

Also, they mention that you should use WebBrowserTask and BingMapsTask (opening to the actual applications) instead of embedding the web browser or map control into your app, in order to save RAM.

This, however, leads to a bad experience since users can’t quickly return to the app after being pulled out to the web browser, since tombstoning is back!

 

Responding to User Input
Basically, keep any intense data processing off the UI thread by using worker threads.

Also, they mention that you should use the TiltEffect control so your items respond just like native Windows Phone does. And finally, don’t over-animate and over-transition your app to the point where it slows down the user experience!

 

My Personal Addition… Tombstoning!
Tombstoning is unfortunately back. In order to make sure your user doesn’t lose all his data if he responds to a text message, you have to implement tombstoning. There are countless guides on the internet that you can follow to learn how to work with tombstoning. Remember, try to make your app restore as quickly as possible and your users won’t even miss multitasking!

Comments