Кроссплатформенная библиотека/инструментарий GUI, охватывающая многие платформы

Я хотел бы разработать приложение, которое будет работать на Windows x86, macOS, Linux, Android, Windows 10 Mobile и iOS.

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

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

На этом сайте есть довольно много вопросов по этой теме, однако я не нашел ни одного, который действительно охватывал бы все эти операционные системы, один (например, Android) отсутствует во многих случаях. Другие вопросы ограничиваются одним языком программирования. Начиная с нуля, я считаю, что выбранный язык программирования должен зависеть от моих потребностей, а не наоборот.

Меня интересует полный набор инструментов:

  • графический дизайнер
  • утилиты для компиляции/развертывания
  • IDE для кодирования, отладки, рефакторинга, ...
  • закодируйте приложение один раз, соберите/разверните для любой из этих платформ
Вы действительно уверены, что хотите написать собственный графический интерфейс? Несколько месяцев назад я написал графический интерфейс python-gtk. Это сложно, занимает гораздо больше времени, чем предполагалось, и для меня самая важная часть: вы сами по себе. Проверьте, сколько вопросов и ответов на StackOverflow о jquery и связанных с ним инструментах, а затем сравните это число с количеством вопросов о gtk или qt. Пожалуйста, спросите себя еще раз: почему родной графический интерфейс, а не HTML с JavaScript?
@guettli Я хотел бы использовать то, что проще всего и что можно упаковать в приложение на всех этих платформах так, чтобы оно, по крайней мере, выглядело как родное приложение или подобное. Мой опыт написания нативного кода, я бесконечное число раз читал такие названия, как html5, javascript, jquery и другие, но так и не пришел к выводу, как лучше всего использовать эти технологии для создания приложений, которые можно развернуть в виде устанавливаемых пакетов.
Написание собственного кода всегда кажется мне сложным, но почему я, например, не вижу упоминания html здесь: en.wikipedia.org/wiki/… ? Я был бы рад получить ответ на мой вопрос, который показывает, как инструментарий, использующий html + javascript, можно использовать для создания перспективных кросс-платформенных приложений!
Вы сказали: «Написание нативного кода всегда кажется мне сложным». Вам весело это делать? Если нет, то почему вы это делаете? Следующая тема: Почему никто не упомянул HTML? Я не знаю. Должны ли люди думать на gtk+qt, если они слышат родной графический интерфейс. Это как реакция, а не мышление :-)

Ответы (2)

Вы можете написать свое приложение в HTML и использовать Apache Cordova и Github Electron, чтобы преобразовать его в приложения, работающие на всех этих платформах. Они будут выглядеть и работать как нативные приложения, но за кулисами будут веб-страницами. Было бы трудно найти дизайнера графического интерфейса для HTML, но вы могли бы использовать любую адаптивную среду CSS, такую ​​как Twitter Bootstrap.

В идеале было бы возможно заставить одну и ту же кодовую базу работать на этих платформах. Однако на практике вам могут понадобиться, например, определенные правила CSS для определенных платформ, чтобы исправить определенные пограничные случаи. Также будут некоторые другие различия — например, реализация уведомлений будет отличаться для настольных компьютеров и мобильных устройств. Но поскольку 90 % кода будет совместно использоваться этими приложениями, обслуживание будет простым, и вы сэкономите много времени на доработку кода.

Самое близкое к тому, о чем вы просите, о котором я знаю, это Qt.

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

Ее список поддерживаемых конфигураций: http://doc.qt.io/qt-5/supported-platforms.html .