Создайте кросс-платформенный Windows, приложение Mac OS X

Ниже можно использовать

find . -type d -name dirname -prune -print
32
задан Paul Lefebvre 3 February 2009 в 19:24
поделиться

19 ответов

Хорошо, что Вы думаете о мобильности вначале - значительно более трудно "соединить болтом его на" после факта.

существуют различные межплатформенные доступные наборы, но по моему скромному мнению все они немного далеки от обеспечения "собственного" стиля на всех поддерживаемых платформах. На Mac (что я использую), сторонники таких наборов всегда хотят упомянуть, что они используют собственные средства управления. Это - хорошее начало, но это не целая поездка. Другие проблемы, решенные , Инструкции по Интерфейсу пользователя Apple включают, как средства управления должны быть расположены, как названия кнопок должны формулироваться, какие стандартные сочетания клавиш должны использоваться, и т.д.

, Даже Microsoft имела к , учатся на горьком опыте об опасностях попытаться записать межплатформенный GUI, со злополучным Word 6.0 для Mac.

, по моему скромному мнению, лучший подход должен использовать дизайн MVC с образцовым слоем, записанным в стандартном, портативном C++, и представлении и слоях контроллера с помощью собственного инструментария для каждой платформы. Для версии Mac, Углерода и C++ всюду по используемому, чтобы быть интересной опцией, которая теперь больше не поддерживается, таким образом, Вы хотели бы использовать Какао, с помощью Objective C в представлении и Objective C ++ в контроллерах для устранения разрыва языка. Ваша версия Windows могла аналогично скомпилировать Вашу модель как "управляемый С++" и использовать любой язык.NET для контроллеров и представлений.

49
ответ дан 27 November 2019 в 19:57
поделиться

У парней в Студиях Магнетизма есть хорошее , описывают при использовании Cocotron для создания исполняемого файла Windows с XCode.

у меня нет опыта с Cocotron, но если бы я должен был записать приложение Windows — с разработкой Mac background†то”, это было бы первой вещью, которую я попробую.

0
ответ дан 27 November 2019 в 19:57
поделиться

Я второй Java. Это разработано как межплатформенное решение.

Другие упомянули Adobe Air.

Подобный Adobe Air Silverlight. Я полагаю, что это (или будет), абсолютно кросс-платформенный.

0
ответ дан 27 November 2019 в 19:57
поделиться

Можно создать фантастически выглядящие кросс-платформенные приложения с Java Swing. Это просто требует немного большему усилию учиться делать так.

Здесь, смотрите на некоторые из этих ссылок.

  1. http://jidesoft.com/products/component.htm
  2. http://www.xerto.com/imagery.php
  3. http://www.jgraph.com/screenshots.html
  4. http://www.javootoo.com/
  5. http://www.formdev.com/screenshots/
  6. http://www.jidesoft.com/products/oss.htm
0
ответ дан 27 November 2019 в 19:57
поделиться

Я планирую сделать подобную вещь, и я рассматриваю создание Приложения Windows C#/.NET и затем портирование ее к OS X, использующему Моно. Мое приложение уже имеет полностью (за исключением строки заголовка и угловых кнопок) пользовательски оттянутый пользовательский интерфейс, таким образом, косметические различия ОС не должны влиять на меня слишком много.

я не уверен, что Вы подразумеваете под усилением лучшей из каждой платформы с точки зрения платформ и API и т.д. В целом запись межплатформенного приложения означает писать в наименее общий знаменатель и таким образом означает не вытаскивание лучшего из каждой платформы.

0
ответ дан 27 November 2019 в 19:57
поделиться

Если Вы - разработчик Windows, используйте или QT или C# Winforms; если Вы - разработчик Mac, Вы могли бы попробовать Cocotron ( http://www.cocotron.org/ ), но это еще не 100%, законченных, хотя коммерческие приложения были поставлены с ним.

2
ответ дан 27 November 2019 в 19:57
поделиться

Также выезд fltk, wxWidgets является очень хорошим & богатый, но также и очень большой...

1
ответ дан 27 November 2019 в 19:57
поделиться

Для GUI я изучил бы SDL или QT

кроме того, проверил бы моно http://mono-project.com/Main_Page

3
ответ дан 27 November 2019 в 19:57
поделиться

Пока Вы не связываетесь с языками, похоже, что Java является хорошим кандидатом. Разделите на пары это с SWT для GUI, и у Вас будет собственный компонент, выглядящий приложением на любой ОС, которую Вы любите.

0
ответ дан 27 November 2019 в 19:57
поделиться

Необходимо использовать лучшие инструменты, доступные для каждой ОС.

код C/C++ может разделяться от GUI и использоваться в каждой отдельно разработанной программе.

перед принятием решения смотрите на межплатформенные приложения, которые были разработаны с портативными инструментариями, такими как QT или wxWidgets. По моему опыту, они столь никогда не полируются как их собственные дубликаты, особенно на Mac

3
ответ дан 27 November 2019 в 19:57
поделиться

Предстоящий СПОКОЙНЫЙ Создатель мог бы быть достойный внимания: текст ссылки

3
ответ дан 27 November 2019 в 19:57
поделиться

Если Вы действительно решаете пойти с C++ существует много хороших межплатформенных библиотек GUI, которые позволят Вам избегать необходимости копировать код GUI для каждой платформы. Например:

Там является многими другими подобными проектами, но это - часть из лучше и более известные. Для остатка от Вашего кода что-либо определенное для системы должно будет, конечно, быть написано с помощью отдельного кода C++ для взаимодействия через интерфейс с API Win32 или системой OS X с API в случае необходимости. Однако можно найти, что Вы можете избежать большой части определенного для системы кода при помощи обширных библиотек как Повышение .

Другие предложения были бы вещами как использование конфигурационного файла вместо реестра Windows или plist файла на Mac Вместо этого охоте для агностических платформой подходов по мере возможности для уменьшения мест, где необходимо написать код с помощью системных API.

3
ответ дан 27 November 2019 в 19:57
поделиться

Java или Моно прибывает по моему мнению. Некоторые люди могут утверждать, что Java, графические инструментарии не являются самыми милыми там, но это, кажется, по крайней мере, мне, самый легкий способ портировать Ваше приложение на несколько платформ и избежать трудностей с развертыванием.

Моно, с другой стороны, могло быть трудным к порту, поскольку необходимо будет записать, по крайней мере, gui дважды, если Вы планируете иметь собственные виджеты (или winforms или GTK для окон и CocoaSharp для Max), но Вы могли записать бэкенд только однажды и разработать frontend для каждой платформы.

, Поскольку я сказал, Java, инструментарии GUI не могли бы чувствовать себя "собственными" в OSX или даже в Windows, но них верная работа над обеими платформами, Вы могли использовать или Swing или AWT.

Что касается моно, можно использовать GTK или Winforms для обоих окон и OSX, но они все еще не будут чувствовать себя собственными, Вы можете, однако использовать CocoaSharp, которые являются привязкой к платформе Какао, но я не уверен в состоянии проекта (чтение: поддержка функциональности)

0
ответ дан 27 November 2019 в 19:57
поделиться

Как другие упомянули, определенно возможно создать красивый кросс-платформенный GUI в Java и в Windows и в Mac. Однако, если Вы хотите, чтобы Ваше приложение гармонировало и вело себя способом, который заставляет его "чувствовать" как приложение, разработанное с нуля для платформы, на которой оно работает, действительно необходимо разработать GUI и пользовательский опыт для каждой версии приложения отдельно.

, Если Вы анализируете то, что Ваше приложение собирается сделать и полагать, что существует значительная часть кода/логики, который мог быть совместно использован платформами затем, пишут, что часть портативным способом на языке, который доступен в обеих системах. C, C++, Java, Python, Ruby, и т.д. Если нет значительной части, т.е. большая часть кода будет для GUI затем существует меньше случая для совместного использования любого кода вообще.

В случае, что существует значительная часть общего кода, я предложил бы изучить Python и Ruby как языки реализации, поскольку существует привязка Какао для тех языков на Mac и в Windows с использованием IronPython и IronRuby, Вы могли использовать повторное использование, которые кодируют в приложении .NET также.

1
ответ дан 27 November 2019 в 19:57
поделиться

Adobe Flex, с библиотеками AIR, делает хорошее задание предоставления Вам единственная, высокоуровневая среда разработки для этого вида вещи. Я записал несколько утилит, которые люди используют на обеих платформах попеременно.

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

4
ответ дан 27 November 2019 в 19:57
поделиться

wxWidgets является кросс-платформенной библиотекой C++, которая является практическим выбором. Но я соглашаюсь с Sherm - все кросс-платформенные библиотеки действительно создают нижний UI к исходным приложениям.

Это сделало тяжелее каждой ОС, имеющей различную семантику UI (заказы кнопки и т.д.), поэтому в то время как можно достигнуть хорошего взгляда, получение 'чувства' прямо на каждой платформе через один слой представления почти обязано быть невозможным.

В зависимости от того, что Вы заканчиваете тем, что делали, можно найти веб-интерфейс лучше (например, встроить веб-сервер в приложение и служить страницам HTTP браузеру). Вы избегаете L& F выходит затем!

, С другой стороны, можно решить, что Вы просто собираетесь иметь абсолютно нестандартный L& F, и идут для чего-то как wxWidgets или Tcl/Tk.

6
ответ дан 27 November 2019 в 19:57
поделиться

Смотрите на Реальный Studio. Серьезно. Можно записать приложение в Реальном Studio и развернуть его в Windows, Mac OS X и Linux.

Редактирование: Реальный Studio теперь Xojo.

16
ответ дан 27 November 2019 в 19:57
поделиться

Мое предложение, используйте Python. Python интегрируется и с Objective C и с C# (IronPython). Просто избегайте большого количества совершенно новых новейших функций языка, и Вы в порядке.

Предоставленный, это не будет бессмысленно легко. Но я утверждал бы, что это не было должно быть бессмысленно легким. Становится очень очевидно, когда разработчики не учитывают, как их приложение будет работать, когда это будет портировано на другую платформу.

4
ответ дан 27 November 2019 в 19:57
поделиться

спасибо за все Ваши ответы. Я проводил некоторое исследование и играл вокруг с WPF и CAnimation и т.д. Это похоже на использование модели C/C++, и выполнение GUI индивидуально для каждой платформы является лучшим способом пойти. Спасибо за всю Вашу справку.

2
ответ дан 27 November 2019 в 19:57
поделиться