Google-Java

Google a publié J2ObjC, un traducteur qui convertit du code Java en Objective C pour iPhone et iPad par exemple. L'idée derrière J2ObjC est de permettre aux développeurs de partager du code non-UI plus facilement entre des périphériques Android ou des applications GWT qui utilisent Java avec des appareils iOS utilisant Objective C. Le traducteur peut traiter du code Java 6 qui est décrit comme "actuellement entre une phase alpha et bêta de qualité."
Le processus de traduction consiste actuellement en la conversion de :
  • java.lang.Object à NSObject
  • boolean à BOOL
  • byte à char
  • Les variables d'instance deviennent des propriétés
  • Les classes inner et anonymous sont converties en classes spécialement nommées pour ces cas.
  • Les interfaces deviennent des protocoles
  • Les tests JUnit sont converties en une version assez spéciale
  • Un fichier de mapping définit ensuite la conversion des méthodes Java en méthodes Foundation iOS.
Ce processus est documenté dans le Design Notes et permettrait par exemple de transformer ceci :
1int getLength(List<string> list, int index) {
2  return list.get(index).length();
3}</string>
en ceci :
1- (int)getLengthWIthJavaUtilList:(JavaUtilList *)list withInt:index {
2  return [(NSString *) [list getWithInt:index] length];
3}
Comme le code Java est garbage collected, le traducteur doit également gérer le mapping dans son ensemble. Les développeurs peuvent spécifier si celui-ci utilise le comptage de référence (valeur par défaut), le garbage collection avec libgc (en mettant --use-gc) ou bien l'Automatic Resource Counting (ARC en mettant --use-arc). Les développeurs espèrent mettre l'ARC par défaut dans les prochaines releases mais n'ont pas l'intention de développer une interface utilisateur multi-plateforme et préfèrent se concentrer sur la traduction de la logique applicative et d'autres éléments non-UI.
Le traducteur peut être intégré dans le workflow de développement de l'IDE Xcode 4 ou bien avec Maven et Make. J2ObjC est disponible sur Google Code avec la documentation et les guides.

Enregistrer un commentaire

 
Top