Jede Plattform hat ihre Eigenheiten, und die "perfekte" Implementierung wird sich auf den kleinsten gemeinsamen Nenner aller Plattformen beschränken. Low-Level- und hardwarespezifische Anforderungen lassen sich am besten nativ erfüllen. Webbasierte Frameworks wie Sencha Touch oder jqTouch leisten jedoch gute Arbeit, wenn Sie lediglich möchten, dass Benutzer Inhalte einreichen/empfangen.
Sencha Touch wurde für iOS und Android entwickelt und die Version 1.1 des Frameworks unterstützt nun auch BlackBerry 6. Diese Apps sind in Javascript geschrieben und können als reguläre mobile Websites (*in Webkit-Browsern) veröffentlicht oder in PhoneGap als pseudo-"native" Apps verpackt werden. Im Falle von iOS haben Sie die Möglichkeit, die App in den App Store zu stellen.
Titanium von Appcelerator ist eine weitere Javascript-basierte Lösung, die in die Muttersprache Ihrer Wahl crosskompiliert wird.
Eine weitere Option ist Adobe Flash/Flex/Air. Sie können einmal schreiben und auf vielen Plattformen, im Web oder auf dem Gerät Ihrer Wahl veröffentlichen.
Denken Sie daran, dass all diese kompilerübergreifenden und plattformübergreifenden Lösungen ihren Preis haben. Sie erhalten mehr Plattformen für den Preis einer einzigen Entwicklung (plus das Erlernen des Frameworks und die Anpassung an die "Feinheiten" jedes Ziels), aber Ihre Anwendung erscheint vielleicht nicht so "ausgefeilt" oder hat keinen Zugang zu so vielen raffinierten Funktionen, wie sie native Anwendungen genießen. Das sollte man bedenken.
Viel Glück bei Ihren mobilen Unternehmungen.