So, the collection that follows are my notes I took when researching many of different cross-platform tools.
In doing background research for the cross-platform tools, they are great for basic app creation. But, app can quickly become non-basic as soon as they start accessing native APIs that are only available for a specific platform. Some of the biggest pain points with the cross-platform tools may be integrating other open-source codes, using multi-touch, gestures, and native UI features/paradigms. But, there are cross-platform mobile development tools that help with those features.
A big note on using cross-platform tools to create native apps: It is not “write once, run anywhere” (WORA). The idea of creating these native apps is to maximize code reuse and/or provide a higher abstraction level for development. Up to 50-95% of the code you write can be reused depending on the type of app you are creating.
These final choices I made are bias because I didn’t want to spend over $1000 for Unity3D. I don’t even want to spend $200 for MonoDroid/MonoTouch, but I will if I don’t care for the free options as follows. I chose these options mainly because of their documentation, sample APIs, developer communities, and active development. Both of the following are free up to a certain point, but because I am in academia I get to go a little further with the tools.
2. Titanium by Appcelerator
The following I’m not trying the following until at mid- to late- summer likely (because of cost, it can wait longer…)
1. MonoDroid/MonoTouch: ($99 academic rate per developer, per platform) The regular Mono library is free, but it is just an open source implementation of the .NET framework. It does not include tools for integrating with iOS or Android. Both of these tools integrate Mono into them.
More Specific Notes: (I take a lot of notes directly in Notepad++/Notepad)
Wikipedia also has a very long list of potential cross-platform tools to choose from. It may be helpful if you are trying to do more background research into the many different types of development tools that provide non-native code when compiling for different platforms.