¿Cuál es, en su opinión, la mejor manera de resolver este inconveniente si escribe una aplicación para iOS y Android?

Escriba su aplicación en un idioma que sea compatible con todas las plataformas móviles en las que desea lanzar, utilizando un kit de herramientas que las soporte. Muchos desarrolladores sin experiencia piensan que tienes que escribir aplicaciones iOS en aplicaciones Objective-C y Android en aplicaciones Java y Windows Phone en C #. Por lo general, todo lo que se necesita es un pequeño código de pegamento en el idioma preferido de la plataforma, y ​​el otro 95% de la aplicación puede ser una base de código único.

Idiomas:

C / C ++ son compatibles de forma nativa en las herramientas de desarrollo de Apple, Microsoft y Google. También es compatible con una tonelada de otros SDK de terceros.

Javascript + HTML / CSS es compatible con una serie de soluciones de empaque de terceros como Intel XDK, PhoneGap y Appcelerator en varias plataformas.

Adobe tiene una solución para desarrollar para iOS y Android usando ActionScript.

C # es compatible con Unity (motor y marco de juego) en varias plataformas.

LUA se puede usar con Corona

…hay otros. Lo más probable es que haya un marco que admita el uso de su idioma de elección.

Kits de herramientas:

Hay un montón de kits de herramientas de terceros destinados a todos los diferentes tipos de aplicaciones. Algunos de los más populares son:

Unity3d (Juegos)
Cocos2d-x (Juegos)
Mermelada (Juegos, Multimedia)
Qt (Aplicaciones)
Juce (Aplicaciones)
FMOD (audio)
SFML (Multimedia)

Hay un montón de estos. Busque qué tipo de aplicación desea o qué tipo de kit de herramientas necesita y es probable que tenga múltiples opciones.

… Y no es tan difícil codificar su aplicación para usar las API multiplataforma ya disponibles en iOS y Android: libc, OpenGL-ES, sockets POSIX.

Prefiero usar C / C ++ y la mayor cantidad de bibliotecas estándar son posibles: libc, OpenGL, BSD Sockets, etc. Casi todas las plataformas exitosas tienen un compilador C / C ++, y no parece que eso cambie pronto. Cualquier cosa construida sobre un sistema operativo similar a Unix generalmente tendrá muchas de las mismas bibliotecas de bajo nivel. Si no es así (como Windows Phone), muchas veces lo que tiene se basa en esas bibliotecas. El audio es probablemente el problema más difícil de resolver multiplataforma, pero hay varias bibliotecas de audio multiplataforma disponibles y se están comenzando a adoptar API estándar. Solo asegúrese de poner una capa de abstracción entre la aplicación y cualquier código nativo para que la mayoría del código permanezca portátil.

en realidad tienen que escribir muchos más
Según tengo entendido, un iPhone es un iPhone es un etc …
escribe una aplicación y listo

Mover a Android y los fabricantes modifican su sistema operativo. Entonces los transportistas los retocan aún más. Entonces tienes que hacer revisiones después de las revisiones, etc. para trabajar en todos los androides

Xamarin es una buena solución. Escriba en un idioma y comparta código entre plataformas.