Objective C к [закрытому] кросс-компилятору Java

7
задан Mantas Vidutis 8 May 2010 в 01:26
поделиться

4 ответа

Я не слышал о кросс-компиляторе, который бы делал то, о чем вы спрашиваете. Даже если бы он существовал, большая проблема была бы в том, что фреймворки (UIKit, CoreAnimation и т.д.) сильно различаются между двумя платформами. Без какого-то общего фреймворка весь код, взаимодействующий с фреймворками, придется переделывать.

7
ответ дан 6 December 2019 в 14:01
поделиться

Ни в коем случае. Вообще, перевод с низкоуровневого языка, такого как C, на (хоть немного) более высокоуровневый язык, такой как Java, приведет к очень неоптимальному коду.

Но это еще не самое худшее - вам также придется переводить между двумя чрезвычайно разными моделями приложений. Вам придется либо заново реализовать большую часть Cocoa Touch как "шим" под Android, либо попытаться понять, что на самом деле делает приложение iPhone, и переделать эквивалентные идиомы Android.

Гораздо более вероятным путем было бы что-то вроде GNUstep, но я не знаю, рассматривает ли кто-нибудь всерьез реализацию слоя UIKit для GNUstep, и в итоге вы получите нативное приложение, а не Java-приложение.

3
ответ дан 6 December 2019 в 14:01
поделиться

Есть один проект, называемый XML Virtual Machine, который делает что-то похожее на то, что вы спрашивают. Я интересовался этим до того, как познакомился с Objective-C. Насколько я знал, кросс-компиляция с Java на iPhone возможна (с некоторыми ограничениями). Проект все еще находится в разработке. Вы можете проверить его веб-страницу по адресу Веб-страница XML VM .

Возможно, ppl из XML VM сможет ответить на ваш вопрос (если они планируют создать кросс-компиляцию из Objective-C в Java).

Но я по-прежнему утверждаю, что создание приложения дважды (для каждой платформы с использованием разных языков и инструментов) определенно даст лучшие результаты.

1
ответ дан 6 December 2019 в 14:01
поделиться

Проблема с таким компилятором в том, что он будет создавать ужасные приложения. Android имеет (лучше) другую модель структуры приложения - в то время как приложение iPhone является более традиционным, приложение Android гораздо лучше интегрировано в систему (через активности, представления, сервисы и намерения).

Самой большой проблемой является не основной код, а UI и системные библиотеки. Если все представления будут XIB, есть небольшая надежда.

-1
ответ дан 6 December 2019 в 14:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: