
Cita: Originalmente Escrito por
mocelet
En realidad es que no hay ninguno

Ni siquiera Xamarin o RoboVM, esos sirven para ejecutar código Java en iOS, y por tanto sirve para reutilizar la lógica de la aplicación o para llamar a métodos de iOS como si fueran de Java. Pero no "te pasan la app a iOS".
Si tu app llama a métodos de Android, antes de convertirla tendrás que sustituir todas las llamadas específicas de Android por su equivalente de iOS. Libgdx de hecho hace eso, tiene un API genérica sobre la que implementas el juego (para que no tengas que escribir nada que use el API de Android) y distintas implementaciones del motor que al final acaban llamando a métodos propios de la plataforma destino.

Inciso técnico, Xamarin es C#, yo lo estuve usando un tiempo (la licencia gratuita que las apps sólo funcionan hasta 24 horas después desde la compilación) porque llevo programando para Windows en C# desde 2002 y porque me lo habían vendido como multiplataforma, al final me dí cuenta que multiplataforma una mierda porque toda la lógica de Android tenías que escribirla por un lado y toda la lógica de iOS por otro, sólo que en C# en lugar de en Java o Objective C (ahora Swift), al final sólo te ahorrabas la parte del modelo, que podía ser común, pero también es la más fácil de añadir y modificar. Pero también hay veces que los modelos son distintos en ambas plataformas por necesitar cosas en una que no necesitas en otra, por ejemplo el tema de Push en iOS se gestiona desde fuera y no desde la app.
En cuanto al resto, es así, LibGDX aunque sea Java NO ES ANDROID, sino que usa sus controladores y vistas propios que hacen llamadas a los propios de cada plataforma cuando compilas.
De todas formas sigo pensando que es mucho mejor programar de forma nativa siempre y cuando tengas la posibilidad, depender de lenguajes de terceros te obliga a que las novedades de cada nueva versión las tengas cuando las incluyan ellos, y no cuando la incluya el fabricante.
Sin ir más lejos, y para que te hagas una idea (y una cosa que habla muy mal de Apple, que me tienen hasta los mismísimos, además de su tiempo lento, lento, lento en aceptarte una app o una actualización) es que las Push en iOS 7 no son compatibles con las Push en iOS 8. Si tienes una app desarrollada para iOS 7 que usa Push funcionará bien en iOS 7, pero no lo hará en 8, y viceversa, para iOS 8 tienes que usar métodos sólo presentes en iOS 8. Al final esto se soluciona preguntando que versión se está ejecutando, y usar un método u otro. Pero si el día en que salió iOS 8 quieres actualizar tu app para que use las notificaciones nuevas, si programas en nativo no tendrás problemas, si programas en LibGDX, Xamarin o RoboVM, tendrás que esperar a que lo añadan los desarrolladores de cada uno de los entornos.