Сначала вам нужно решить, какую мобильную платформу или платформы вы хотите поддерживать. Часто ваш выбор языка и набора инструментов будет полностью продиктован этим. Например, если вы хотите написать программное обеспечение для iPhone, вам нужно будет использовать Objective C (и использовать Mac), в то время как для телефонов на базе Android и устройств BlackBerry требуется Java. Устройства Windows Mobile и Symbian изначально поддерживают C / C ++ и собственные проприетарные API, но вы можете использовать такие инфраструктуры, как Qt , чтобы упростить задачу (и переносить между ними). Windows Mobile, в частности, также поддерживает множество других платформ, работающих поверх базовой ОС, таких как слегка ограниченная версия .Net или Java (но привозит свою собственную JVM).
Один общий знаменатель между ними - веб-приложения. Если вам нужна единая кодовая база, которая будет работать везде и не использует полностью проприетарный набор инструментов, вы можете создать веб-приложение.