Насколько сложно заставить приложение Какао работать в Windows?

В статье википедии о Какао говорится:

Существуют также реализации с открытым исходным кодом основных частей инфраструктуры Какао, которые позволяют разрабатывать кроссплатформенные (включая Microsoft Windows) приложения Какао, такие как GNUstep, Капучино и Cocotron.

Тем не менее, когда я выяснил, доступно ли приложение Mac Tweetie для Windows, у разработчика было исключил:

В Windows нет Какао, среды программирования, в которой создан Tweetie, как таковая, кажется маловероятной.

Я хотел бы получить ответ, чтобы указать разработчиков Tweetie (и в качестве ресурса для других разработчиков какао), которые сказали бы им:

  • Какая реализация наиболее подходит для запуска приложения какао в Windows?
  • Сколько времени потребуется, чтобы приложение работало под Windows?
  • Насколько легко / сложно поддерживать общую базу кода для Mac и Windows?
  • (какие-либо другие соображения, которые я пропустил?)

Конечно, если это будет слишком много работы, я бы тоже хотел знать об этом, прежде чем предлагать это и, возможно, отправлять кого-то еще на бесплодный поиск.


person Sam Hasler    schedule 26.04.2009    source источник
comment
Почему отрицательные голоса? Это правильный вопрос, даже если ответ отрицательный.   -  person Sam Hasler    schedule 26.04.2009
comment
Серьезно, этот вопрос беспричинно критикует.   -  person John Leidegren    schedule 26.04.2009
comment
+1 Мне было интересно то же самое.   -  person Zifre    schedule 26.04.2009
comment
Думаю, это могло быть потому, что я начал с разговора о Твити, который должен был появиться в списке вопросов. Я изменил его формулировку, чтобы содержание в верхней части страницы было больше по теме.   -  person Sam Hasler    schedule 26.04.2009


Ответы (3)


Не забывайте:

  1. «Основные части фреймворков Какао» не то же самое, что «все фреймворки Какао». Твити может использовать что-то, чего не хватает.
  2. Tweetie может (очень вероятно) использовать API из фреймворков, отличных от Cocoa, таких как Core Foundation, Core Services, Core Graphics и Core Animation. Один только порт фреймворков Какао не будет включать ни один из этих API, и даже более полный фреймворк эмуляции Mac-API не будет включать их все.
  3. Эти фреймворки вечно гонятся за Apple. Даже если они догонят, они сразу же отстанут от следующего выпуска Mac OS X. Разработчики Mac уже откладывают использование новых API-интерфейсов в новых выпусках Mac OS X, пока они ждут, пока пользователи обновятся до этих новых выпусков; теперь вы просите atebits также дождаться, пока разработчик другого фреймворка снова догонит Apple.
  4. Любая вторая реализация существующего API будет содержать ошибки, которых нет в первой реализации, и наоборот. Эти различия вызовут проблемы при разработке и поддержке.
  5. Вы просите atebits добавить третью платформу к приложению, которое уже существует на двух. Поддержка одной платформы - это большая работа. Поддержка двух платформ - это чертовски много работы. Поддерживая троих? Теперь вы попадаете на территорию большой компании.

Итак, даже с этими фреймворками, похожими на Какао, ответ: сложно.

person Peter Hosey    schedule 26.04.2009
comment
RE: пункт 2. Кокотрон говорит, что это включает в себя среду выполнения AppKit, Foundation, Objective-C и поддерживает API, такие как CoreGraphics и CoreFoundation. - person Sam Hasler; 14.08.2009
comment
Таким образом, он попадает во вторую половину последнего предложения, поскольку в нем все еще отсутствуют важные фреймворки, такие как Core Services (которые, среди прочего, включают Launch Services) и Address Book. - person Peter Hosey; 14.08.2009

Среди GNUstep, Cappuccino и Cocotron, Cocotron - единственный возможный выбор для переноса приложения Mac на Windows. Cappuccino предназначен для Интернета, а GNUstep работает только поверх cygwin или mingw, что означает, что графический интерфейс не похож на собственные приложения Windows.

Теоретически можно создавать приложения для окон какао с помощью Cocotron. Однако реальность такова, что его по-прежнему очень сложно использовать, и он все еще довольно ограничен в Cocoa API.

Поэтому два возможных решения:

  • Постарайтесь удалить коды, которые не поддерживаются Cocotron в исходной кодовой базе, и выполните кросс-компиляцию. Поддержание общей кодовой базы будет болезненным.
  • Start a new GUI at all, no common code base. two choices here
    • Start a cross platform project with cross application framework such as Qt, or Java.
    • Запустите проект только для Windows. Здесь есть много вариантов: приложение .Net WinForm, MFC и т. Д.
person lyxera    schedule 26.04.2009
comment
похоже, что страница Википедии неверна и требует редактирования. - person Sam Hasler; 26.04.2009
comment
Третий вариант - реализовать необходимые элементы в Cocotron и внести их в проект, это открытый исходный код. Конечно, это может быть разной сложности, но люди уже делали это по разумным ценам. Чем больше людей это делают, тем меньше приходится делать каждому. Если вы знакомы с Cocoa и у вас уже написано приложение, то объем работы, связанной с отказом от него, и функции, которыми вы пожертвуете для другой инфраструктуры графического интерфейса, могут быть больше работы, чем просто реализация необходимых вам частей в Cocotron. Кое-что нужно иметь в виду, конечно же, YMMV. - person Christopher Lloyd; 28.04.2009

Существуют компиляторы Windows для Objective-C (язык программирования, используемый для писать приложения какао). Однако какао включает в себя рамки для представления графического интерфейса пользователя. Эти визуальные рамки специфичны для Mac OS X, поскольку они используют только окна OS X и другие элементы управления. Таким образом, кому-то потребуется повторно реализовать элементы управления в Какао, чтобы использовать элементы управления Windows.

Кроме того, я совершенно уверен, что Tweetie использует только технологии Mac OS X, такие как Core Animation. Этого нет в Windows, поэтому красивые эффекты анимации, присутствующие в приложениях, должны быть реализованы совершенно по-другому.

person zpesk    schedule 26.04.2009
comment
А как насчет реализаций фреймворка какао из цитаты из Википедии в моем вопросе? - person Sam Hasler; 26.04.2009
comment
А если есть компиляторы Objective-C для windows, что это такое? предоставьте ссылки. - person Sam Hasler; 26.04.2009
comment
добавлена ​​ссылка для получения дополнительной информации о компиляции объекта c в Windows - person zpesk; 26.04.2009
comment
В пакете компиляторов gcc одним из поддерживаемых языков является Objective-C, в том числе для Windows. Лучше всего взглянуть через GnuSTEP. Я пробовал это несколько лет назад как в Linux, так и в Windows. Но если вы кодируете с нуля для мультиплатформенности, Qt, возможно, будет лучшим подходом. Теперь он действительно с открытым исходным кодом и имеет встроенную возможность создания сценариев (с использованием JavaScript). - person akauppi; 26.04.2009
comment
Статья О'Рейли стара, поскольку в ней не упоминается Кокотрон. Cocotron поддерживает ветку gcc, которая имеет больше недавних дополнений Apple к Objective-C, чем базовый уровень, включает среду выполнения Objective-C, которая имеет API, более близкий к API Apple, чем API GNU, и имеет функциональные реализации Foundation, AppKit и CoreGraphics. Работа над ним еще не завершена, но некоторые люди уже перенесли с ним коммерческие и собственные приложения. Что касается Tweetie, он явно использует CoreAnimation. Нет причин, по которым CA нельзя было бы использовать в Windows, это просто большая работа, возможно, больше, чем сам Tweetie. - person Christopher Lloyd; 29.04.2009