Нет, на самом деле такого нет. Есть некоторые инструменты, которые уже доступны или ожидаются (Unity3D, Flash CS5, MonoTouch и т. Д.), Которые позволяют вам делиться значительными объемами кода между мобильными платформами, но если вы захотите написать один раз и развернуть, вы получите довольно плохое приложение .
Большая проблема в том, что устройства сильно отличаются. У некоторых есть акселерометры, у некоторых нет. Некоторые имеют жесткую клавиатуру, некоторые имеют мягкую клавиатуру, некоторые поддерживают мультитач, некоторые нет. Они варьируются от 64 МБ до 256 МБ оперативной памяти, их процессоры сильно различаются, а их размеры и разрешение экрана сильно варьируются. Интерфейс, который вы разрабатываете для мультитача с экраном 480x320, полностью отличается от того, который вы разрабатываете для чувствительного к давлению (стилуса) устройства с экраном 320x240.
Даже если вы смотрите только на Android, вам действительно нужно настроить интерфейс для множества различных устройств (на iPhone это немного проще, потому что есть всего несколько разных устройств и их возможности / функции довольно похожи).