Because the capabilities of different devices vary widely, it is important that you test your applications on the intended target devices. If you are developing for a broad range of devices, it is best to test as many different devices as possible. Because the cost of buying all the different devices would be prohibitive for most developers, manufactures of different cell phones and PDAs distribute emulators for their devices.
In addition to emulators for specific devices, there are generic WAP emulators that emulate the full spectrum of WAP capabilities. These are useful for development and making sure that your program will work, but are of limited use if you want to see how things actually look on specific devices.
One place to look for an emulator is at Microsoft. You can download their Mobile Explorer, an emulator for the handheld browsing software they are marketing to device manufactures. In the future, you will see Mobile Explorer on devices such as cell phones. Microsoft's Mobile Explorer has the advantage that it can recognize and display WML, cHTML, and HTML. It also can be set to a large or small display. Unfortunately, it lacks the capability to view the source of the page being viewed . This capability would be useful to developers who want to see how their mobile controls are being rendered. The emulator can be downloaded from Microsoft by going to their developer Web site msdn.microsoft.com and doing a search for Mobile Explorer.
You also can view and test the mobile pages with Microsoft's Internet Explorer (IE). In fact, initial testing should be done this way because if there is an error you will not get a comprehensive error page with an emulator, just a short message stating that there was an error. Although IE is a useful tool for quickly viewing the output of a page and for debugging purposes, it is of limited use for seeing how the page will be formatted on a device with a much smaller screen. You also must be careful to test on devices other than IE because, generally , mobile devices have memory and processing constraints that lead to much less capability. If you aren't careful, you can easily design an application that can be used only on IE.
Hardware manufactures, anxious to sell their equipment, sometimes provide free emulators to developers. Nokia and Ericsson, manufacturers of popular lines of Web-enabled cell phones, both provide emulators and development kits for their phones. For both of the companies listed here, you must register to be able to download their development tools. Other companies might also provide development kits, so you should be sure to check the Web site of the manufacturer of any device you intend to target.
Nokia's emulators can be downloaded from their developer Web site at http://forum.nokia.com. Of the emulators I worked with, this was just about the best. You can download an integrated emulator/WAP development tool. One of the best features is the easy viewing of the WML code. You also can view complete session information, including all data sent to or from the emulator. These tools make it easy to see exactly what is going on with the emulator. This emulator is a must-have for any serious WAP developer.
Ericsson's emulators can be downloaded from http://www.ericsson.com/developerszone/. Although Ericsson's emulators provide a good, solid emulation of their devices, they don't show you what is going on, especially if there is an error. You get an error message but have no idea of how to fix the problem. Also, the beta version of the Mobile Internet Toolkit lacks the device definitions for the emulator that comes standard with Ericsson's SDK. This last problem is supposed to be fixed when the final release of the Mobile Internet Toolkit is available.
Numerous generic WAP browsers are also available for download. Many of these browsers provide the full spectrum of features available to WML. However, these browsers are designed for computers, and although they are useful while you're developing an application, you still need to test with actual device emulators and devices to be sure your application will work on them. A search on any popular search engine for "WML emulator" returns several links for these browsers.
Whenever you develop for mobile devices, it is important to determine what devices are likely to use your application, and then test with an actual device. Before launching your application, you should test with as many different devices as is feasible , starting with the ones most likely to be used. You should also spend time making sure that your user interface works well when you no longer have a keyboard to enter data. Responding to a form that requests name and address information is quick and easy with a keyboard, but tedious and time-consuming with the touch pad of most cell phones. If you don't test your application on such a device, you will have limited feel for how usable your application is to the end user. You cannot gain this understanding with an emulator.