The problem with programming for both iPhone and Android is that Android uses open technologies, while iPhone uses apple's own breed of C, called Objective-C, that doesn't seem to be used anywhere outside of iThings.
HTML5 is a good choice, but even though it was thought as the new programming wonder, that initial hype has gone cold over problematic and incomplete implementations on most platforms; it's taking way too long to be fully supported. Still, I guess this is just a question of time.
Also consider Gamesalad, Construc2, Stencyl, GameMaker and other similar, usually ignored, but one of these is what I probably would pick (personally) for mobile. They are cheaper than Unity, and you can make games just as fast. There is also http://enigma-dev.org/, and other open source alternatives.
You could also use Objective-C, and then port to Android using Apportable, but I personally recommend Unity and those cheaper tools over this any day.
A last option that comes to mind (and really not suited to any beginners) is programming in C and keeping a clean and thin interface; just a little portion of the code would need changes when moving from Android NDK to the Objective-C iOS API (or vice versa).
The only thing I wouldn't recommend is using Flash or Java, since you'd need to rewrite your game completely in order to release for iThings.