This page lists the software recommended for use in mobile web development. Do you have other favorite tools for creating and testing mobile web applications? Let me know in the comments!
Except where noted, all recommended software is available for free!
Source Code Creation and Management Tools
These products help developers create and manage source code for mobile web applications. Choose the best development tools for the framework powering your mobile application (i.e. PHP, Java EE, ASP.NET etc).
- Text Editor: EditPlus or JEdit your preferred editor. A developer’s text editor must support syntax coloring and advanced markup editing. Purchase and legally license proprietary text editors.
- Integrated Development Environment (IDE): Eclipse, NetBeans, VisualStudio or similar GUI environment for developing and debugging mobile markup and templates. VisualStudio is proprietary and not free.
- File Compare Utility: WinDiff or similar. Must provide an intuitive UI for comparing text files. Diff utilities are often bundled with source control clients.
- Source Code Control: SVN, CVS or similar software for version control of web templates, mobile markup and any other text or binary files.
Desktop Browser with Mobile Add-Ons
Preliminary debugging of mobile web applications is possible in a desktop web browser. Firefox is an extensible browser with several easy-to-install add-ons that simulate markup rendering and other behaviors of mobile browsers:
- Live HTTP Headers: Inspection of HTTP request and response headers.
- Modify Headers: Modify and add HTTP request headers.
- User-Agent Switcher: Set the User-Agent request header value to impersonate a mobile device.
- XHTML Mobile Profile: Recognizes content-types for XHTML-MP mobile markup documents.
- WML Browser: Renders WML documents.
- Mobile Barcoder: Generates 2D barcodes and QR codes for URLs and text. These codes are suitable for transferring data to a mobile device via camera snapshot.
Firefox can be a powerful tool for viewing a mobile web application. But, it is not suitable for quality assurance purposes because it does not simulate the memory and processing constraints of a mobile device. The best debugging method is testing your mobile web application on an actual mobile device.
Mobile Browser Emulators
These products emulate mobile browsers, allowing a developer to review mobile markup as rendered on a handset. Emulators are important debugging tools for mobile web developers. However, the best debugging method is testing your mobile web application on an actual mobile device.
- Openwave Phone Simulator: The most popular mobile simulator today. Download Version 7 to simualte XHTML-MP and WML. If you download only a single emulator, make it this one.
- WinWAP Simulator: Simulates a WML mobile browser found on early Windows Mobile devices.
- OperaMini Simulator: Simulates Opera Mini, a proxy solution for delivering advanced mobile browsing to featurephones supporting the J2ME runtime environment.
- dotMobi Mobile Emulator: Browser-based emulator for evaluating mobile web applications.
- Access NetFront SDK for Garnet OS (aka Palm): emulator and development tools for the Palm OS browser.
- Nokia Mobile Browser Simulator 4.0: Emulates XHTML-MP and WML as rendered on Nokia devices.
See the helpful Testing on Mobile Devices article for more emulators.
A web server is used to serve mobile markup and content documents to remote clients (mobile browsers and emulators). Most web programming students already have access to a web server through a hosted.
- Microsoft Visual Web Developer 2008 Express Edition: Free and closed-source web development IDE and web server software from Microsoft. Suitable for beginning developers on Windows desktop operating systems. NOTE: It is not possible to change the configuration of the underlying web server using this free product. This may impede mobile web development.
- Apache HTTP Server: Free and open-source web server for all modern operating systems. This highly-available server includes flexible configuration and supports all current HTTP standards.