J2Objc : Traduire un code Java en Objective-C

Android et Apple
Apres avoir pris la tête du marché des systèmes d’exploitations pour mobile avec Android, grâce a l’ouverture de ce dernier. Google pousse le bouchon encore plus loin en mettant à disposition des programmeurs un outil de traduction qui traduit le Java (langage utilisé par Android) en Objective-C (langage utilisé par iOS). Une initiative plutôt intrigante !



Explications de Google : Le but principal derrière cette initiative est de permettre aux programmeurs d’applications Android d’étendre leurs applications à iOS Dans un marché ou la concurrence fait rage, ainsi ils pourront toucher plus d’utilisateurs. L’autre but est d’éviter au programmeur d’être dans le dilemme « programmer pour Android ou pour iOS ? » ainsi leur choix se portera automatiquement pour l’OS de Google.

Du coté technique J2Objc gère uniquement la logique du programme, Google préférant laisser la gestion des interfaces à l’outil de développement Xcode.
Les développeurs de J2Obc ont néanmoins du faire face à quelques problème techniques en relations avec les spécificités de chaque langage.

Exemple d’utilisation de J2Objc :
Code ‘Hello World’ en Java :

public class HelloWorld {
        public static void main(String[] args){
                for (int i=0; i<5; i++){
                        System.out.println("Hello World " + (i + 1));
                }       
        }
}

Transformation du code (sous une console Linux par exemple) :

./j2objc HelloWorld.java 

Code 'HelloWorld.h' en Objective-C :

//
//  Generated by the J2ObjC translator.  DO NOT EDIT!
//  source: HelloWorld.java
//
//  Created by willard on 19.09.12.
//

@class IOSObjectArray;

#import "JreEmulation.h"

@interface HelloWorld : NSObject {
}

@end

Code de 'HelloWorld.c' en Objective-C :

//
//  Generated by the J2ObjC translator.  DO NOT EDIT!
//  source: HelloWorld.java
//
//  Created by willard on 19.09.12.
//

#import "HelloWorld.h"
#import "IOSObjectArray.h"

@implementation HelloWorld

@end

int main( int argc, const char *argv[] ) {
  NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
  IOSObjectArray *args = JreEmulationMainArguments(argc, argv);

  for (int i = 0; i < 5; i++) {
    NSLog(@"%@", [NSString stringWithFormat:@"Hello World %d", (i + 1)]);
  }
  int exitCode = 0;

  [pool release];
  return exitCode;
}

Voir plus : Google j2objc

J2Objc : Traduire un code Java en Objective-C
Rate this post

1 COMMENTAIRE

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here

 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.