LINUX.ORG.RU

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

 , , , ,


0

4

Приветствую лорчане! Есть тут подозреваю люди имевшие дело с кроссплаформерными GUI-app. Вот завели внутренний проект,который сейчас в зачаточном состоянии. Основные пользователи на Windows и как бэ я топлю за кросс-платформу в виде нынче модных CEF, React, Python и других UI создающихся с помощью скриптовых ЯП в связке с dotNet core(С#), который «команде» знаком всяко лучше Java, и просто интересен ,т.к. удобство C# да еще и с нативной работой под НЕ окнами это круто. В поисках и размышлениях, выбор пал на Electron в связке с Angular 2/4(клиентское приложение будет иметь по задумке ограниченый функционал в плане вычислений, основные расчеты будут происходить на сервере, который как не странно на dotNet Core)

Поработав с ангуляром в принципе остался доволен,но вот все чаще натыкаюсь на критику,мол: «все плюшки TS в нем сводят на нет и вообще...» что конечно натолкнуло более активно поискать альтернативу, попал на Kivy для Python. В принципе последний тоже хорош,но в отличие от Angular 2 на врядли из коробки приспособлен для работы с таблицами,коих будет много и разных.

Основной фичей проекта является модульность. Клиент изначально чист, и после запуска и авторизации начинает загружать свою конфигурацию с сервера со всем необходимым. Так что вариант с WinForms и подобным выглядит очень неприглядно.Да и за адекватные компоненты платить как правило немало надо.(будто того факта что это WinForm мало)

Может кто поделится опытом разработки кроссплатформенного гуя на подобном стеке? Какие есть еще альтернативы? Или лучше сдаваться и идти мучать мертвеца?

Заранее извиняюсь за форму повествования.Благодарю за помощь!

Плюсую Qt. Говорю не как программист-практик. Но читал книжки по программированию: про Qt4 на C++, про связку Python3+PyQt5. Ставил, запускал примеры маленькие в Qt Creator. Как пользователь некоторые программы юзал, самая известная из которых — IRC Client KVIrc (под Windows), K3b (под Gnome3). Впечатления только положительные, никаких недоделок, все с иголочки, пашет. Возможно были хайзенбаги, но только в среде KDE, не помню с какими программами, — я не думаю, что это либа виновата. Qt — зрелая платформа, развитая, много готовых вещей найдете.

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

Python3+PyQt5

Автор так и не пояснил, на чем ядро его проекта уже написано. Я так понял, начальное состояние. Но связка Python3 + PyQt5 тоже весьма хороша, как и C++-версия.

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

Qt хорош,только вот модулями формы грузить будет больно как и с WinForms.

А если про QML , то там трабл с таблицами. Как не пробовал не завелось на QML. Обещали вроде как таблицы из 5.7 ,но пока нет.(а сваять компоненты из 5.9 и 5.7 едва вышло,и выглядело мерзко.И работало тоже с болью и пинками. Шлее писал на тему,но нашел только по 5.3,кажется. или 5.5,но там QML уже устаревший :( ) Рассматривал долго,очень хотел ,но пока не удовлетворяет требованиям.Хотя если знаете решение проблемы - очень буду рад узнать.

А так был бы рад и вопрос бы не ставил.Оно и на мобиле вроде заводится,правда веб-морду уже не получится запилить так просто как с Ng.

Qt люблю,в ерю, надеюсь.

mister_LOB
() автор топика

Выбора нет, пили на Electron, как и все.

Kivy кстати тоже в топку.

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

Да, клиент отдельное приложение в которое накачивается конфигурация с формами,правами и прочим с сервера\бек-энда. Для оперативного вмешательства лучше либо пилить либами через API либо сразу взять интерпретируемый ЯП. Бек-энд C#(пока что Core, но первые пробы с модулями ORM показали что Core 1.2 не готов к нашим изыскам,сейчас 2.0 вышел из превью и поднимаю активность вот)

mister_LOB
() автор топика
Ответ на: комментарий от watashinoshi

Tk не Telerik ? Fltk Страустрап приводил в примерах по работе с гуем,но кхм. Я не думаю что доживу до релиза если заюзаю.

mister_LOB
() автор топика
Ответ на: Ща буит мясо от Deleted

Кстати,а React не может в без Electron разве?Или нейтив только фор мобайл?

mister_LOB
() автор топика
Ответ на: комментарий от Infra_HDC

С недавних пор она меняет версии как перчатки,даже разрабы не успевают. У LXQt ишуе открыт по обновлению либ. При том на совместимость как-то немного подзабили,а честно собраное приложение на венде из 2х кнопок потянет либ на 80 мб. Сделайте деплой разок. Знаю что исправляется статической сборкой,но это как бэ нарушает лицензию комьюнити насколько помню.

mister_LOB
() автор топика

Не очень понял, это десктопное приложение или все-таки веб-приложение под видом десктопного?

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

А если про QML , то там трабл с таблицами. Хотя если знаете решение проблемы - очень буду рад узнать.

В чем именно проблема? Компонент таблиц (TableView) появился в Qt 5.1 и до сих пор актуален.

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

выпилен,не совместим с 5.9. Точнее c QtQuick 2+ . Ему замену готовили,но на момент изысков с QML ничего путного не было. Надо чекнуть,раз уж они запилили новый LTS.(пару месяцев как не следил ,и потому не знал)

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

Upd

Новый вариант делался на ListView с ,кажется, и отличался включением модели.

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

Таки да, я на лазарус проект делал, удобно, быстро, умеет qt и gtk, единственный недостаток - библиотек не так много

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

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

mister_LOB
() автор топика
Ответ на: комментарий от ism

Я тоже так думал. Но это чистейший фронт, и он уже пополз на десктоп.Во всю. На митапах частенько всплывает и очень в последнее время. Даже в энтерпрайз что-то уходит. К примеру на CEF или чем-то подобном запилен десктопный WhatsUp и ТГ так понимаю тоже,и недавно ВК оказывается релизнули месенджер для линя и что-то там не пахнет класикой десктопа :(

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

Компилируемый жрет мало, и производительность на максимум

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

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

выпилен,не совместим с 5.9. Точнее c QtQuick 2+ . Ему замену готовили,но на момент изысков с QML ничего путного не было. Надо чекнуть,раз уж они запилили новый LTS.(пару месяцев как не следил ,и потому не знал)

Ничего он не выпилен, вся ветка Qt 5 — это QtQuick 2+. Да, это компонент из набора QtQuick.Controls 1, однако набор этот актуален до сих пор и полностью совместим с 5.9.

Там есть некоторые тонкости с масштабированием на экранах высокой четкости, но тоже все решаемо.

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

Ну корпорациям нужна универсальность в ущерб экономичности и надежности

Так вон и nodejs умеет десктоп, только смысл ?

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

Слушай, какой электрон? Поставь pgAdmin 4, попробуй поработать в нем. Это АД! И какой kivy? Где ты его встречал вообще, кроме наколенных поделок? Бери либо Angular/React, если хочешь веб, либо JavaFX8 или что у вас в C# там есть для формочек? WPF... WTF... какая-то такая аббревиатура.

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

Можно тогда адекватный пример?У меня при попытке его завести с новыми контролами ничего не выходило,а магия с выводом из модулей как то не помогла ,т.к. плохо владею

mister_LOB
() автор топика
Ответ на: комментарий от bvn13

Да,его мб к следующему году завезут. WPF,если не ошибаюсь устарел.Его переодели в UAP\UWP\UWA ,чет такое,а сам по себе он есть XAML, и под dotNet Core его только начали месяц\два назад обсуждать и в релизе 2.0 не видел XAML Standart. Так что жду ,а пока вот ищу варианты. А pgAdmin не с веб-мордой и на питоне?

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

Чем не устраивает пример из официальной документации? Что значит с новыми контролами?

http://doc.qt.io/qt-5/qml-qtquick-controls-tableview.html
https://habrahabr.ru/post/184416/

CrossFire ★★★★★
()
Последнее исправление: CrossFire (всего исправлений: 2)
Ответ на: комментарий от mister_LOB

Если вопрос в том, как использовать разные ветки контролов в одном проекте:

1) Самый простой вариант — делать отдельный qml файл в котором будут использоваться исключительно QtQuick.Controls 1. То есть, например создать собственный MainTable.qml, и потом вставлять уже этот компонент в интерфейс.

2) Второй вариант, если уж надо смешать в одном файле —

import QtQuick.Controls 1.5 as ControlsOne
...
ControlsOne.TableView {
    ...
}
...

CrossFire ★★★★★
()

Зачем на клиенте вообще какое то приложение кроме браузера?

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

Если проект чисто внутренний - ничего не нарушите. Если будете распространять - да, LGPL требует предоставлять хотя бы объектные модули, чтобы пользователь мог пересобрать ваш гениальный креатив с другой версией Qt.

Я DoubleContact под винду собираю статически с Qt 4.8.6. Получается компактный бинарник (в зипе вообще 4 мб). Да, у меня программа под GPL, поэтому ограничения LGPL для меня неактуальны. Да, под линукс, естественно, собираю динамически, чтобы использовать Qt из реп. Но вообще, про LGPL рассказывают много страшилок, не совсем соответствующих действительности. Возможно, Zmicier тебе подробнее расскажет.

hobbit ★★★★★
()

Говорят, то на чём написан eclipse, есть очень неплохо для java, и кросс платформенно во все поля, и выглядит нативно.

Как по мне - десктопный гуй необходим только для очень небольшого процента приложений, для всего остального можно и нужно делать web морду в первую очередь. А вот после того как выстроится нормальный интерфейс к ядру системы, можно морду на чём угодно прикручивать, используя те же веб протоколы.

pon4ik ★★★★★
()

выбор пал на Electron

Чтоб тебе всю жизнь пользоваться поделиями на электроне. Запилите что-то нормальное и нативное. Глюкавые жабоскриптовысеры уже надоели.

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

Плюсую GTK+, есть биндинги к куче языков, в том числе скриптовых, как python и js

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

eternal_sorrow ★★★★★
()

Если уж советы дошли до электрона, то я советую делать гуй на... Blender 3D! Не делать в самом блендере, а взять его как основу.

А что? В нем гуй на питоне же. Переписываешь что надо в папке scripts и всё! Если знаешь питон, то все просто.

Даёшь современный гуи-софт на blender-gui! Нет электрону!

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

Глюкавые жабоскриптовысеры уже надоели.

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

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

Глюкавые жабоскриптовысеры уже надоели

Я сам Qt-шник, но «поделия на электроне» вижу работают стабильно и без глюков, и даже быстро. Просто я не владею этой технологией. Зато вижу что это десктоп/веб без боли, поддержка одним махом. Верю что много кому это может оказаться очень важным. Лишь бы кроссплатформа, а вин-онли должно сдохнуть и разложиться до червей.

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