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.
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.
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.
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.