The Windows Phone 8 development tools – Visual Studio Express 2012 for Windows Phone 8 – ship with a terrific emulator that allows you to test your Windows Phone 8 applications in an environment that is very close to what you can do with a real phone. However, with emulation there are always a number of scenarios that cannot be met, so if you are evaluating purchasing a developer device or not, you might want to take a look at this list, and see if emulation is enough. This isn’t necessarily an exhaustive list – so if there’s anything I’ve missed, please let me know in the comments.
If you don’t have it already, you can see an example of how to download the tools, install them and run your first ‘Hello World’ app in the emulator here: http://www.philotic.com/?p=55
First up are Local Folders which were formerly called Isolated Storage. These are emulated, but when you close the emulator the data is lost. Be sure to understand this – I have seen cases where something was cached in Local Folders, and the developer expected it to work between sessions, when of course it didn’t. If you deploy to a hardware phone for testing, the Local Folders data will be maintained between sessions.
The emulator only supports multi-touch if the host PC supports it. Many developers don’t use multi-touch monitors on their developer box (myself included), and may think that there’s a mouse emulation of multi-touch in the emulator. Unfortunately there isn’t. So, if you want to test your multi-touch, it’s probably cheaper to buy a device to test on than it is to replace your large monitor with one that supports multi-touch!
If your app involves taking pictures or accessing the camera in any way, the emulator cannot help you. While many laptops nowadays have a web cam built in, the emulator doesn’t take advantage of it. To test your camera apps, you’ll need a physical device.
While the emulator has an ‘extras’ function that gives you the ability to simulate the physical movement of the phone, this only produces Accelerometer data. Unfortunately Gyroscope simulation isn’t yet available in the Windows Phone 8 emulator. You’ll need a physical device to test this.
Windows Phone 8 includes a built in compass for direction testing. This does not work in the emulator, so as with the others, you’ll need a device if you are testing direction information in your app.
The emulator simulates being connected to a ‘Fake GSM’ network, so changes from one network to another cannot be tested against.
Windows Phone 8 has APIs that can be used to check the battery state. You could use these to perhaps change how your app works under low power. However, in the emulator, the battery is always charged at 100%, so in order to test for other levels, you’ll need hardware.
That’s all I can find, so if you have anything else, please let me know in the comments below.