Developpez.com

Le Club des Développeurs et IT Pro

J2ObjC : l'outil de portage de Java vers Objective-C de Google

Vient d'être mis en ligne, il est open-source

Le 2012-09-17 12:28:23, par Hinault Romaric, Responsable .NET
Bonne nouvelle pour les développeurs Java qui souhaitent cibler iOS sans toutefois se mettre à l’Objective-C.

Google vient de publier sur son blog dédié aux outils open source une application pour la conversion du code Java en code Objective-C.

Le projet J2ObjC a pour objectif de permettre aux développeurs de partager facilement du code qui n’est pas utilisé pour l’interface utilisateur (logique métier, accès aux données, etc.) pour les applications Android, les applications Web (qui utilisent le serveur GWT) avec iOS.

J2ObjC convertit les classes Java en classes Objective-C qui utilisent directement le framework iOS Foundation. Il prend en charge Java 6 et la plupart de ses fonctions d’exécution qui sont requises par les développeurs d’applications coté client, y compris les exceptions, les classes internes et anonymes, les types génériques, les files, etc. La conversion et l’exécution des tests JUnit sont également prises en charge.

Lors du processus de conversion, J2ObjC génère un fichier de mappage qui définit la conversion des méthodes Java en méthodes iOS Foundation.

À titre d’exemple le code Java suivant :

Code :
1
2
3
4
int getLength(List<String> list, int index) {
  return list.get(index).length();
}
sera traduit en :

Code :
1
2
3
4
(int)getLengthWIthJavaUtilList:(JavaUtilList *)list withInt:index {
  return [(NSString *) [list getWithInt:index] length];
}
J2ObjC peut être utilisé avec la plupart des outils de génération, y compris Xcode, Java for OSX et Make. Il est actuellement entre le stade Alpha et Beta, et a déjà été utilisé par Google pour plusieurs projets internes.

J2ObjC est disponible sous licence open source avec sa documentation et des guides pour son utilisation sur le site Google Code.

Télécharger J2ObjC

Source : Google

Et vous ?

Que pensez-vous de cet outil ?
  Discussion forum
8 commentaires
  • Hizin
    Modérateur
    Ha, merci.

    Faudra que je teste ça, moi.
  • Gugelhupf
    Modérateur
    C'est sympa de la part de Google mais quel est l'intérêt pour celui-ci de publier un tel utilitaire ?
    Serait-ce vraiment pour nous simplifier la vie ?
    Quels sont les enjeux ?
  • o.deb
    Membre du Club
    Envoyé par Gugelhupf
    C'est sympa de la part de Google mais quel est l'intérêt pour celui-ci de publier un tel utilitaire ?
    Serait-ce vraiment pour nous simplifier la vie ?
    Quels sont les enjeux ?
    Google a clairement un intérêt à ce qu'on utilise cet outil, mais s'il peut nous servir, et qu'en plus il est open source, pourquoi s'en priver?
  • patate_violente
    Membre régulier
    Envoyé par o.deb
    Google a clairement un intérêt à ce qu'on utilise cet outil
    Il se serait appelé ObjC2J j'aurais compris immédiatement mais là je crois plutôt que Google veut qu'on améliore avant tout son logiciel opensource.

    Après on peut penser que Google voudrait qu'on développe d'abord pour Android avec pour raison que le passage à iOS est ensuite assisté... Mais je ne suis pas sûr que ce soit bien valable.
  • stephgil29
    Membre actif
    Envoyé par patate_violente
    Il se serait appelé ObjC2J j'aurais compris immédiatement mais là je crois plutôt que Google veut qu'on améliore avant tout son logiciel opensource.

    Après on peut penser que Google voudrait qu'on développe d'abord pour Android avec pour raison que le passage à iOS est ensuite assisté... Mais je ne suis pas sûr que ce soit bien valable.
    Pourtant cela me semble très pertinent comme façon de voir les choses. L'important pour eux c'est que pour chaque application qui existe sur IOS il y ai la même sur Android. Donc si tu écris ton application d'abord pour Android, elle existera forcément...
    Maintenant je dois reconnaître que pour nous, le plus important c'est que la tache soit facilité. En écrivant qu'une fois l'application, si elle peut être disponible sur 2 plateformes, ce n'est que du bénéfice. Maintenant reste à juger la bête en action... Outils sérieux ou grosse séance de débogage à chaque portage ???
  • jmini
    Membre éprouvé
    Envoyé par stephgil29
    Maintenant reste à juger la bête en action... Outils sérieux ou grosse séance de débogage à chaque portage ???
    Entre les deux... Il semblerait que cela dépende du style Java employé... Certains sont bien supporté, d'autres non...

    2ObjC is currently between alpha and beta quality. Several Google projects rely on it, but when new projects first start working with it, they usually find new bugs to be fixed. Apparently every Java developer has a slightly different way of using Java, and the tool hasn't translated all possible paths yet. It's initial version number is 0.5, which hopefully represents its release status correctly.
    En fait ils ont besoin de plus d'utilisateurs pour compléter leur outil. Le confronter à d'autres styles de code...
  • kimimo
    Membre du Club
    Envoyé par patate_violente
    Après on peut penser que Google voudrait qu'on développe d'abord pour Android avec pour raison que le passage à iOS est ensuite assisté... Mais je ne suis pas sûr que ce soit bien valable.
    J'ai pensé comme toi, Google veut favoriser le développement des applications Android en premier. Et je trouve ça très astucieux de leur part.
    1) ce sera des développeurs Android qui feront des applications iOS et pas l'inverse. L'application Android devrait être de très bonne qualité quand à l'application iOS, c'est moins sûr.
    2) le point 1 entraînera une plus grosse communauté Android que iOS avec tous les avantages qui s'y rattachent
    3) une application générée automatiquement sera toujours moins bien adaptée qu'une application développée (performances, bugs, IHM), les applications Android seront donc de meilleure qualité
    4) toutes ces applications existeront d'abord sous Android et après sous iOS (l'inverse est souvent un argument contre Android)
    5) si le budget se resserre ou que le projet prends du retard, c'est iOS qui trinque
    ...

    Je pense donc que pour toutes ces raison (et d'autres), Google fait un très beau mouvement. Par contre, pas sûr que ça marche, à suivre...
  • chmo1021
    Inactif
    Bonjour

    Je ne crois tout de même pas que cela puisse être à 100% bénef pour Google, puisque les applications Android qui manquaient au store d'Apple, seront traduites et enrichiront le magasin par la suite.

    crdlt