"In addition, the VMs do garbage collection while an app is running, so the performance is non-deterministic," Thomas says. Running ARM code on the CPU, as Embarcadero does, eliminates the need for garbage collection. This improves performance and memory management, he says, "which is fully deterministic and non-invasive."
Single Language Mobile App Dev Offers Productivity Gains
When it comes to coding and maintenance, the whole point of these multi-platform development environments is that they should be easy to use and maintain. For example, Xamarin's use of C# means that it should appeal to Windows developers. Plus, with Visual Studio add-ins, developers can develop Windows, iOS and Android apps from a single, familiar environment.
However, as Gartner researcher Kirk Knoernschild points out, using a multi-platform environment doesn't necessarily mean you can develop for two platforms with the same effort that you would need to develop for one.
"If you want to take advantage of specific platform capabilities, you have to use platform-specific code," he says. "If you're only writing simple apps, you could have one code base - but as soon as you try and leverage exclusive platform features, you can't any more. For a complex app, the most you can hope for is 60 to 80 percent of the code [being] platform-agnostic."
Even if you have to write platform-specific code, Knoernschild says, there are still advantages to using a multi-platform environment: "You're writing in a single language, so there are still productivity gains to be had."
Mobile Apps Built With Cross-platform Tools Aren't Always Pretty
That just leaves the apps themselves - specifically, what they can access and what they look like. Here, there's potential problem when it comes to making apps: The interface elements don't always look exactly the same as true iOS or Android elements.
Embarcadero, for example, can call items such as the iOS or Android date picker so that they look identical to those that appear in "normal" iOS or Android apps. But buttons, on the other hand, are drawn to look like iOS or Android buttons without being identical. "Our iOS apps look close to true iOS apps," Thomas says. "There's not the same level of difference as the way that Java apps appear in Windows."
In the consumer space, there's a risk that apps that don't look like true iOS or Android apps simply won't be accepted. That's certainly the view of Dan Sensecall, co-founder of multi-platform mobile app developer TappCandy. "We only develop apps natively, as the end user experience is never the same if you use cross-platform development software like Embarcadero's," he says. "Frankly, the apps it produces look naff. The final quality is never as good."
Sign up for CIO Asia eNewsletters.