Cross Platform Mobile Application Development
After my recent experience with mobile game development, I decided to reflect on the experience a bit and share a few thoughts.
These days the absolute winner mobile plaform is iOS, meaning iPhones and iPads. It’s popular and very uniform. Hardware is the same, saving lots of time from testing. Androids and Windows Mobile phones have lots of variety, making it harder to create applications that work on all phones / devices in the platform type. Symbian and Linux based are very marginal at the moment, so I wouldn’t put attention there much. For development, testing, popularity and usability.. It seems to me that the iOS is the winner.
Let’s look at iOS programming then. You can go with the objective C programming or with a cross platform development. There are advantages to both approaches.
Objective C is different from C / C++, but you’ll learn it quickly if you know C/C++ and objective oriented programming. The environment requires a Mac, and the most recent OS. Simulating Mac on a PC is not a good solution, although you might try it out. The good news is that xcode is an excellent environment for development. Code completion is better than anything I have seen before. It also optimizes the code really effectively. Downside is that there is a lot of code that you need to write. Also, you need to use a framework like Cocos2d and box2d to handle graphics, audio and physics effectively. Porting to another iOS device is relatively easy with universal framework, but it does take some coding.
For faster development, cross platform support and built in coocs2d/box2d support we chose Corona SDK. Development is on LUA, which is a very simple language. Development can be very fast. Downside is its lack of stability with larger programs and things like memory management. If you start with Corona SDK, you’ll love it how fast you can get the first version up, but you’ll seriously miss the xcode’s IDE and optimizing capabilities. The best IDE for corona SDK is LUA Glider. Most game development tools work with Corona SDK that work with xcode: sprite helper, level helper, texture packer, physics editor… Corona SDK is very easy to port on different devices: iPad, iPhone, Android, Windows… Simply compile it and see if the screen size makes a difference in usability.
There are plenty of cross platform systems like Corona. They all seem to be heavy on performance and battery. If I had to choose another platform for a large project with cross platform capability, I would consider unity. It’s quite heavy for the performance, not the fastest to program (LUA is not an option), but it does have a good cross support and speeds up development overall.
As a summary… Depending on your application’s nature (Game, business tool, cross platform etc) select your platform wisely. If you want to get something quickly up and running, consider Corona SDK. If you want performance and stability on majority (not all) of devices, choose objective C with xcode. If you want a massive multi platform development, consider Unity.
Feel free to contact me to chat more how my experience can help you with your project.