Java es un lenguaje que ya lleva mucho tiempo entre nosotros y probablemente tiene la madurez necesaria para encarar cualquier problema de computación. Por ello, es interesante que ahora, con el proyecto RoboVM, la gente pueda codificar en Java y no en Objective C o Swift, para generar apps para iOS. Para ser más preciso, RoboVM genera bytecode para el compilador ARM, el cual puede codificar para cualquier lenguaje que soporte la JVM (Java Virtual Machine).
La pregunta obvia es ¿cómo acceder al entorno iOS desde Java?
La respuesta es que hay ahora un puente Java-Objective C, que permite llamar cualquier función nativa del API del entorno que se requiera usar. Los objetos de Objective C pueden ser usados como si fuesen objetos en Java. El resto del código en tiempo de ejecución lo da en eltorno de Android menos cualquier cosa que se haga con la interfaz gráfica.
La inevitable mala noticia es que se necesita una Mac y XCode para usar RoboVM. Como el entorno de desarrollo es Eclipse o la línea de comandos, el programador podría usar probablemente cualquier otro sistema para codificar una app, pero si se quiere correr el código compilado de nuevo: se necesita una Mac. Se puede correr la app en un simulador o en el dispositivo real.
La últíma versión ha sido actualizada a la última clase de Android del runtime, KitKat 4.4.3, y el XCode beta 2 con iOS 8 beta. Hay algunos pequeños cambios a considerar en el entorno táctil del nuevo Cocoa: GameKit, MultipeerConnectivity, ExternalAccesory y GameController. RoboVM es pues una manera en donde se puede usar el conocimiento de Java, o de cualquier otro lenguaje VM, para crear apps iOS y evitando el tener que aprender Objective C o el nuevo Swift.
Sin embargo, dado que se puede crear código compilable para x86, tal vez tenga inclusos más usos. ¿Por qué no una versión de Android que compile bytecode en código nativo ARM o código x86? Sin duda un interesante proyecto que merece el apoyo de todos los programadores, amén de que, además, es código abierto.
Referencias: