It used to be time-consuming to port apps between iOS and Android devices due to differences in the development environments, Xcode and Eclipse ,and the programming languages, Objective C and Java. Plus, there has always been the fragmentation of devices and screen resolutions on Android devices to contend with.
Thankfully, due to several emerging cross platform development environments, it is becoming easier and quicker to develop for both iOS and Android simultaneously. Here are 3 popular tools.
Gideros allows you to build apps for iOS and Android very quickly from within its easy to use, integrated development environment (IDE). It includes a built in player for rapidly testing your apps on your computer at multiple screen sizes/resolutions – which is very handy when developing for several Android devices. The most useful and innovative feature of the player software, though, is that you can install it onto your iOS or Android device and build your app to it wirelessly. This gives you the ability to modify and test your app immediately, which is a huge time saver.
For game developers, it is worth noting that Gideros includes an implementation of the Box2D physics engine.
Gideros is based upon the Lua scripting language, which is really easy to learn. It is completely free to use but costs $149 per year to remove the Gideros splash screen from your apps.
It is surprisingly easy to get up and running with Corona. Like Gideros, it uses the Lua scripting language which is straightforward to understand. I was quickly able to build an app in my text editor and get it running on the built in Android simulator. Corona also includes the Box2D physics library for game development.
One point to note about Corona – you will need to upload your project to their server in order for it to be compiled into a usable app. With the other development environments mentioned here this is not the case and you are able to create builds on your own computer.
Corona is available on a free unlimited trial but costs $199 per license per year to publish to the App Store and Android marketplace.
If you are developing a 3D app or, in particular, a 3D game for mobile, Unity is the market leading development environment. It has the ability to build for iOS, Android and the web. Unity has been designed as a visual tool, to reduce the amount of coding you have to do and to make creating apps more intuitive. Instead of writing code you are able to make connections between objects by dragging from one to another. In Unity, you are able to see graphical representations of your objects in 3D. It takes some getting used to, but once you do it becomes much more intuitive than working entirely in code.
To run a Unity iOS or Android build on a device you will need to purchase a license, currently priced at $400 per platform. However, unless you buy the Pro version of Unity 3D, currently $1500 per platform, you will see a Unity splash screen every time your app loads.
In conclusion, if you are considering making a 3D cross platform app then Unity3D is the obvious choice. It is possible to make 2D apps with Unity but, for me, this would be like using a sledgehammer to crack a nut. For 2D apps, my favorite cross platform development environment at the moment is Gideros – primarily for its ease of use, wireless player software and because you can build apps independently, without needing to upload your files to a server.