A device emulator guide for cross platform development on ASP.NET and jQuery Mobile development

You want a Web site that renders mobile friendly content that is viewable, accessible, and interactive for the user. Native device developers have a bit of convenience when it comes to this as they target a specific device OS and browser. It is impossible for Mobile Web developers to test for every device browser he or she needs to target, since there are so many variations and combinations of operating systems + browsers. This is where emulators help. Emulators are software that behave the same way the physical device itself would behave. For example, a WP7 emulator looks and acts just like a real WP7 phone. It loads pages, displays content, and allows you to fill in HTML forms, and interact with HTML pages.

Device testing is a lot like cross browser testing for desktop browsers such as IE, Chrome, FireFox, Safari, etc... (which you still have to do). While you will be unlikely to be able to test for every single type of device and browser on the market, this post will cover some the more popular platforms.

Windows Phone 7 Emulator

The Windows Phone 7 emulator ships as part of the Windows Phone SDK 7.1 and integrates with Visual Studio 2010 automatically for WP7 project templates. When working with Web development projects like ASP.NET MVC or Web Forms, the emulator is run from the Start menu, desktop shortcut, or Visual Studio Tools menu; however, before using it in Visual Studio you must add it as an external tool first.

The WP7 emulator executable name is XdeLauncher.exe and it lives in the C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Tools\XDE Launcher\ folder, so it's easily added to the Visual Studio Tools menu. Choose Tools->External Tools, and when the External Tools dialog appears, add a new command by entering the following information:

You can then access the phone emulator from the Tools menu in Visual Studio 2010.

If you prefer, you can run the Windows Phone Emulator solo instead by pressing the Windows key, then typing in Phone Emulator (not case sensitive), to run the program. Of course, you can always use the command line. The WP7 emulator also has some very cool extras like the accelerometer, geolocation/mapping tools, and more. You can even run multiple WP7 emulators simultaneously. For those looking for the master WP7 emulator reference, see everything you need to know about the WP7 emulator.

iOS Emulators

There are many iOS emulators out there, both online, and as desktop versions of software, so you have quite a bit of choice. Here are some iOS simulators that work well:

Electric Plum's ibbdemo iOS simulator runs both iPhone and iPad emulators in the simulator software. The nice thing about desktop software is that you can integrate it with Visual Studio. Online emulators have the advantage of no software installations, and therefore are sysadmin friendly. Below are a few online emulators:

Summary

You can start cross browser development immediately with the emulators shown in this post, and some integrate directly with Visual Studio tools. If you didn't download the Windows Phone SDK 7.1 yet, now is the time!

Note: All emulators listed in this post are free.

What's your favorite emulator (free/paid)? What's your favorite device? What devices do you want to develop for and what devices must you develop for?

The Mono for Android installer helps take a lot of the legwork out of getting the Android environment up and running, even if you don't want to use it for Android development (though you totally should!). It will download and install the JDK, Android SDK, MonoDevelop, Mono for Android, and even sets up a few emulator images for you. The evaluation version is free and doesn't expire, so you don't need to worry about licensing unless you want to publish an app.

We at The Mobile Look have just finished creating an online emulator for all sorts of devices. Maybe this would be of help in testing the design and layout quickly without having to download anything?
(www.themobilelook.com)