Как трудно получить приложение Cocoa для работы в Windows?
В статье wikipedia на Cocoa говорится:
Существуют также версии с открытым исходным кодом основных частей структуры Cocoa, которые позволяют создавать приложения с несколькими платформами (включая Microsoft Windows) Cocoa, такие как GNUstep, Cappuccino и Cocotron.
Но когда я посмотрел, было ли приложение Mac Tweetie доступно для окон, у разработчика был исключил:
В Windows нет Cocoa, среда программирования, в которой используется Tweetie, как таковая, кажется плохим.
Я хотел бы получить ответ, чтобы указать разработчикам Tweetie (и как ресурс для других разработчиков Cocoa), которые скажут им:
- Какая реализация наиболее подходит для запуска приложения Cocoa в Windows?
- Сколько работы потребуется для запуска приложения под окнами?
- Насколько легко/сложно поддерживать общую базу кода для Mac и Windows?
- (любые другие соображения, которые я пропустил?)
Конечно, если бы это была слишком большая работа, я бы тоже хотел это знать, прежде чем предлагать это и потенциально отправить кого-то еще в бесплодный поиск.
Ответы
Ответ 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, поэтому хорошие эффекты анимации, присутствующие в приложениях, должны быть реализованы совершенно по-другому.