J2ObjC. Derrière ce nom barbare (Java to Objective-C) se cache un outil qui va vous permettre de traduire votre code Java en Objective-C, principal langage de la plateforme iOS (iPhone et iPad).

Pour développer sur un iPhone, il vous faudra utiliser le langage Objective-C. Sur Android, il s’agit d’une base Java complétée par le framework Android. Grâce à l’outil J2ObjC, vous avez dorénavant la possibilité de traduire vos classes Java en fichier d’extension « .m ».

Pour ce faire, rendez-vous sur le site du projet et téléchargez l’outil. Lancez votre terminal et utilisez la commande suivante :

j2objc [-classpath path] [-sourcepath path] [-d outputDirectory] <file.java>

Le principal intérêt pour Google de développer un tel outil est évident. A l’heure d’aujourd’hui, les développeurs d’applications sont les principaux moteurs de l’essor considérable des smartphones. Il est important de garder ceux qui ont déjà développer sur la plateforme mais il faut également en recruter de nouveaux. Google espère ainsi, grâce à ce projet, amener d’avantages de développeurs qui hésitent encore entre les deux plateformes.

L’une des question principale que l’on peut se poser concerne la gestion de la mémoire du téléphone, différente entre un smartphone Android qui possède un garbage collector et iOS qui n’en a pas. J2ObjC propose trois options lors de la génération des fichiers. Par défaut, la méthode du comptage de référence va être utilisée, la norme chez Apple. J2ObjC peut également garder le garbage collector qui est bel et bien présent sur MacOS. Laissez-tomber cependant si vous souhaiter traduire pour iOS. Enfin, J2ObjC gère l’Automatic Resource Counting, gestionnaire de mémoire recommandé par Apple mais qui est encore très récent. Le projet convergera par ailleurs sur cette dernière méthode dans le futur.

Autre élément important à prendre en considération, le projet J2ObjC ne prend pas en compte l’interface graphique. Autrement dit, seules les classes Java sont traduisibles et toute la partie graphique n’est pas générée en Objective-C. La raison est simple : l’interface utilisateur Android diffère en de nombreux points de celle d’iOS. Google s’intéresse seulement au code propre au moteur de l’application.

Le projet est open-source, en version 0.5, jongle entre beta et alpha et est disponible au téléchargement par ici.