J2ObjC: Herramienta para convertir Java (Android) en Objetive-C (iOS)

Uno de los mayores retos en el desarrollo de aplicaciones, es el hecho de depender de diferentes plataformas, lo que acaba obligando a contar con mucho tiempo o recursos para trasladar el desarrollo de un proyecto en una de las plataformas más usadas (Android, Windows, iOS o Blackberry) al resto, programadas totalmente diferente.

Y aunque este handicap nos va a acompañar presuntamente el resto de nuestra vida (al menos mientras se mantenga el negocio cerrado de plataformas), hay algunos productos que intentan aliviar parte del peso de la conversión, como es el caso de J2ObjC, herramienta que Google pone a disposición de cualquier desarrollador de forma gratuita.

J2ObjC permite la conversión automática de muchas de las funciones internas de Java a Objetive-C, por lo que ayuda hasta cierto punto para trasladar aplicaciones Android a iOS. La herramienta, proyecto de Open Source, está aún entre fase Alpha y Beta, por lo que tampoco esperéis milagros, pero de base promete. Su función viene en automatizar buena parte del código destinado a la lógica de la aplicación, dejando para el desarrollador el trabajarse la interfaz.

Después de echarle un ojo a la documentación, vemos que J2ObjC se encarga de eliminar código no usado en el otro lenguaje, hacer llamadas y declaraciones a destructores de memoria, convertir datos propios de Java a Obj-C y avisa en caso de que no sea capaz de convertir alguna función.

Con todo lo dicho, se ganan algunas horas de trabajo, y sobre todo el arduo inconveniente de no tener que definir una nueva lógica. Su función pasa por crear nexos comunes en el core del proyecto, con vistas a trasladar aplicaciones a otras plataformas o generar API multiplaforma. La pega, como es de esperar, es que si bien pasa de Java a Objetive-C, es incapaz de hacerlo al contrario, algo por otro lado comprensible, al ser la propia Google quien da luz a este proyecto (y sería contraproducente que se desarrollara para iOS y luego se convirtiera a Android).