Различные виды программ для Multi-Touch столов
Обзор протокола Multi-Touch технологий передачи данных. Анализ и сравнение версий протокола Multi-Touch технологий передачи данных. Требования к разрабатываемой системе. Методы разработки программного комплекса. Программное обеспечение для Multi-Touch.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 01.10.2016 |
Размер файла | 1,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Различные виды программ для Multi-Touch столов
Оглавление
Введение
1. Обзор и анализ
1.1 Обзор протокола Multi-Touch технологий передачи данных
1.2 Анализ и сравнение версий протокола Multi-Touch технологий передачи данных
1.3 Обзор аналогов
1.4 Требования к разрабатываемой системе
2. Методы разработки программного комплекса
2.1 Конструкторы
2.2 Разработка с "нуля"
2.3 Выбор метода разработки
3. Практико-техническая часть
3.1 Архитектура и модель
3.2 Разработка
3.3 Схема работы
3.4 Перспективы развития
Заключение
Список литературы
Приложение
Введение
Мобильные телефоны, планшеты, платежные терминалы, стенды с интерактивными картами торговых центров, Multi-Touch стенды на выставках - все это яркие представители сенсорных технологий, которые уже стали неотъемлемой частью нашей жизни. Но часто мы сталкиваемся с тем, что то или иное программное обеспечение неудобно в использовании, не логично и порой сложно в настройке.
Программное обеспечение для Multi-Touch устройств можно подразделить на две большие группы:
- Отдельные приложения
- Комплексные решения
Отдельные приложения создаются для выполнения конкретной задачи, в то время как комплексные решения обхватывают широкий спектр задач.
Большинство производителей Multi-Touch устройств предоставляют свое собственное программное обеспечение. В случае с мультимедийными Multi-Touch столами это чаще всего просто набор приложений.
Отдельные приложения можно разделить исходя из сфер деятельности, для которых они разработаны:
- Образование
- Торговля
- Бизнес
Актуальность.
Чтобы показать актуальность, был произведён поиск статистических данных, которые бы отражали рост продаж основного компонента любого Multi-Touch устройства, сенсорных экранов. Однако был найден график с предполагаемым количеством продаваемых Touch дисплеев 2012-2016 годах (рис. 7).
Рис. 7. Предполагаемое количество продаваемых Touch дисплеев 2012-2016 годах
Можно заметить, что за 1 год, количество продаваемых дисплеев увеличилось на пол миллиарда штук, а за 4 года планируется увеличение на 1.5 миллиарда штук.
Целью данной работы является исследование и разработка программного комплекса для Multi-Touch стола. Для достижения поставленной цели необходимо решить следующие задачи:
- Обзор и анализ существующих протоколов Multi-Touch
- Обзор аналогов
- Исследование технологий для реализации поставленной цели
- Разработка структуры
- Разработка прототипа
Объектом исследования являются приложения разработанные для интерактивных поверхностей, таких как Multi-Touch столы и стены. Так же в работе исследованы различные способы создания приложений.
Практическая значимость работы заключается в создании прототипа программного комплекса для Multi-Touch стола.
1. Обзор и анализ
1.1 Обзор протокола Multi-Touch технологий передачи данных
TUIO [7] - основной кроссплатформенный протокол с открытым исходным кодом Multi-Touch передачи данных. Он был приобщен к общественному достоянию, независимо от его первоначального внедрения в reacTIVision [6], а также он был принят в ряд других проектов, связанных с Multi-Touch взаимодействиями, разрабатываемых сообществом NUI group [12] и различными институтами. Сам протокол изначально разрабатывался для настольных интерактивных поверхностей, чтобы пользователь мог манипулировать различными объектами на поверхности и использовать различные жесты, передавая данные о манипуляциях в программы пользователей. Работа протокола изображена на рис. 1. Объекты отслеживаются с помощью системы датчиков (камер) и могут быть идентифицированы. Протокол передает массив блобов. Блоб это проекция объекта на поверхность. Каждый блоб содержит в себе определенный набор параметров:
- Позиция по всем трем осям X, Y, Z
- Угол поворота в трех плоскостях
- Размеры (длина, ширина, высота)
- Вектор движения (скорость и направление) в трех плоскостях
- Вектор поворота (скорость поворота и направление) в трех плоскостях
- Ускорение перемещения
- Ускорение поворота
Рис. 1. Схема работы TUIO
Протокол TUIO определяет два основных класса сообщений: SET сообщения и ALIVE сообщения. SET сообщения используются для передачи информации о состоянии объекта, такие как положение, ориентацию и других распознанных параметров. ALIVE сообщения указывают текущий набор объектов, присутствующих на поверхности, используя список уникальных идентификаторов сеансов.
Для того, чтобы избежать возможных ошибок вызванных потерей пакетов, никакие явные сообщения добавляющие или удаляющие какие-либо объекты не включены в протокол TUIO. Клиент определяет время жизни объектов и определяет какие объекты были добавлены или удалены, исходя из разницы между последовательностями сообщений класса ALIVE.
Обобщая принцип работы протокола:
1. Атрибуты объектов посылаются после каждого изменения состояния, используя сообщения класса SET
2. Клиент понимает был ли добавлен объект или удален исходя из множества сообщений класса ALIVE
3. При удалении объекта отправляется обновленное ALIVE сообщение
Протокол TUIO кодируется с помощью открытого формата Open Sound Control, который обеспечивает эффективный метод двоичного кодирования для передачи произвольных данных контроллера. Именно поэтому сообщения TUIO могут передаваться через любой канал, который поддерживается фактической реализацией OSС. Метод транспорта по умолчанию - протокол UDP. Двоичные данные кодируются с помощью OSC и пакуются в пакеты UDP, которые TUIO по умолчанию отправляет на номер порта 3333. Этот метод транспорта называют - TUIO / UDP, и большинство реализаций протокола основаны на этом методе из-за своей простоты и скорости при передаче как по локальной так и глобальной сети. Поскольку OSC непосредственно связан с выделенным способом транспортировки, альтернативные транспортные каналы, такие как TCP также могут быть использованы для передачи кодированных данных.
1.2 Анализ и сравнение версий протокола Multi-Touch технологий передачи данных
На данный момент у TUIO есть 3 версии протокола: 1.0, 1.1 и 2.0. Версия 2.0, вышедшая в 2014, имеет множество изменений и нововведений по сравнению с предыдущими версиями. Сравнение версий в табл. 1.
Таблица 1
Сравнение версий протокола TUIO
TUIO 1.0 |
TUIO 1.1 |
TUIO 2.0 |
||
Альретнативные методы транспорта (TUIO / TCP и TUIO / FLC) |
Нет |
Есть |
Есть |
|
TimeCode у блобов в микросекундах |
Нет |
Нет |
Есть |
|
Определение силы нажатия |
Нет |
Нет |
Есть |
|
Возможность использования объемной поверхности |
Нет |
Нет |
Есть |
Протокол TUIO версии 2.0 является наиболее привлекательном для использования в проекте разработки софта для Multi-Touch устройств, таких как Multi-Touch стол.
1.3 Обзор аналогов
Компания TouchMagix™ [4] разрабатывает Multi-touch столы и софт для них. Софт представляет набор приложений для разных сфер:
- Недвижимость
- Розничная торговля
- IT
- Промышленность
- Медицина
- Образование
- Сфера развлечений
Для каждой сферы набор приложений уникален. Но если специфика заказчика более широкая то компания предлагают Advanced Multi-Touch Snowflake Software Suite набор из 35+ универсальных приложений (рис. 1).
Рис. 1. Advanced Multi-Touch Snowflake Software Suite
Плюсы:
- Большое количество приложений
- Разделение решение на сферы
Минусы:
- Не связанность приложений
Компания PQ Labs [10] является одним из основоположников производителей Multi-Touch столов. Они производят не только столы, но и отдельно компьютеры и сенсорные экраны, а также софтверные корпоративные решения.
Одно из таких решений AirScreen (рис. 2). Приложение позволяющее транслировать экран с планшета, телефона или компьютера/ноутбука в реальном времени прямо на Multi-Touch поверхность или наоборот транслировать с Multi-Touch поверхности на все подключенные устройства. Пользователи могут добавлять комментарии, рисовать или даже управлять общим экраном, это делает презентации в компаниях более интерактивными.
Рис. 2. AirScreen
Также стоит отметить приложение для презентаций - Magic 3D PPT (рис. 3). Основными особенностями этого приложения является управление с телефона, подержка 3D моделей и взможность отправить презентацию аудитории.
Рис. 3. Magic 3D PPT
Плюсы данных приложений:
- Кроссплатформенность
Минусы данных приложений:
- Дороговизна
- Невозможность внесения каких-либо изменений
spinTouch [17] американская компания, работающая с крупными корпорациями такими как: Acer, Pepsi, Ford, Cisco и так далее, которая уделяет наибольшее внимание UI/UX. Интересное решение от этой компании Social Edge (рис. 4). Приложение собирает ту или иную информацию о компании из социальных сетей или иных медиа ресурсов и выводит на Multi-Touch стол или иную интерактивную поверхность. Так же spinTouch предлагают разработку приложений на заказ.
Рис. 4. Social Edge
Плюсы этого приложения:
- Единственное социальное решение на рынке
- Условно бесплатное
Omnivision Studios [14] предлагает не только разработку Multi-Touch программного обеспечения и игр на заказ, но и хорошо известен за счет Omnitapps. Omnitapps это их фирменная библиотека, состоящая из множества программных решений.
Продукты Omnitapps идеально подходят для любого места с установленными сенсорными экранами, они упрощают общение пользователей с клиентами, делая это общение интуитивно понятным и интерактивным. Omnitapps может быть установлен везде в магазинах розничной торговли и выставочных залах, образовательных и учебных заведениях, телевизионных студиях, выставках и конференциях, гостиничных и больничных холлах, музеях, а также центрах по продаже недвижимости. Эти программные решения используются для всего, например, для привлечения новых клиентов, позволяя приветствовать и направлять посетителей, сообщая им информацию о продукте с помощью цифровых брошюр, презентаций и развлекательных приложений.
Omnivision Studios не отстают от современных трендов. Их новые программные решения, такие как каталог, "селфи", выставочный зал и различные игры, повышают интерактивность мест где они установлены, начиная с магазинов и заканчивая школами.
NUITEQ [11], по словам представителей самой компании, является ведущим в мире новатором в области взаимодействия человека с компьютером. Они сосредоточены на интуитивно понятных пользовательских интерфейсах. Два основных продукта компании - "SNOWFLAKE BUISNESS" и "SNOWFLAKE MULTITEACH".
"SNOWFLAKE BUISNESS" - решение для бизнеса содержащие в себе набор приложений для совместной работы и презентаций.
"SNOWFLAKE MULTITEACH" - набор программ и игр для учителей и учеников. Все игры и программы предназначены для улучшения как коммуникационных так и социальных навыки. Дети обмениваются идеями и сотрудничают друг с другом, то есть программное обеспечение помогает строить их взаимоотношения между собой и развивать знания по различным предметам, таким как орфография, математика, география, биология и др.
1.4 Требования к разрабатываемой системе
В результате анализа существующих решений их сильных и слабых сторон были сформированы требования к разрабатываемой системе.
Требования к функциональным характеристикам
Программный комплекс должен обеспечивать возможность выполнения следующих функций:
1. Отображение информации:
a. Текстовых документов
b. Изображений
c. Видео и аудио материалов
2. Возможность изменения информации
Требования к надежности
Защита от несанкционированного изменения информационного содержимого. Так же весь код программ будет обфусцирован.
Требования к составу и параметрам технических средств
В состав технических средств должен входить персональный компьютер, который должен работать под управлением операционной системы Windows XP и выше, Fedora 18 и выше, Ubuntu 12.04 и выше, openSUSE 12.3 и выше. Системные и информационные файлы программ размещаются на персональном компьютере.
Требования к программной и информационной совместимости
Программный комплекс должен иметь интуитивно понятный пользовательский интерфейс
2. Методы разработки программного комплекса
Можно выделить три основных метода разработки программного обеспечения:
1. Конструкторы программ (Аlgoritm2, Devel Studio, MnCreator, Game Maker и др.).
2. Программные кроссплатформенные фреймворки (Qt, U++, nw.js, Electron и др.).
3. Написание с нуля на каком-либо языке программирования или связке языков.
2.1 Конструкторы
Аlgoritm2 [19] появился в 2009 году и позиционирует себя как конструктор программ для людей не знающих каких-либо языков программирования. При помощи данного конструктора, текстового редактора и т.п. Для создания логики программ используется встроенный язык инструкций, который осваивается за 5 минут прохождения обучения. Из плюсов так же можно выделить большое комьюнити и большое количество примеров программ. Главным минусом является рост сложности понимания логики приложения с увеличением размера приложения.
Devel Studio [15] более сложный по сравнению с Аlgoritm2 конструктор, позволяющий создавать как программы так и игры. Основная логика приложения пишется на языке программирования PHP. Программа содержит визуальные редакторы форм, многофункциональную панель для назначений задач объектам, мастер сборки программы в exe формат и конечно же мастер отладки, который позволяет запускать проект в режиме отладки и наблюдать за хранящимися в памяти переменными. Так же программа проверяет исходный код проекта на синтаксические ошибки.
Основные Возможности программы:
- Компиляция проекта в exe файл
- Поддержка языка программирования PHP 5
- Наличие режима отладки программы и проверки кода на ошибки
- Возможность использовать все расширения PHP, такие как mysql, curl, sockets и т.п.
- Богатая компонентная система содержит в себе около 60 компонентов, среди которых ксть как GUI компоненты, так и компоненты для работы с интернетом, различными языками, данными, потоками, диалогами и т.п.
- Удобная система создания тем для создаваемых приложений, то есть возможность создать свое оформление программе или выбрать оформление из более чем 60 подготовленных тем
- Встроенный PHP редактор кода, с умной подсветкой и авто дополнением
MnCreator [9] - это визуальный конструктор интерактивных приложений. Он не требует знаний программирования и позволяет создавать многофункциональные кроссплатформенные приложения.
Основные возможности конструктора:
- Использование сцен
- Объекты и плагины
- Возможность добавления объектам анимации
- Задания различных действий при каком-либо взаимодействии с объектами
- Автоматическое резервное копирование
- Кроссплатформенность
Данный конструктор достаточно специфичен и спектр создаваемых на нем приложений очень узок. Пример приложений которые можно создать на MnCreator:
- Интерактивные приложения и презентация
- Обучающие приложения
- Комиксы
Game Maker [2] - инструментарий для разработки в основном игр, но на нем без труда можно разрабатывать и приложения. Основные возможности программы:
- Кроссплатформенная разработка. Возможность разрабатывать приложения для Windows desktop, Mac OS X, Ubuntu
- Drag and Drop технология позволяет быстро добавлять в приложения различные типы файлов
- Game Maker Language (GML) встроенный язык программирования основанный на языке программирования C. GML дает вам всю мощь других языков программирования, но с добавлением функциональности Drag and Drop
- Встроенная система аналитики, анализирующая как именно пользователи пользуются твоим приложениям, с поддержкой формы обратной связи.
- Поддержка контроля версий приложения, использование Git/SVN
- Удобное дерево ресурсов
- Огромный магазин расширений
- Возможность создания всплывающих окон
Главным недостатком всех конструкторов является отсутствие поддержки TUIO протокола следовательно при использовании любого конструктора придется писать и отлаживать для него плагин для чтения данных из TUIO сообщений
Фреймворки
Qt [16] является основой разработки кроссплатформенных приложений для настольных, встраиваемых и мобильных систем. Поддерживаемые платформы включают Linux, OS X, Windows, VxWorks, QNX, Android, IOS, BlackBerry OS, Sailfish и другие. Сам по себе Qt это не язык программирования. Он основан на C ++ и расширен при помощи написанных на С++ библиотек (модулей). Ключевые Qt модули:
- QtCore - ядро не графических классов, используемых другими модулями.
- QtGUI - базовые классы для графического пользовательского интерфейса (GUI) компонентов. Включает в себя OpenGL.
- QtMultimedia - классы для работы с аудио, видео, радио и функционирования камеры.
- QtMultimediaWidgets - основанные на виджетах классы для реализации мультимедийной функциональности.
- QtNetwork - классы, упрощающие сетевое программирование
- QtQML - классы для QML и JavaScript языков.
- QtQuick - декларативный фреймворк для построения высоко динамичных приложений с пользовательскими интерфейсами.
- QtQuickControls - интерфейс на базе Qt Quick управления для создания классических пользовательских интерфейсов.
- QtQuickDialogs - типы для создания и взаимодействия с системой диалогов из QtQuick.
- QtSQL - классы для интеграции баз данных с помощью SQL.
- QtTest - классы для модульного тестирования Qt приложений и библиотек.
- QtWidgets - классы для расширения Qt GUI с помощью виджетов C ++
С использованием Qt, GUI можно создавать интерфейс непосредственно на языке программирования C ++ с использованием Qt виджетов. Также можно воспользоваться поставляемым вместе с Qt интерактивным графическим инструментом под названием Qt Designer, который функционирует в качестве генератора кода интерфейса на основе Qt виджетов.
Другой способ создания графических интерфейсов с использованием Qt - модуль QtQuick. Графический интерфейс, создаваемые с использованием QtQuick, написаны на QML. QML это декларативный язык программирования, который интегрирует Javascript для процедурного программирования. QtQuick предоставляет необходимые модули для разработки графических интерфейсов с QML.
Qt5 является последней версией Qt и содержит в себе не малое количество изменений по сравнению с Qt4. Она позволяет разработчикам создавать многоцелевые приложения с интуитивно понятным пользовательским интерфейсом быстрее, чем когда-либо прежде.
Разработчикам JavaScript и QML проще работать за счет улучшенной поддержки этих языков программирования в Qt5, при этом они могут использовать C++ плагины и виджеты Qt. Разработчики HTML5 для создания веб-приложений могут использовать встроенный браузер на основе хрома (QtWebEngine).
Qt5 использует граф сцены OpenGL как основу, для ускорения графики QtQuick, что позволяет сделать визуально более привлекательные пользовательские интерфейсы с анимацией, впечатляющие графические эффекты, а также использовать системы частиц.
QtQuick обеспечивает необходимую инфраструктуру для разработки приложений QML. Новые возможности в QtQuick включают в себя:
- Холст для рисования. Холст предоставляет API, который похож на API HTML5 Canvas, и имеет схожие функции.
- Шейдеры
- Эффекты частиц для создания разнообразных 2D систем частиц.
- Спрайты могут быть использованы в анимации 2D графических объектов и в качестве источника для систем частиц.
- OpenGL на основе архитектуры рендеринга для обеспечения оптимальной производительности.
Подводя итог, Qt активно развивающийся кроссплатформенный фреймворк с огромными возможностями. Единственным минусом является необходимость покупки лицензии в случае разработки коммерческого программного обеспечения.
U++ (Ultimate++) [18] обещает радикальное сокращение сложности кода типичных приложений для настольных компьютеров. Так же как и Qt U++ использует язык программирования С++ как основу.
В U++, большинство объектов привязаны к какой-то логической структуре. В результате, вы не увидите много новых операторов в коде, используя U++, и почти никаких оператор DELETE за пределами реализации контейнеров.
Это, конечно, не означает, что вы не можете использовать указатели, но использовать указатели нужно грамотно только чтобы указывать на конкретные вещи, а не на группы ресурсов.
В U++ нет никаких общих интеллектуальных указателей (как boost::shared_ptrc), используемых для управления группами ресурсами на уровне интерфейса. Они не нужны и считаются плохой практикой.
Хотя виртуальные методы обеспечивают отличный способ организовать входной интерфейс виджетов GUI (например, мыши или клавиатуры ввода), каждый графический виджет должен обеспечить эффективные средства для вывода интерфейсов (когда кнопка нажата, выходной интерфейс отвечает за доставку этой информации до клиентского кода).
В U++ решение этих потребностей называется Callback. Можно подумать, что колбеки в очень обобщенном виде указатели на функции. Каждый Callback представляет собой какое-либо действие - обычно это включает в себя вызов определенной функции или определенного метода объекта - который может быть вызван в любое время.
Callbacks универсальны и могут принимать некоторые очень интересные формы. Например, тип Callback делает простую задачу вызова двух других заданных обратных вызовов, обеспечивая очень простой инструмент для группировки. Есть колбеки, которые не принимают никаких аргументов, но вызвать функцию или метод с аргументом при вызове - это дополнительный аргумент хранится в обратный вызов вовремя его строительства. Фрагмент кода изображен на рис. 66.
Рис. 66. Фрагмент кода
Список основных виджетов U++:
- Label, Button и Option являются основными, всем известными виджетами.
- Switch - "группа радиокнопок", во всяком случае в U ++ это единый виджет (таким образом, чтение Значение переключателя гораздо более последовательным).
- EditField, EditInt, EditDouble, EditIntSpin, EditDate, EditString являются основными полями ввода. U ++ обеспечивает различные типы полей ввода для конкретных типов значений.
- LineEdit и DocEdit два вида простых текстовых редакторов. LineEdit работает со строками в то время как DocEdit работает с текстом.
- ScrollBar и ScrollBars. U++ ScrollBar также обеспечивает все расчеты для определения положения зоны обзора.
- Slider это "аналоговый" виджет ввода, значение которого определяется положением "слайдера".
- HeaderCtrl представляет заголовки различных таблиц, а именно ArrayCtrl
- ArrayCtrl, пожалуй, самый сложный виджет в U++. Это виджет таблица и он используется для работы на матрицах значений. Он может объединить значения, которые будут отображаться (используя специальный класс Display) в виде столбцов (да, несколько значений в строке могут быть объединены в одну колонку, используя Convert в случае необходимости).
- SqlArray является производным от ArrayCtrl и добавляет способности действовать в качестве редактора SQL таблицы, в том числе возможности мастер-деталь.
- Splitter используется для реализации Split View виджетов с регулируемым бар.
- ProgressIndicator может быть использован для показания процента выполнения длительных операций.
- TabCtrl используется для диалоговых окон с вкладками.
- TreeCtrl используется для отображения произвольных деревьев иерархий.
- ColorSelector, ColorPusher и ColorButton виджеты для графического выбора цвета пользователем.
- MenuBar и ToolBar можно построить, использовав как раздельные методы так и единый метод для построения.
- ColumnList отображает значения в настраиваемых пользователем столбцах.
- FileList тот же самый ColumnList, только используется для отображения списков файлов.
И, наконец, U++ имеет инструменты для решения продвинутого форматирования текста:
- RichText это класс, который обеспечивает хранение комплексных текстовых документов, включая шрифт и форматирование абзаца и даже вложенной поддержки таблиц.
- RichTextView это виджет для просмотра RichText текстов.
- RichEdit является полнофункциональным RichText текстовым редактором со встроенной проверкой орфографии.
Помимо множество встроенных виджетов и кроссплатформенности, стоит отметить тот факт, что по сравнению с Qt как размер кода, так и вес скомпилированной программы у U++ меньше.
Electron [1] и nw.js [13] фреймворки, позволяющие создавать кроссплатформенные приложения, используя JavaScript, HTML, and CSS. Оба Фреймворка опираются на node.js платформу, основанную на JavaScript движке V8, и предлагающую асинхронное API для работы с сетью и диском. Использование этих фреймворков оправдано когда нужно создать не просто приложение, а целый сервис или в случае уже имеющегося веб-приложения перенести его на десктоп.
Все описанные выше фреймворки имеют плагины написанные сторонними разработчиками для поддержки TUIO протокола.
2.2 Разработка с "нуля"
Разработка приложения на каком-либо языке с нуля достаточно трудоемкий процесс, так как в случае создания интерфейсов понадобиться множество времени для того чтобы разобраться в готовых методах операционных систем и, исходя из того что у каждой операционной системы свои методы, придется писать для каждой операционной системы свое приложения, а это вычеркивает кроссплатформенность.
2.3 Выбор метода разработки
Тщательно проанализировав методы принято решение использовать фреймворк Electron (результаты сравнение nw.js и Electron в табл.2) для разработки прототипа по следующим причинам:
1. Возможность расширения до сервиса
2. Наличие исчерпывающей документации с примерами
3. Высокая скорость работы
4. Программный код полностью открыт (Лицензия MIT)
Для работы с протоколом TUIO будет использован готовый плагин "Caress" [3] который прост в интеграции, не перегружен лишними функциями, хорошо документирован разработчиком и распространяется по лицензии MIT. Благодаря выбранным технологиям планируется достигнуть:
1. Высокой скорости работы
2. Кроссплатформенности
Таблица 2
Сравнение nw.js и Electron
nw.js (node-webkit) |
Electron |
||
Проект запущен |
2011 |
2014 |
|
Спонсор |
Intel |
GitHub |
|
Последний официальный релиз |
v0.12.3 |
v0.36.7 |
|
Дата релиза |
07/29/2015 |
01/30/2016 |
|
Лицензия |
MIT |
||
Документация |
Есть |
||
Поддержка Windows |
Есть (включая Windows XP) |
Есть (начиная с Windows 7) |
|
Поддержка Linux |
Есть |
||
Поддержка OSX |
Есть |
||
Chromium версия |
41.0.2272.76 |
47.0.2526.110 |
|
- Бета версия |
48.0.2564.97 |
||
Node.js версия |
io.js 1.2.0 |
Node.js 5.1.1 |
|
- Бета версия |
Node.js v5.4.1 |
||
Мультимедиа кодеки |
Vorbis, Theora, Opus, VP8, VP9, PCM, Ogg, WebM, WAV |
||
Поддержка Flash |
NPAPI плагин |
Pepper плагин |
|
Авто обновлятор |
Не встроен |
Встроен |
|
Создатель логов |
Не встроен |
Встроен |
|
Поддержка Mac App Store |
Есть |
||
Лайков на Github |
27192 |
23462 |
|
Коммитов GitHub |
62 |
300 |
|
Коммитов Master Branch |
2275 |
7268 |
|
Следят за проектом GitHub |
1814 |
1156 |
|
Форков на GitHub |
3006 |
2308 |
|
Поддержка лицензированных кодеков: MP3, MP4, H.264, AAC |
Не встроена |
Есть |
3. Практико-техническая часть
На данный момент разработан прототип программного комплекса, имеющий три рабочих приложения и модуль настроек. При разработке комплекса были использованы следующие технологии: HTML 5, jQuery [5], Metro UI CSS 3.0 [8], Electron, TUIO "Caress" для node.js.
3.1 Архитектура и модель
Структура работы программного комплекса показана на рис. 1. Архитектурно система представляет собой набор связанных между собой приложений, состоящих из заранее заготовленных модулей, макет одного из таких приложений показан на рис. 2.
Рис. 1. Структура программного комплекса
Рис. 2. Макет модульного приложения типа "Каталог"
Главное меню, как и все приложения оформлены в стиле Metro UI.
3.2 Разработка
Разработка была начата с установки и настройки фреймворка Electron. Для приложения была создана структура папок и начальный набор файлов (рис. 3). Папка "img" создана для хранения изображений, папки "css" и "js" для хранения стилей и скриптов, "index.html" это главный файл приложения, файлы "vendor.css" и "vendor.js" содержат в себе скомпилированные сторонние стили и скрипты, а в файлах "main.css" и "main.js" содержатся уже пользовательские стили и скрипты. В package.json содержится информация о приложении для фреймворка Electron.
Рис. 3. Начальная структура файлов и папок
После настройки Electron и запуском тестового "Hello word", были разработаны модули и собран из них основной каркас программного комплекса, приложение для редактирования документов, приложение для создания презентаций и пример приложения каталога. Так же добавлен специальный модуль для всплывающих окон. Пример того как выглядит приложение для работы с презентациями и всплывающее окно рис. 4.
Рис. 4. Приложение для работы с презентациями
3.3 Схема работы
Завершив создание прототипа приложения было настроено соединение с TUIO. Схема работы показана на рис. 4.
Рис. 4. Схема соединения приложения с TUIO
Сервер посредством "server.js" транслирует данные с протокола TUIO на socket.io, а "client.js" обрабатывает эти данные и взаимодействует с самим приложением.
3.4 Перспективы развития
Будущие этапы развития приложения:
1. Написание новых модулей
2. Оптимизация текущего кода
3. Создание новых приложений
4. Локализация
5. Создание конструктора приложений
6.
Заключение
В итоге был разработан работоспособный прототип программного комплекса для Multi-Touch стола. Систему можно развивать в дальнейшем. Так же был проанализирован рынок приложений для Multi-Touch устройств
.
Список литературы
1. Electron [В Интернете]. - 6 Апреля 2016 г.. - http://electron.atom.io/.
2. GameMaker | YoYo Games [В Интернете]. - 10 Марта 2016 г.. - http://www.yoyogames.com/gamemaker.
3. GitHub - ekryski/caress-server: NodeJS TUIO translator and event emitte [В Интернете]. - 20 Апреля 2016 г.. - https://github.com/ekryski/caress-server.
4. Interactive Projector | Interactive Floor | Interactive Wall | Interactive Tables [В Интернете]. - 15 Января 2016 г.. - http://www.touchmagix.com/.
5. jQuery [В Интернете]. - 18 Апреля 2016 г.. - https://jquery.com/.
6. Kaltenbrunner M. Bencina R Proceedings of the first international conference on "Tangible and Embedded Interaction" [Конференция] // reacTIVision: A Computer-Vision Framework for Table-Based Tangible Interaction. - Baton Rouge, Louisiana : [б.н.], 2007.
7. Kaltenbrunner M. Bovermann T., Bencina R., Costanza E. Proceedings of the 6th International Workshop on Gesture in Human-Computer Interaction and Simulation (GW 2005) [Конференция] // TUIO - A Protocol for Table-Top Tangible User Interfaces. - Vannes (France) : [б.н.], 2005.
8. Metro UI CSS - The front-end framework for developing projects on the web in Windows Metro Style [В Интернете]. - 11 Апреля 2016 г.. - https://metroui.org.ua/.
9. MnCreator [В Интернете]. - 9 Марта 2016 г.. - http://www.mncreator.com/.
10. Multi-Touch G5 " PQ Labs " MultiTouch Screen, Multi-Touch Technology, MultiTouch Wall Solution, Table, LCD, Monitor, Plasma Display, Multi-Touch Software [В Интернете]. - 13 Января 2016 г.. - http://www.multitouch.com/.
11. Multitouch software - Touchscreen software Snowflake - NUITEQ [В Интернете]. - 20 Января 2016 г.. - http://www.nuiteq.com/.
12. NUI Group - Natural User Interface Group [В Интернете]. - 5 Декабря 2015 г.. - http://nuigroup.com/.
13. NW.js [В Интернете]. - 8 Апреля 2016 г.. - http://nwjs.io/.
14. Omnivision Studios - Multi-touch Software Development Company - We specialize in building multi-touch software applications with our main software line called Omnitapps [В Интернете]. - 18 Января 2016 г.. - http://www.omnitapps.com/.
15. PHP DevelStudio - Среда разработки для создания программ на PHP [В Интернете]. - 6 Марта 2016 г.. - http://develstudio.ru/.
16. Qt - Home (Russian) [В Интернете]. - 25 Марта 2016 г.. - https://www.qt.io/ru/.
17. spinTouch [В Интернете]. - 15 Января 2016 г.. - http://www.spintouch.com/.
18. Ultimate++ is a C++ cross-platform rapid application development framework :: Ultimate++ [В Интернете]. - 26 Марта 2016 г.. - http://www.ultimatepp.org/.
19. Создание программ и игр без программирования [В Интернете]. - 3 Марта 2016 г.. - http://algoritm2.ru/.
Приложение
Текст программы
Размещено на Allbest.ru
Подобные документы
Описание процесса работы Touch Pad, операции над процессом. Выбор вычислительного процесса. Построение метамодели "асинхронного процесса", свойства его исходного положения на основе ее анализа. Предметная интерпретация метамодели на основе сети Петри.
контрольная работа [86,3 K], добавлен 06.09.2011Использование карманного персонального компьютера (КПК) в качестве электронных органайзеров. История развития карманных компьютеров. Обзор основных поколений iPod Touch. Встроенное программное обеспечение КПК. Особенности производительности КПК.
реферат [138,0 K], добавлен 15.12.2014Общие сведения о протоколе передачи данных FTP. Технические процессы осуществления соединения с помощью протокола FTP. Программное обеспечение для осуществления соединения с помощью протокола FTP. Некоторые проблемы FTP-серверов. Команды FTP протокола.
реферат [766,6 K], добавлен 07.11.2008Описание основных типов станций протокола HDLC. Нормальный, асинхронный и сбалансированный режимы работы станции в состоянии передачи информации. Методы управления потоком данных. Формат и содержание информационного и управляющего полей протокола HDLC.
лабораторная работа [77,1 K], добавлен 02.10.2013Функция протокола и структура пакета разрабатываемого протокола. Длина полей заголовка. Расчет длины буфера на приеме в зависимости от длины пакета и допустимой задержки. Алгоритмы обработки данных на приеме и передаче. Программная реализация протокола.
курсовая работа [1,0 M], добавлен 18.05.2014Базовые характеристики агента, требования к программированию. Особенности архитектуры, организуемой в виде нескольких уровней, представляющих разные функциональные характеристики. Проблемы многоагентных систем при реализации идеи коллективного поведения.
презентация [255,2 K], добавлен 25.06.2013Использование агентными технологиями спектра типологий агентов и их модулей, архитектур МАС, агентных библиотек и средств поддержки разработки типов МАС. Набор базовых характеристик агента. Уровни в архитектуре. Многоагентская система, агент-координатор.
презентация [255,0 K], добавлен 25.06.2013Анализ предметной области объекта автоматизации "Компьютерные курсы". Обзор информационных технологий, подходящих для разработки информационной системы. Требования к разрабатываемой базе данных и ее проектирование, особенности ее программной реализации.
курсовая работа [369,8 K], добавлен 30.05.2013Строение жидкокристаллического монитора. Нематические жидкокристаллические субстанции. Рассеивание светового потока. Проблема TN матриц. Горизонтальные углы обзора матриц. Улучшенные матрицы S-IPS и SA-SFT. Технология Multi-Domain Vertical Alignment.
презентация [235,8 K], добавлен 04.09.2012Требования, предъявленные к полноценному локальному чату. Протокол передачи данных TCP. Описание программы сервера. Этапы разработки программного продукта. Функция приема сообщений от сервера. Принятие и отправка сообщений всем пользователям чата.
курсовая работа [447,0 K], добавлен 21.01.2016