Подтвердить что ты не робот

Как трудно получить приложение Cocoa для работы в Windows?

В статье wikipedia на Cocoa говорится:

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

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

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

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

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

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

4b9b3361

Ответ 1

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

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

Итак, даже с этими Cocoa -подобными фреймворками, ответ: Hard.

Ответ 2

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

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

Следовательно, возможны два возможных решения:

  • Попробуйте удалить коды, которые не поддерживаются Cocotron в исходной базе кода, и выполнить кросс-компиляцию. Поддержание общей базы кода будет болезненным.
  • Начать новый графический интерфейс вообще, нет общей базы кода. два варианта здесь
    • Запустите кросс-платформенный проект с кросс-платформой приложений, такой как Qt или Java.
    • Запустите проект только для окон. Здесь есть много вариантов: приложение .NET WinForm, MFC и т.д.

Ответ 3

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

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