Recently, after a blog post on the Windows Phone Developer Blog, there was concern among the Windows Phone developer community about the impact of 256MB phones on the general app quality. The basic assumption made was that apps will now have to be catered for the lowest common denominator. Per these concerns, today’s phones with 512MB memory, and tomorrow’s super phones with possibly more, will be under-utilized, and app developers may not be able to push the limits on the resource usage within their apps.
Justin Angel, the newly hired Principal Engineer at Nokia, has been doing the rounds of popular Windows Phone podcasts to clear the air on this topic. I listened to WPCentral and WPDevPodcast episodes recently, and wanted to highlight the main points Angel made. So, here you go:
- As mentioned in the original blog post, there are less than 5% of the total apps which are affected by the restrictions imposed on the maximum memory an app can use.
- These affected apps, which use more than 90MB of memory, should have actually been declined certification in the first place.
- Microsoft had two choices on handling these apps – pull them off the Marketplace, or what they did, which is mark them as incompatible with the low-end devices, and notify each developer with an email. This email explains what the developer can do to update the app so it passes certification the next time they submit it.
- The updated developer tools ship with a second emulator to help understand how an app would perform under both 256MB and 512MB devices. The best practice suggested is to always test the app in the 256MB emulator. Angel also suggested that developers should use the memory profiler that comes with the tools, which will help them in understanding where their app ends up using more memory.
- Microsoft has made some clever technological updates in the “Windows Phone 7.5 Refresh”, aka Tango, which enable even the 256MB devices to support up to 90MB of memory per app. This trickery is completely transparent to the developer (and naturally, to the customer).
- Since the trickery only applies to the 256MB devices, current Windows Phone customers need not worry about it at all. Developers also need not worry about how their apps will perform before and after Tango on the first-generation devices, since on those devices there is going to be no impact at all.
- As for loss of functionality or APIs, the generic background agents will not work in the 256MB devices. These are two new types of agents introduced in Windows Phone Mango, which allow arbitrary code to run in the background based on app developer’s discretion. The apps which use such agents are listed under the new settings section so the customer can go and de-select to turn them off. Angel mentioned that because of this ability provided to the phone owner, these generic background agents should not have been made a core part of any app anyway. Remember, push notification services are still available, so toast notifications, live tile updates, alerts, etc. should still work if you use the Push Notification Service (and related APIs).
So there you go, developers. There is virtually nothing to worry about with Tango. In fact, there is a LOT to be excited about. With the addition of 23 new markets including China, and the push by Nokia and others into these markets with low-cost devices, there is a very good chance that the lower end devices will actually outsell the top end devices. If your app works on these low-end devices, you will now have access to about 60% more customers!
If you are one of the 5% affected developers, please let me know if you have a reason to exceed the 90MB memory limit. I’d like to know why it is so.