A new angle

In traditional mobile development, access to emulators that faithfully mimic the behavior of actual devices is crucial. Being able to catch bugs before moving to testing on physical devices significantly reduces the time spent porting to each device.

We just don't think that's good enough. Development time shouldn't be proportional to the number of devices targeted. Instead, it should be related to the number of differences between devices that really matter for your application - things like screen size, memory capacity, input methods or API availability. You should be able to adapt your project to these variations independently, not based on arbitrary combinations of properties exhibited by actual devices.

MoRE is designed to meet these requirements. It can be configured with any combination of properties, independently. Set it to any screen size you desire. Let it have Bluetooth support and 16 Mb of memory. Toggle stylus support. If you like, tell it to have the same set of properties as a Nokia N95 or Sony Ericsson k700i. Whatever properties you set, MoSync makes sure that the behavior you observe in MoRE regarding those properties is consistent with that of any device that exhibits them.


A reference for devices

We're approaching the problem from the opposite direction; instead of making an emulator that faithfully reproduces the behaviour of every single device, we make sure that each MoSync implementation reproduces the behaviour of MoRE. We've developed advanced testing mechanisms that let us verify, to a very high degree, that two MoSync implementations behave the same. At any stage of an application's execution, we can accurately compare the abstract MoSync machine state between them.

Each time we develop or update a MoSync runtime, we run these comparative tests between that runtime and MoRE. We do it on the actual phones so that you do not have to. When we're done, we have a runtime that for all intents and purposes behaves just like MoRE and executes MoSync applications flawlessly.