Технологии на потребителския интерфейс

Непрекъснатото редуване на епохите от работния плот към мрежата към мобилния движи развитието на потребителските интерфейси. Какво се случва сега в тази област, какви методи се използват и какви са перспективите?

  • Ключови думи/ключови думи:
  • декларативни инструменти
  • инструменти, свързани със събития
  • хибридна технология
  • Моделиране
  • хибридни технологии
  • декларативен инструментариум
  • Математически модел
  • Математически модел
  • Софтуерно инженерство
  • инструменти за събития

Потребителските интерфейси бързо се развиват, задвижвани от непрекъснати промени, задвижвани от редуването на епохи от настолни компютри до уеб и мобилни устройства. Какво се случва сега в областта на разработването на потребителски интерфейс, какви методи се използват и какви са перспективите за тяхното развитие?

отворени

Форми за въвеждане, свързани със СУБД

Обработващи шаблони

Технологиите за изграждане на потребителски интерфейси, базирани на шаблони, внедрени в езици за маркиране, са широко използвани от средата на 90-те години. Основните предимства на шаблоните са гъвкавостта и широтата на възможностите за създаване на динамични потребителски уеб интерфейси, особено по отношение на структурата и дизайна на оформлението. В началото такива набори от инструменти използваха шаблони, в които оформлението и структурата на потребителския интерфейс бяха определени с помощта на език за маркиране, а свързването на данни се извършваше с помощта на малки блокове на език от високо ниво (Java, C #, PHP, Python и т.н. ). Последното може да се използва в комбинация с маркиране; например, чрез инжектиране на маркери за маркиране в цикъл на Java, могат да бъдат създадени итеративни визуализации като таблици и списъци. Необходимостта от чести промени в синтаксиса в дадена уеб страница затрудни разработването и коригирането на код за програмисти, така че преди около десет години преминаването от езици на високо ниво към специализирани библиотеки за маркиране на маркери и езици на изрази, създадени за конкретна мрежа технологиите започнаха.

Маркерите за маркиране започват да се използват за реализиране на типични функции на уеб приложения, а изразите се използват за достъп до данни и функции за повикване, съхранявани в сървърни обекти. Типичен представител на тази група е технологията JavaServer Pages (JSP), чиято JSP стандартна библиотека с маркери поддържа задачи като манипулиране на XML документи, цикли, условия, анкетиране на СУБД (обвързване на данни) и интернационализация (форматиране на данни). JSP Expression Language - EL, който служи като инструмент за обвързване на данни, осигурява удобна нотация за работа с обекти и свойства на приложенията.

Обектно ориентирани и инструменти за събития

Декларативни набори от инструменти

API на потребителския интерфейс на Android е управляван от събития, обектно-ориентиран, но заедно с основния, ОС има XML-базиран помощник API, който ви позволява да декларирате структурата и оформлението на потребителския интерфейс, както и да оформяте неговите елементи и управляват техните свойства. Декларативното описание на интерфейса по-ясно показва неговата структура и помага при отстраняване на грешки; ви позволява да промените оформлението без рекомпилация; помага за адаптиране към различни платформи, размери на екрана и пропорции. Когато създавате по-динамични потребителски интерфейси, можете също така да задавате и променяте структурата на елементите програмно, като използвате API на обекти, но свързването на данни не се поддържа. Има обаче Android-Binding - решение с отворен код на трета страна, което ви позволява да свързвате елементи на потребителския интерфейс към модели на данни.

Можете да използвате друг речник на XML, разширяващият се език за маркиране на приложения (XAML), за да създадете потребителски интерфейси за програми на Windows и богати на функции интернет приложения, базирани съответно на Windows Platform Foundation и Microsoft Silverlight. Той ви позволява да дефинирате структурата, оформлението и стила на потребителския интерфейс, а също така, за разлика от езика за маркиране на Android, той поддържа обвързване на данни и възможност за обработка на събития.

Nokia препоръчва Qt Quick за разработчици, инструментариум за различни платформи за настолни, мобилни и вградени операционни системи, който поддържа QML (декларативен скриптов език, базиран на синтаксиса JSON). Описанието на потребителския интерфейс е йерархично и поведението е програмирано в ECMAScript. Тук, както и при обикновения Qt, се поддържа механизмът за сигнал-слот. Qt Quick поддържа възможността за обвързване на свойствата на елементите на потребителския интерфейс към модел на данни, както и концепцията за автомат за състояние, за да моделира графично поведението на интерфейса.

Друг пример е Enyo, инструментариум за различни платформи за създаване на потребителски интерфейс в ECMAScript, в който структурата на интерфейса се задава декларативно и поведението се контролира от манипулатори на събития. Събитията се обработват по три начина: на ниво отделни компоненти на потребителския интерфейс, чрез преминаване от детето към родителя без директно обвързване, а също и чрез излъчване и абониране за такива съобщения (също без директно обвързване). Разхлабеното свързване на елементи на потребителския интерфейс разширява повторната употреба и капсулирането на големи части от интерфейса. Всъщност основната сила на Enyo е неговият капсулиращ модел, благодарение на който потребителският интерфейс може да бъде сглобен от многократно използваеми самостоятелни градивни блокове с предварително дефинирани интерфейси. Този модел улеснява абстракцията и обхваща всички архитектурни нива на потребителския интерфейс. Сътрудниците на проекта Enyo работят по внедряването на поддръжка за свързване на данни.

Eclipse XML Window Toolkit е друг набор от инструменти, фокусиран върху декларативното описание на потребителския интерфейс. Първоначалната задача на създаването му беше да обедини всички инструменти за разработка на потребителски интерфейс в Eclipse, включително SWT, JFace, Eclipse Forms и други - всичките им елементи по някакъв начин имат съответствия в XWT. Структурата и оформлението на потребителския интерфейс в XWT се дефинира с помощта на XML-базиран език, а езикът на израза се използва за свързване на данни (достъп до обекти на Java приложения). Обработката на събития е програмирана в Java и CSS се използва за стилизиране на интерфейсните елементи. Двигателят за изпълнение на приложението XWT е реализиран като Java аплет и ActiveX контрол, тоест може да работи в почти всеки браузър.

Моделни инструменти

Голяма част от технологията за разработване на потребителски интерфейс се основава на модели и специфични за домейна езици. Това са главно интерфейсни модели, но могат да се използват и домейнови модели. И в двата случая моделът е необходим за предварително генериране на потребителския интерфейс или той се интерпретира по време на изпълнение. Този клас технологии повишава нивото на абстракция, предлага подобрени системни методи за проектиране и внедряване на потребителски интерфейси и осигурява инфраструктура за автоматизиране на свързани задачи. Въпреки това, според някои изследователи [1], базираните на модели технологии не предоставят универсален начин за интегриране на потребителския интерфейс с приложение и все още няма съгласие кой набор от модели е оптимален за описване на потребителския интерфейс. Проблемът със свързването на данни не е решен и моделите не са комбинирани за решаване на други проблеми за разработване на потребителски интерфейс.

Анализирайки поколения моделни подходи за разработване на потребителски интерфейс от 90-те години насам, може да се стигне до заключението [2], че днес съществува общоприето разбиране за нивата на абстракция и типовете модели, подходящи за разработването на съвременни потребителски интерфейси, но все още няма консенсус (стандарти) относно информацията (семантика), която различните модели трябва да съдържат. Модели на задачи, диалози и презентации могат да се считат за основни: презентационният модел решава проблемите на структурирането, планирането и стилизирането; моделът на задачите е отговорен за обвързването на данни - за всяка задача се посочват потребителският интерфейс и логическите обекти, с които да се работи; моделът на диалога обхваща поведенчески аспекти. Пример за модел на задача е Concurrent-TaskTrees (CTT), той може да се използва заедно с езика MARIA, който реализира останалите модели на потребителския интерфейс [3]. CTT, комбиниран с MARIA, е пълен набор от инструменти, управляван от модел. Доста голямо семейство инструменти за моделиране на потребителски интерфейс също разчитат на UML, модели на обект-връзка или други подобни. UML профилите се използват широко при изграждането на потребителски интерфейси за бизнес приложения. Има и други активно използвани набори от инструменти - например WebRatio, UMLi, Intellium Virtual Enterprise и SOLoist.

Генерализирани потребителски интерфейси

Тенденции и предизвикателства