@Jayant, to respond to why it is useful to ask whether the platforms are behaving differently, it is because we have both common shared code and platform specific code. The problem with cross-platform code is that we have to build up from platform specific code first.
We strive to make Corona behave the same on all platforms. But it doesn’t magically happen by itself. We must make that magic happen by writing abstraction layers to make it seem like all the platforms behave the same way.
For example, platforms can’t even agree whether the y-position starts at the bottom and increases upwards or if y starts at the top and increases downward. They also can’t agree on the size of a point. (e.g. iPhone retina: 1 point=2 pixels). Even between Mac and iOS, some APIs like the movie players are very different.
Once we build up layers of abstraction, we can start writing shared code that is the same across the entire code base. One example is our audio engine. At the higher levels (ALmixer and above), our code is the same across all platforms. But lower layers like the platform specific sound decoders (which are optimized for battery life and performance) and the specific OpenAL implementations we use are very different. (Notice that Apple itself has different bugs in their OpenAL frameworks between Mac and iOS.)
So when we ask if the bug is common across all our platforms or specific to a particular platform, it helps us track down where the problem might be.
And this isn’t unique to Corona. All cross-platform frameworks have the same challenges. This is just how its done. And each cross-platform framework must make various trade-offs. And there are numerous trade offs. For example, since not all platforms give the same features and level of control, do we make simpler APIs that are common to all, or do we make complex APIs that don’t work consistently for all sub-features? Another example is performance. Do we try to support everything under the sun including a classic Commodore 64, or do we target more specifically. All these trade offs have an impact on the end API because they make things simpler or more complex.
[import]uid: 7563 topic_id: 17492 reply_id: 66856[/import]