5

Мне нужно создать довольно простое приложение, но оно должно работать как на ПК, так и на Mac.Приложение Building Cross Platform - рекомендация

Он также должен быть распространен на диске или USB-накопителе в качестве автономного приложения для настольных компьютеров.

Первоначально я думал, что AIR будет идеально подходит для этого (он задает все требования API), но сложность делает его распределяемым, поскольку для приложения потребуется, чтобы среда выполнения AIR была установлена ​​для запуска.

Я столкнулся с Shu Player как вариант, поскольку он, кажется, способен упаковать среду выполнения AIR с помощью приложения и выполнить установку (без звука?).
Однако это, похоже, нарушает T & C от Adobe (as outlined here), поэтому я не уверен в законности.

Другим вариантом может быть цинк, но я не проверял его, поэтому не уверен, насколько он соответствует размеру счета.

Что бы вы посоветовали или предложили мне проверить?

Любое предложение высоко ценится

EDIT: Там в несколько дискуссий по использованию моно (хотя никакого реального заключения): Here и Here

EDIT2: Titanium может также пригонки счет, возможно, проверит его.

Любые комментарии от кого-либо?

EDIT3 (один год): На самом деле это был почти год с тех пор, как я опубликовал этот вопрос, но кажется, что некоторые люди по-прежнему сталкиваются с ним время от времени и даже дают ответ даже спустя год.

Думал, что я немного обновил вопрос. Я не обошел, чтобы попробовать параметр tcl/tk в конце, ограничение времени и неопределенность совместимости с различными версиями os заставили меня отказаться от этого в качестве опции.

Я попробовал Titanium немного, но хотя первые впечатления были в порядке, они действительно продвигают мобильную платформу больше всего на свете, а imho - настольная реализация немного страдает от этого недостатка внимания. Также есть некоторые сообщения о проблемах с некоторыми версиями Visual Studio на некоторых ОС (теперь я не могу вспомнить подробности). Так и отбросил это.

Я закончил работу с XULRunner. Два основных обращения:

  • Firefox, похоже, работает из коробки на большинстве версий ОС, поэтому я с уверенностью считал, что приложение XULRunner, скорее всего, будет совместимо с большинством систем. Сэкономил мне много тестов, и оказалось, что он сделал отлично работает на всех платформах, не было ни одного отчета о невозможности запуска приложения
  • Это Javascript baby! Языковая кривая обучения была минимальной. Главное, чтобы решить, какие дополнительные интерфейсы xpcom и как их запрашивать.

На нижней стороне:

  • Я думал ошибки поиска неисправностей была иногда сложной задачей, то Venkman отладчик своего рода неуклюжим, в конечном итоге с помощью консоли более чем что-либо.
  • Интерфейс sqlite - отличный инструмент для настольного приложения, но я часто пытался найти соответствующую информацию об ошибке, когда что-то не сработало - возможно, я делал это неправильно.
  • Потребовалось немного времени, чтобы решить, как упаковать приложение в качестве автономного приложения для ПК и Mac. Окончательный подход состоял в том, чтобы иметь приложение «shell» mac и приложение pc оболочки и пару сценариев «компиляции», которые скопировали бы оболочки и добавили бы на них исходный код в правильном месте.
  • Последней потенциальной проблемой для некоторых из-за природы приложений xulrunner, ваш исходный код будет развернут с помощью приложения, вы можете использовать обфускацию, если хотите, но это то, что нужно иметь в виду, если вы хотите защитить свою интеллектуальную собственность

В целом, отличная платформа для кросс-платформенного приложения. Я очень рекомендую.

+0

где этот ответ об использовании Mono исчез? Я больше не вижу этого ... – Ben

+0

a downvote? действительно? после такого долгого времени? – Ben

+0

Спасибо, Бен за такой подробный пост. Как XULRunner работает для вас до сегодняшнего дня? Он все еще применим? – yatg

ответ

0

Рассмотрите JavaFX Это будет работать везде с современной JRE ..!

+0

Спасибо. Как с ответом @Michael E. Java слишком много зависит от – Ben

2

Java, вероятно, лучший выбор, хотя не все компьютеры Windows обязательно будут иметь Java (большинство должно). JavaFX является достаточно новым, и вы не можете рассчитывать на него - вы, вероятно, найдете множество машин, на которых работает Java 1.5 или (содрогание) 1.4. Я считаю, что в последнее время Mac OS по-прежнему поставляется с 1.5 (последняя версия, возможно, изменилась до 1.6).

+0

Спасибо за подсказку. ПК не поставляются с заранее установленной афайкой Java (мне всегда приходилось ее устанавливать). Это слишком большая зависимость, я мог бы также пойти с Воздухом. И я лично предпочел бы держаться подальше от java, если возможно – Ben

5

Tcl/Tk имеет один из лучших упаковочных решений. Вы можете легко обернуть кросс-платформенное приложение (реализованное в полностью работающей виртуальной файловой системе) с бинарной платформой, чтобы получить один исполняемый файл для практически любой современной настольной системы. Найдите google для терминов starkit, starpack и tclkit. Такие обернутые двоичные файлы являются крошечными по сравнению со многими исполняемыми файлами в наши дни.

Многие высмеивают Тк как «старые» или «незрелые», но это один из старейших, наиболее стабильных инструментов. При наличии таких виджетов он использует собственные виджеты.

Одним из существенных недостатков Tcl/Tk является то, что в нем отсутствует какая-либо поддержка печати. Если вашему приложению нужно распечатать, вы должны быть немного креативными. Существуют решения, ориентированные на платформу, и возможность генерировать документы postscript и библиотеки для создания PDF-файлов, но для этого требуется немного дополнительных усилий.

+0

Не было бы требовать установки tcl/tk в первую очередь? – Ben

+0

@Ben: Нет. Вы завершаете всю рабочую среду tcl/tk в один файл. Это всего 4 мегабайта. Это его красота. Вы получаете один файл, который вы просто перетаскиваете в папку и устанавливаете. Нет дополнительного времени выполнения или чего-либо (если вы не решите сохранить время выполнения и приложение отдельно) –

+0

@ Брайан: Спасибо за ваше предложение (и ваш энтузиазм!). Это соответствовало бы счету. Моя единственная забота заключается в том, что я никогда не делал tcl/tk, поэтому у меня была бы такая кривая обучения на вершине какого-то сумасшедшего срока. – Ben

0

AIR может быть вариантом, но только если вы не против распространять два разных файла (автономный установщик времени выполнения и ваше приложение) и ожидаете, что пользователь будет запускать один, а затем другой. Вам необходимо отправить онлайн-форму на сайте Adobe, указав, что соглашаетесь распространять автономный установщик как есть, а не выкапывать отдельные библиотеки DLL или что-то еще, прежде чем они предоставят вам программу установки.

К сожалению, в настоящее время нет способа получить как приложение AIR, так и среду выполнения для установки из одного файла. Я не уверен, что такое сделка с Шу, или делает то, что не кошерно.

+0

Спасибо за подсказку. Как уже упоминалось в моем вопросе, AIR один не будет делать. Я смотрел на шу, но для этого требуется распределение воздуха от самана. Мы применили к adobe для лицензии на воздушное судно, но ничего не слышали от них. Хорошо, если вам все равно. – Ben

+0

Пошел на xulrunner, сначала это немного сложно, но это довольно круто, когда вы обнимаете его. – Ben

0

Я бы рекомендовал zink. он имеет все функции, необходимые для рабочего стола. однако, в то время, когда я использовал его, это было немного глючно.

Я был повесил трубку, пытаясь записать 6M-файл на диск. подумал, что это корыто и изменил код, чтобы записать 512K кусков за раз (3мин работать, быстро).

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

+0

Вы имели в виду цинк? звучит так, будто вы оба рекомендуете это и одновременно выключаете его :) Не слишком впечатлило это, когда я просмотрел его. Пошел с XULRunner от mozilla в конце, это была очень интересная, хотя и довольно сложная платформа. Посмотрите на это. – Ben

+0

@encoder .. и спасибо за ваш поздний вклад еще – Ben

+0

thx для подсказки на XULRunner. и, да, я имел в виду цинк. я не использовал его широко, на самом деле это было только для личного использования. разработал некоторые специализированные инструменты (это было почти 2 года назад). и я НЕ говорю, что я загружался нелегально :) Если у меня есть обширная работа для офлайн-приложений, я обязательно ее куплю. это может быть не так, поскольку большинство систем подключено к сети. – encoder