LINUX.ORG.RU

Desktop-приложение для Linux / OS X на чём написать?

 , , ,


2

2

Хочу написать GUI-приложение, да так, чтобы впоследствии было достаточно нетрудно его перенести на OS X, в идеале просто скомпилировать для этой платформы и оно заработало. Какой язык / стек выбрать?

Гуглёжь подсказывает C# в виде Xamarin, но неясно как это всё устроено. Electron + JS как-то неохота, JS мерзок, а тащить целый браузер нерационально для моей довольно простой проги. Всякие FreePascal рассматривать вообще?

Java? Наверное, таки Java?

UPDATE: приложение должно будет вытаскивать из Postgresql данные, показывать в табличке, редактировать данные и сохранять обратно в таблички + немного логики. Данных будет немного, несколько тысяч записей. Веб-приложение тут не подойдет, база будет локально лежать у каждого юзера своя.

★★★★★

Последнее исправление: Alve (всего исправлений: 1)

Ответ на: комментарий от CrossFire

Во-первых оценка размера завышена в несколько раз

Бандл с JVM и JavaFX-программой весит 30-40 МБ. Бандл с Qt 5 программой весит 20 МБ - 30 МБ: https://sourceforge.net/projects/qbittorrent/files/qbittorrent-mac/qbittorren...

(и это ещё хороший пример, где заботливые разработчики qbittorrent вырезали из Qt 5 ICU-говно и приликовали Qt 5 статически). В противном случае бандл с Qt 5 программой весил бы больше, чем с JavaFX-программой.

во-вторых кого это вообще заботит?

Раз Qt-разрабы делают Qt 5 Lite значит это кого-то заботит. И к мнению этого кого-то прислушиваются.

Люди качают приложения на электроне и не жужжат.

Вот именно. И у Qt с его C++ и QtQuick/QML (на Electron'е УЖЕ в несколько раз больше приложений чем на этой связке, не так ли?) нет шансов и преимуществ на фоне других раздутостей вроде JavaFX или Electron.

Ты не хуже меня знаешь, что Qt-разрабы сейчас в срочном порядке начали обратно впиливать выпиленный ранее программный рендеринг QtQuick/QML, дабы удержать свои позиции на этом поприще. Стыд и срам.

EXL ★★★★★
()
Ответ на: комментарий от alchemist

Увы, не знаю про это. Приложения с большими таблицами не делал на JavaFX. Возможно в треде мимокроки расскажут тебе подробнее про это. Хорошо бы, если бы ТС добавил в теги Qt 5 и JavaFX. А Development и cross-platform снёс.

EXL ★★★★★
()

Пиши как веб-приложение и не вылюбливайся

Java? Наверное, таки Java?

Принципиально не жава. Не у всех по 64Гб оперативы и более.

r_asian ★☆☆
()
Ответ на: комментарий от EXL

Qt 5 Lite

Да, штука интересная. Хотя лично мне, 50 Мб для программы в 21-м веке это тьфу. Когда-то программа больше мегабайта считалась жирной, сейчас другое время. По крайней мере размер бандла - самое последнее о чем бы я думал.

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от EXL

и это ещё хороший пример, где заботливые разработчики qbittorrent вырезали из Qt 5 ICU-говно и приликовали Qt 5 статически

Из iStodo ничего не вырезали, линковали динамикой, образ весит 12 метров. Все эти сравнения с 30+ метров Java выглядят необосновано.

Раз Qt-разрабы делают Qt 5 Lite значит это кого-то заботит.

Over the past six months we have looked at many of these challenges—and more—and been working on making Qt a much more targeted framework that will facilitate the whole development cycle and lifetime of embedded device based products. In this blog post we will look at some of the changes, we have made as well as the path beyond that. All of these efforts are part of “Project Qt Lite”.

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

In Qt we have therefore introduced a fully integrated, supported and efficient 2D Software Renderer for Qt Quick. This allows you to use all the power of the QML language to create beautiful user interfaces on embedded devices without OpenGL hardware available.

Electron'е УЖЕ в несколько раз больше приложений чем на этой связке, не так ли?

Ему уже 3 года, веберов много и они дешевле, конечно приложений больше. На убогом PhoneGap тоже приложений очень много, это вообще ни о чем не говорит.

CrossFire ★★★★★
()
Ответ на: комментарий от CrossFire

Из iStodo ничего не вырезали, линковали динамикой, образ весит 12 метров.

А у тебя iStodo для macOS использует QtQuick или только QtWidgets? Ты пользовался macdeployqt или деплоил ручками?

EXL ★★★★★
()
Ответ на: комментарий от EXL

Только виджеты, macdeployqt. QtQuick приложения тоже не сильно больше весят — вот сейчас работаю над VPN клиентом, получается образ на 22 метра, при этом с собой приходится таскать собственно vpn, драйверы и много чего еще.

CrossFire ★★★★★
()
Последнее исправление: CrossFire (всего исправлений: 1)

Лучше конечно если бы ты взял Qt. Но если нет, то лучше таки

Electron + JS как-то неохота, JS мерзок, а тащить целый браузер нерационально для моей довольно простой проги.

consensus
()

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

consensus
()
Ответ на: комментарий от EXL

Бандл с JVM и JavaFX-программой весит 30-40 МБ.

Ты упоролся? Там никак не меньше 200 МБ в распакованном виде будет. Дай пример хоть какого-то хелоуворлда с jvm8+jvxrt+программа который будет столько весить.

anonymous
()
Ответ на: комментарий от EXL

Бандл с JVM и JavaFX-программой весит 30-40 МБ.

rt.jar — 65 MB, jfxrt.jar — 18 MB. Лоровские аналитики такие лоровские.

anonymous
()

Qt с виджетами. Писал под линуксом, собирал под мак, клиент жив.

hobbit ★★★★★
()
Ответ на: комментарий от anonymous

Я - не покажу. Выше я уже пояснил, что мне до едрени фени размер бандла, до 100 мегабайт определенно точно.

I-Love-Microsoft ★★★★★
()

Qt + C++. Если не использовать платформозависимых вещей, то будет работать после простой перекомпиляции на любой из поддерживаемых официально платформ, включая Windows, Linux и Mac, а также ряд мобильных платформ.

KivApple ★★★★★
()
Ответ на: комментарий от EXL

Всё меняется.

Солидарен по всем пунктам.
Раньше посоветовал бы Qt, но теперь — Java + JavaFX.
В своё время от Qt был просто в восторге, да и сейчас иногда пишу на нём прикладной софт.
p.s. Никогда не думал, что начну кодить десктоп с жабой;D

CriDos
()

Electron конечно, тулкитофобы должны страдать

anonymous
()
Ответ на: lazarus + fp от taker

lazarus + fp

Как этим говном можно пользоваться под макосью для меня остается загадкой. Кривое и косое поделие.

andreyu ★★★★★
()

Ну Nw.JS же для таких задач!

bookman900 ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

В твоем QT5 сколько надо учить/понимать/учитьЯП? Можно ли накидать интерфейс или его писать конкретно надо?

//у меня схожая с ТС задача, а гуе-строении я ноль.

bookman900 ★★★★★
()
Ответ на: комментарий от bookman900

Можно быстро накидать, а язык вряд ли так сильно отличается от твоего JS по сути, особенно в варианте для Qt.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от EXL

JavaFX не умеет в системную тему, а значит не нужна.

Архивы по 50 метров это конечно весело. В то время, как Qt влазит в 7.

RazrFalcon ★★★★★
()

Для такой задачи я бы использовал Java Swing. Хотя Oracle перестала его как бы развивать, на Swing написано очень много вещей, включая IntelliJ IDEA, оракловый клиент, NetBeans и т.п. Так что, технология, судя по всему, еще долго будет жить. А для показа и редактирования табличек из баз данных она вполне подходит. Там добротный есть виджет, который подходит для показа огромных таблиц, если нужно.

Qt? Если только нравится Си++. На OS X у него, как тут неоднократно подметили, нет никаких преимуществ в плане внешнего вида перед Java Swing. Qt на маке выглядит плохо.

Если бы нужен был гламур, то посоветовал бы писать нативные приложения на GTK и Cocoa, но здесь не тот случай.

dave ★★★★★
()
Ответ на: комментарий от andreyu

что именно не устраивает с учётом того, что мы не собираемся создавать референсную демо, но создаём простое приложение для конкретного офиса, для решения конкретной задачи?

taker
()
Ответ на: комментарий от I-Love-Microsoft

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

Gorthauer ★★★★★
()
Ответ на: Всё меняется. от CriDos

Раньше посоветовал бы Qt, но теперь — Java + JavaFX

Ты свой аватар видел??? Еще один Qt-предатель ^_^

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от taker

что именно не устраивает с учётом того, что мы не собираемся создавать референсную демо, но создаём простое приложение для конкретного офиса, для решения конкретной задачи?

Вот это: «Кривое и косое поделие». Это поделие и на линуксе еле работает и выглядит как дерьмо. А на макоси вообще жесть.

p.s. Тут есть один неадекват-любитель лазаруса, вам бы с ним пообщаться.

andreyu ★★★★★
()
Ответ на: комментарий от taker

ты там общайся с кем хочешь. а пустопорожний трёп здесь не нужен.

Ясно, вы из тех фанатов лазаруса, которые никаких косяков в упор не видят.

andreyu ★★★★★
()

postgress меняем на sqlite - и пишем на Tcl/Tk..

Шах и мат - перенос приложения это просто копирование :-)

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

Никто не будет пользоваться вырвиглазным ожосом на Tcl/Tk.

bookman900 ★★★★★
()
Ответ на: комментарий от MKuznetsov

В аду есть место, где вечно надо пользоваться Tk программами...

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от EXL

Спасибо местному Поттерингу — Тьяго

Тоже мне, крайнего нашел

annulen ★★★★★
()

Большая часть коммерческого межплатформенного ПО поставляется в виде банда Qt, например: Autodesk Maya, Substance Painter/Designer, 3D-Coat, десятки их.

slon
()
Ответ на: комментарий от slon

Но для этого надо конкретно учить тяжелые ЯП.

А если тебе поручили сделать что-то, что ты только слышал?

bookman900 ★★★★★
()

приложение должно будет вытаскивать из Postgresql данные, показывать в табличке, редактировать данные и сохранять обратно в таблички + немного логики

Tcl/Tk с головой для такого. нет же, культи рекомендуют, сишарпы, жиэс с электроном, что за напасть. жертвам motif поясню - нативно выглядящие виджеты с tile берегут вас и ваши глаза давным-давно.

tcler
()

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

kremator666
()
Ответ на: комментарий от Braga_man

Примени qss

Дай мне этот волшебный QSS, который превратит все Qt-программы на macOS во вменяемые.

Кстати, а не объявили ли QSS устаревшим? Что-то такое мелькало на форуме.

EXL ★★★★★
()
Ответ на: комментарий от kremator666

идеально подходит для несложных программ.

приложение должно будет вытаскивать из Postgresql данные, показывать в табличке, редактировать данные и сохранять обратно в таблички + немного логики.

Когда ты попадёшь в ад, я надеюсь, черти заставят тебя писать подобную программу на ncurses и псевдографике.

EXL ★★★★★
()

Qt5 чем-то не подходит что ли? Если нужна кроссплатформенность, Qt - идеал. Если только для Мака - то свифт.

hibou ★★★★★
()
Ответ на: комментарий от hibou

Qt5 чем-то не подходит что ли

Я для некоторых программ тупо ставлю стиль Fusion и пользователи на разных ОС не пищщат что ненативно - Fusion и никаких гвоздей, одинаково на всех ОС. Проблема решена, все рады.

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

А ещё Fusion единственная тема, которая в Qt 5 может в HiDPI.

Так что всё правильно делаешь.

EXL ★★★★★
()

на Qt.

Я в свое время тыкался с Gtk(2.26 ЕМНИП), но Gtk глючит и падает. Что-то я пропатчил и даже до сих пор от меня там коммит есть. Но в целом хз как они вообще тестируют Gtk под MacOSX - ошибка была вида null dereference там где null вполне ожидаем.

i36_zubov
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.