Differences between revisions 1 and 11 (spanning 10 versions)
Revision 1 as of 2010-10-14 15:07:52
Size: 2573
Editor: shoobe01
Comment:
Revision 11 as of 2011-06-20 16:23:31
Size: 4769
Editor: shoobe01
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
A simulator is software appearing on a computer that acts like the target environment. A browser that is the same size and the same official standards as the target browser, but not the actual code the target device is running. An emulator is running the actual code, so from a technical perspective you can have confidence in the fidelity. Simulators and emulators help with design, development, testing and demonstration of software, when the actual environment is unavailable or unsuitable for testing. These are particularly applicable for mobile devices, as hardware is not always even out, service contracts and the number of devices to test make them very expensive, and it can be slow and cumbersome to load for each incremental code change.
Line 3: Line 3:
== Web-Based ==
* [http://emulator.mtld.mobi dotMobi Online Emulator] - focus on common phones; likely to be a simulator not emulator. Run by YoSpace.
* [http://www.opera.com/products/mobile/operamini/demo.dml Opera Mini Simulator] - Opera's J2ME browser
* [http://boltbrowser.com/demo/] - Bitstream Bolt simulator. Intended to sell the product, but useful to check how things might work on a small-screen, scroll-and-select browser.
* [http://www.deviceanywhere.com/] - Actually a new class, a virtualization system. Actual hardware is disassembled, things are soldered to it, and it's strapped to cabinets. You get to press buttons and it goes over a real network, and gives you the screen output. Free trials available with some developer programs, otherwise a fee service. But useful.
Though often incorrectly used as such, they are not interchangeable terms, however.
 * A simulator is software appearing on a computer that acts like the target environment, but is technical dissimilar in some key aspect, and maybe all of them. The simulator will superficially behave like the actual device, but is driven by different code entirely.
 * An emulator runs the actual code, just within a virtual machine which itself simulates the hardware environment. From a technical perspective you can have much more confidence in the fidelity of the experience. Emulator problems arise from the virtual machine, which may have bugs (or the lack of them) which vary from the actual device. Often, the developer is allowed to select the available memory or processor or network speed, which is useful for unit test, but must be toned down for realistic testing or demonstrations later.

New ones are constantly being added, or replaced, so please help us keep this up to date. Visit the wiki at www.4ourth.com/wiki or contact us with updates you may encounter.

A good place to start is with MobiForge, who has published a useful guide to actually getting over a dozen emulators to run. Many of these are buried under their developer sites, so you may not have even found them. Most have some trick or other to get running, especially if you are not steeped in technical minutiae.
 * [[http://mobiforge.com/testing/story/a-guide-mobile-emulators]]


== Web-Browsers ==
 * [[http://mtld.mobi/emulator.php|dotMobi Online Emulator]] - Web simulator (despite the name) with focus on common phones. Run by YoSpace.
 * [[http://www.opera.com/products/mobile/operamini/demo.dml|Opera Mini Simulator]] - Opera's J2ME browser.
 * [[http://www.mozilla.com/en-US/mobile/download/|Mozilla Developer Tools]] - At the bottom of the page, the latest full-release version of the browser, as an emulator for your desktop computer.
 * [[http://boltbrowser.com/demo/|Bolt Browser Simulator]] - Intended to sell the product, but useful to check how things might work on a small-screen, scroll-and-select browser.

== Web-Based Device Virtualization ==
 * [[http://www.deviceanywhere.com/|Device Anywhere]] - Actually another class entirely, in this case the actual handset hardware is disassembled, things are soldered to it, and it's strapped to cabinets. You get to press buttons and it goes over a real network, and gives you the screen output. Free trials available with some developer programs, otherwise a fee service. Be careful, as they charge per minute connected, not per click or based on activity; disconnect as soon as you are done.
Line 10: Line 23:
* [http://www.forum.nokia.com/info/sw.nokia.com/id/db2c69a2-4066-46ff-81c4-caac8872a7c5/NMB40_install.zip.html Nokia Browser Simulator] - generic Nokia phone and gateway
* [http://developer.openwave.com/dvl/member/downloadManager.htm?softwareId=23 Openwave Phone Simulator] - Openwave's simulator (probably actually an emulator)
* [http://www.blackberry.com/developers/downloads/simulators/index.shtml BlackBerry Simulator] - multiple different BlackBerry emulators
* [http://www.yospace.com/spedemo.html| Yospace SmartPhone Emulator] - displays multiple phone instances at the same time but may not have the best fidelity to actual devices
* [http://www.genuitec.com/mobile/ iPhone/Pre Emulator] - Windows only desktop emulator, emulates both iPhone and Pre.
* [http://developer.palm.com/index.php?option=com_content&view=article&id=1883&Itemid=56 Palm Project Ares] - Full web development environment for WebOS in the browser.
 * [[http://www.forum.nokia.com/info/sw.nokia.com/id/db2c69a2-4066-46ff-81c4-caac8872a7c5/NMB40_install.zip.html|Nokia Browser Simulator]] - generic Nokia phone and gateway
 * [[http://developer.openwave.com/dvl/member/downloadManager.htm?softwareId=23|Openwave Phone Simulator]] - Openwave's simulator (probably actually an emulator)
 * [[http://www.blackberry.com/developers/downloads/simulators/index.shtml|BlackBerry Simulator]] - multiple different BlackBerry emulators
 * [[http://www.yospace.com/spedemo.html|Yospace SmartPhone Emulator]] - displays multiple phone instances at the same time but may not have the best fidelity to actual devices
 * [[http://www.genuitec.com/mobile/|iPhone/Pre Emulator]] - Windows only desktop emulator, emulates both iPhone and Pre.
 * [[http://developer.palm.com/index.php?option=com_content&view=article&id=1883&Itemid=56|Palm Project Ares]] - Full web development environment for WebOS in the browser.
Line 18: Line 31:
* [http://www.zambetti.com/projects/liveview/ iPhone screen projector] - "tethers" with your mac to display content from your desktop on your iPhone. Requires a free iPhone app.
* [http://sourceforge.net/projects/iphoneprototype/ iPhoneprototype] - Firefox plugin for iPhone mockups.
 * [[http://www.zambetti.com/projects/liveview/|iPhone screen projector]] - "tethers" with your mac to display content from your desktop on your iPhone. Requires a free iPhone app.
 * [[http://sourceforge.net/projects/iphoneprototype/|iPhoneprototype]] - Firefox plugin for iPhone mockups.
 * [[http://www.adobe.com/products/creativesuite/devicecentral/|Adobe Device Central]] - Part of the Adobe CS product line, lets you see what the design might look like on various mobile device screens. Includes non-whites, non-blacks, glare, etc.
Line 22: Line 36:
* [http://www.g5e.com/games/MIDS MIDS] - flow charts, navigation, wireframes, rendering, and even a physical test device  * [[http://www.g5e.com/games/MIDS|MIDS]] - flow charts, navigation, wireframes, rendering, and even a physical test device

Simulators and emulators help with design, development, testing and demonstration of software, when the actual environment is unavailable or unsuitable for testing. These are particularly applicable for mobile devices, as hardware is not always even out, service contracts and the number of devices to test make them very expensive, and it can be slow and cumbersome to load for each incremental code change.

Though often incorrectly used as such, they are not interchangeable terms, however.

  • A simulator is software appearing on a computer that acts like the target environment, but is technical dissimilar in some key aspect, and maybe all of them. The simulator will superficially behave like the actual device, but is driven by different code entirely.
  • An emulator runs the actual code, just within a virtual machine which itself simulates the hardware environment. From a technical perspective you can have much more confidence in the fidelity of the experience. Emulator problems arise from the virtual machine, which may have bugs (or the lack of them) which vary from the actual device. Often, the developer is allowed to select the available memory or processor or network speed, which is useful for unit test, but must be toned down for realistic testing or demonstrations later.

New ones are constantly being added, or replaced, so please help us keep this up to date. Visit the wiki at www.4ourth.com/wiki or contact us with updates you may encounter.

A good place to start is with MobiForge, who has published a useful guide to actually getting over a dozen emulators to run. Many of these are buried under their developer sites, so you may not have even found them. Most have some trick or other to get running, especially if you are not steeped in technical minutiae.

Web-Browsers

Web-Based Device Virtualization

  • Device Anywhere - Actually another class entirely, in this case the actual handset hardware is disassembled, things are soldered to it, and it's strapped to cabinets. You get to press buttons and it goes over a real network, and gives you the screen output. Free trials available with some developer programs, otherwise a fee service. Be careful, as they charge per minute connected, not per click or based on activity; disconnect as soon as you are done.

Applications

Prototyping / Wireframing

  • iPhone screen projector - "tethers" with your mac to display content from your desktop on your iPhone. Requires a free iPhone app.

  • iPhoneprototype - Firefox plugin for iPhone mockups.

  • Adobe Device Central - Part of the Adobe CS product line, lets you see what the design might look like on various mobile device screens. Includes non-whites, non-blacks, glare, etc.

Full Design Suites

  • MIDS - flow charts, navigation, wireframes, rendering, and even a physical test device

Emulators (last edited 2014-09-11 12:46:28 by shoobe01)