Kivy: an open source cross-platform programming language for writing OpenGL-powered drawings, interfaces, visuals, anything, for Linux, Windows, MacOSX, Android and iOS. kivy.org
You can potentially drop using Android or iOS native widgets for Kivy widgets and you're apps will have the same OpenGL-powered interface on all platforms.
EDIT 9/27/11 1pm: I've done some more research. All in all, you should check out these 4 open-source frameworks for yourself and decide which one is best for you (I could list commercial frameworks, but those are easy to find):
- Kivy (kivy.org)
- Amazing GUI and Widgets library.
- HaxeNME (haxenme.org)
- Very nice 2D/3D API for making OpenGL graphics.
- Amazing cross-platform support. The best of all the frameworks.
- Unfortunately, no GUI or Widget library is built in though.
- Qt Quick QML (qt-project.org)
- Very nice 2D/3D API for making OpenGL graphics.
- Similar to HTML, but for OpenGL. Already know HTML and JavaScript? QML (Quick Markup Language) includes basic necessities like text fields, radio buttons, check boxes, etc, which can be animated and controlled with event handlers. Animations, event handlers, etc, in your QML application are written in JavaScript; the difference is the JavaScript gets compiled instead of interpreted.
- Qt Quick is really amazing; my personal favorite. Read up on Qt Quick QML then try the Animated Tiles app for Android to see Qt Quick's potential. The newest release of Qt (coming very soon) support iOS, Android, and Blackberry, and all desktop OSes. Windows Phone is a work in progress but will arrive soon considering that Qt Quick already supports Windows 8's Metro platform. Qt Quick is very nice, but it doesn't work on every single platform like HaxeNME does.
- MoSync (mosync.com)
- A hidden gem. This framework needs more exposure. The MoSync SDK provides a cross-platform OpenGL framework, an HTML/JavaScript framework similar to PhoneGap, a NativeUI framework for writing apps across platforms that use each platform's native UI widgets, and MAUI for writing C++ GUIs.
- If you were gunna settle on just writing pure OpenGL, then I'd at least recommend checking out MoSync, as it provides a 1-to-1 implementation of OpenGL ES 1.0/2.0.
Also, if your app will be form based (not so much animated like a game), then PhoneGap might suit your needs. If you use the right features of HTML5, you can make apps that feel native (unlike the many horrible and discouraging examples out there). If you'd like to try an app made with PhoneGap that feels "native", try "Go 2012". The Go 2012 apps proves that if you use HTML5 correctly, you can take advantage of hardware acceleration across platforms (iOS, Android, Blackberry, and Windows Phone (I tested it on all)). The animations (scrolling, etc) in Go 2012 are all CSS3 hardware-accelerated animations. Don't let the poor quality of most of the app in the PhoneGap showcase fool you!