Desenvolvimento

14 set, 2012

Google libera tradutor que converte código Java em Objective C

Publicidade

O Google liberou o J2ObjC, um tradutor que converte código Java em Objective C para iPhone e iPad. A ideia por trás do J2ObjC é permitir que desenvolvedores compartilhem código que não seja de interface de usuário de forma mais fácil entre dispositivos com Android ou servidores baseados em GWT que usam Java, e dispositivos com iOS que usam Objective C. O tradutor pode lidar tranquilamente com Java 6, apesar de ter sido descrito como de qualidade “entre alfa e beta”.

Atualmente, o processo de tradução envolve a conversão de java.lang.Object para NSObject, boolean para BOOL, byte para char, variáveis de instância para propriedades, inner class e classes anônimas viram outer class nomeadas, interfaces viram protocolos e os testes usando JUnit são convertidos em testes estilo JUnit. Em seguida, arquivo map define a conversão dos métodos Java em métodos da iOS Foundation. O processo é documentado em Design Notes e converteria, por exemplo,

int getLength(List list, int index) {
  return list.get(index).length();
}

em

- (int)getLengthWIthJavaUtilList:(JavaUtilList *)list withInt:index {
  return [(NSString *) [list getWithInt:index] length];
}

Como o código Java possui garbage collector, o tradutor também precisa gerenciar esse mapeamento.  Desenvolvedores podem especificar quando usar a contagem de referências (o padrão), garbage collector com libgc (com –use-gc) ou contagem automática de recurso (ARC, –use-arc) na hora da tradução. Os desenvolvedores esperam tornar o ARC o padrão no futuro. Eles não planejam desenvolver qualquer tradução para interface de usuário, mas, em vez disso, pretendem focar na tradução da lógica da aplicação e de elementos que não sejam de interface de usuário.

O tradutor pode ser integrado ao fluxo de trabalho de desenvolvimento do XCode IDE ou com Maven e Make. O J2ObjC está disponível a partir do site Google Code, onde documentação e guias sobre seu uso também são oferecidos.

Com informações de The H