Веб-технологии в приложениях с графическим интерфейсом

Веб-технологии в приложениях с графическим интерфейсом
Веб-технологии в приложениях с графическим интерфейсом - williamtm @ Unsplash

Я разработал много приложений с графическим интерфейсом для платформы Windows в начале своей профессиональной карьеры и видел, как появилось несколько сред с графическим интерфейсом, им были посвящены целые журналы, а затем они исчезли. МФЦ является знаковым.

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

Но люди постоянно создают красивые и функциональные пользовательские интерфейсы в Интернете (посмотрите на этот сайт!). Стандарты, библиотеки и инструменты, безусловно, есть.

Моя мысль и мой вопрос: почему бы не написать графический интерфейс, в котором большая часть пользовательского интерфейса обрабатывается встроенным браузером? Я уже знаю, что виджеты Qt поддерживают большую часть CSS и JavaScript, а программистов с хорошими знаниями в области веб-разработки относительно легко найти, ..., так что...

Вы делали что-то подобное раньше? Каков ваш опыт/совет?

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

Моя идея состоит не в том, чтобы встроить полноценный браузер (упс!). Это позволяет использовать веб-технологии в программировании графического интерфейса.

[Редактировать]

Я не принял ответ, потому что пока что это предложения о том, чтобы сделать что-то еще, а не о предыдущем опыте выполнения того, что я предлагаю. Они даже не являются мнениями или предположениями о подводных камнях или преимуществах предложенного способа, чего я и ожидал, учитывая маловероятность того, что я открою новые возможности, используя виджет браузера для обеспечения части интерфейса графического интерфейса. Подумайте о HTML, CSS и ограниченном JavaScript, без Интернета, без .Net или Java (или Air, Flex/Flash), без реляционной базы данных; только исполняемые файлы, библиотеки и шаблоны, которые можно установить, скопировав их, и сохранить в домашнем каталоге пользователя с помощью файловой системы.

Некоторые дополнительные связанные вопросы

Они взяты из ответов до сих пор:

  1. Взаимодействие с пользователем. Разве веб-приложение, в котором работает StackExchange, недостаточно функциональное и интуитивно понятное?
  2. Ожидания пользователей: разве Интернет и портативные гаджеты (смартфоны и планшеты) не уводят пользователя от традиционного графического интерфейса?
  3. Может быть, есть приложения, которые должны быть с графическим интерфейсом, но выигрывают от того, что они веб-ориентированы, а другие - нет?

На самом деле я когда-то участвовал в работе над веб-приложением, которое мы в конечном итоге почти закончили продавать как стандартное «настольное приложение». По какой-то причине отдел маркетинга вбил себе в голову, что один из наших основных клиентов хотел, чтобы продукт «выглядел как приложение с графическим интерфейсом», поэтому мы создали небольшое приложение для Windows, которое просто содержит элемент управления IE ActiveX и указывает на наше веб-приложение. (скрывая тот факт, что это на самом деле браузер). Настолько эффективно, что для неопытного глаза это выглядело как стандартное приложение с графическим интерфейсом.

Конечно, это не совсем то, о чем вы спрашиваете (мы все еще указывали на веб-приложение, а не размещали все это локально), но это достаточно близко. Было бы тривиально — за исключением некоторых используемых удаленных веб-сервисов — настроить это так, чтобы все это располагалось на локальном компьютере.

Но вот самая большая проблема: внешний вид и ощущения. Особенно чувствовать.

Люди ожидают определенного поведения от приложений с богатым графическим интерфейсом (перетаскивание, нативные окна и диалоги и т. д.). Чрезвычайно сложно получить действительно естественный внешний вид веб-интерфейса. Просто существует другой поток пользователей в том, что ожидается, когда вы открываете веб-приложение в браузере (например, Gmail), в отличие от того, когда вы используете приложение с богатым графическим интерфейсом (например, Outlook). По моему опыту, попытка уравнять эти два понятия напрашивается на неприятности. Если вы выпустите «приложение с графическим интерфейсом», которое действует как веб-приложение, вы, вероятно, будете наводнены жалобами на удобство использования и LAF.

TL; DR — веб-приложения и приложения с графическим интерфейсом имеют разный внешний вид и в некоторой степени другую культуру пользователей. Хотя технически возможно сделать что-то подобное, по моему опыту, я бы не пошел туда (снова). В лучшем случае вы, вероятно, получите ужасное сочетание сценариев на стороне клиента, которые будет сложнее изучить, использовать и поддерживать, чем делать все это как обычное приложение с графическим интерфейсом. И люди БУДУТ жаловаться на вещи, которые «не совсем подходят» для родного приложения с графическим интерфейсом. Заманчиво думать, что они не будут, но они будут.


LetsCodeIt, 6 июня 2023 г., 13:04