Тип работы:
Предмет:
Язык работы:


Проектирование и реализация UI фреймворка на основе идеологии immediate mode

Работа №147609

Тип работы

Магистерская диссертация

Предмет

информационные системы

Объем работы29
Год сдачи2024
Стоимость5500 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
23
Не подходит работа?

Узнай цену на написание


Введение 4
1. Постановка задачи 5
2. Обзор 6
2.1. Имеющиеся решения 6
2.2. Лицензирование Qt 6
2.3. Описание Qt Widgets 7
2.4. Архитектура Qt Widgets 8
2.5. Использование GPU в Qt Widgets 9
2.6. Описание Qt Quick 9
2.7. Архитектура Qt Quick 10
2.8. Описание проблемы 12
2.9. Парадигма Immediate Mode GUI 13
2.10. MVVM 13
2.11. Dear ImGui 15
3. Решение 17
3.1. Адаптивный layout 17
3.2. Обработка событий 18
3.3. Композиция элементов 19
3.4. Поддержка автотестов 20
3.5. Применение 21
4. Апробация 22
4.1. Условия эксперимента 22
4.2. Исследовательские вопросы 22
4.3. Метрики 23
4.4. Обсуждение результатов 25
Заключение 28
Список литературы 29


В современном мире выбор инструментов для разработки нативных кроссплатформенных приложений является сложной задачей не смотря на небольшой спектр решений, представленных в этой области, по сравнению с многообразием систем, существующих в мире Web разработки. В первую очередь это касается проектов, для которых главным критерием является производительность, что накладывает ограничения как на стек используемых технологий, так и на количество связывающих их API-слоев. Таким образом возникает неизбежный компромисс между эффективностью кода и скоростью разработки пользовательского интерфейса. Ограничимся рассмотрением монолитных приложений, использующих Cd—+ в качестве основного языка.
В описанных ограничениях самым популярным среди имеющихся решений является многопрофильный, кроссплатформенный фреймворк Qt. Однако ввиду постепенного ужесточения лицензии на продукты Qt Group во всем мире и частичного запрета на их использование в нашей стране, применение данного фреймворка становится всё менее оправданным. Также Qt изначально создавался как универсальный фреймворк широкого применения и зачастую это сказывается на его производительности в случае высоконагруженных систем, работающих с тяжелыми графическими вычислениями, такими как потоковое видео высокого разрешения, анимации, 2D и 3D сцены, которые тесно интегрированы в пользовательский интерфейс и не могут быть вынесены в независимые окна. Данная работа посвящена анализу подобных систем и разработке альтернативного узкоспециализированного фреймворка, позволяющего создавать современные интерфейсы.


Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В ходе работы были получены следующие результаты.
1. Были выявлены особенности систем Qt Widgets и Qt Quick 2, подробно описаны применяемые архитектурные решения и их различия.
2. Был разработан UI фреймворк ImReady, поддерживающий адаптивную layout-систему и модель обработки событий.
3. Разработано средство тестирования графического интерфейса.
4. Было проведено сравнение производительности полученного фреймворка с Qt в различных сценариях использования приложения.
Таким образом, был получен фреймворк, с помощью которого можно создавать современный пользовательский интерфейс, состоящий из множества сложных элементов. При этом благодаря встраиванию в основной цикл рендеринга он позволяет минимизировать потребление ресурсов на отрисовку элементов управления. Однако его использование оправдано лишь в случае трудоемких вычислений на графическом процессоре, которые составляют основную часть потребляемых приложением ресурсов.


[1] Ahonen Santtu. Development hosts and targets in
Qt 6.0.— 2020.— URL: https://www.qt.io/blog/
qt6-development-hosts-and-targets.
[2] Cornut Omar. Dear ImGui: Bloat-free Immediate Mode Graphical User interface. — 2018. — URL: https://github.com/ocornut/imgui.
[3] Criswell Paul. The Evolution of the LGPL License Agreement. — Qt Virtual Tech Con. — 2020.
[4] Johan Thelin Jurgen Bocklage-Ryannel Cyril Lorquet. Qt6 QML Book.— 2021. — URL: https://www.qt.io/product/qt6/qml-book.
[5] Ltd. The Qt Company. Graphics View Framework. — 2024. — URL: https://doc.qt.io/qt-6/graphicsview.html.
[6] Ltd. The Qt Company. Qt Quick Scene Graph. — 2024. — URL: https: //doc.qt.io/qt-6/qtquick-visualcanvas-scenegraph.html.
[7] Radich Quinn. Retained Mode Versus Immediate Mode. — 2019. —
URL: https://learn.microsoft.com/en-us/windows/win32/
learnwin32/retained-mode-versus-immediate-mode.
[8] Recommendation W3C Candidate. CSS Flexible Box Layout Module.— 2018.— URL: https://www.w3.org/TR/css-flexbox-1/ flex-containers.
[9] Rob Costello Richard Maunsell Mitch Tulloch. Introduction to Microsoft Automation Solutions. — Redmond, Washington : Microsoft Press, 2014. - ISBN: 978-0-7356-9581-8.
[10] Serpa Yvens, Rodrigues Maria Andreia. A draw call-oriented approach for visibility of static and dynamic scenes with large number of triangles // The Visual Computer. — 2019. — 04. — Vol. 35.
[11] Smith Brett. A Quick Guide to GPLv3. — Free Software Found.— 2007. — http://www.gnu.org/licenses/quick-guide-gplv3.html.
[12] Роберт М. Чистая архитектура. Искусство разработки программного обеспечения. — "Издательский дом ””Питер”””, 2018. — ISBN: 9785446107728.— URL: https://books.google.com/books? id=d6JSDwAAQBAJ.
[13] Швец Александр. Погружение в паттерны проектирования.— 2021.
[14] Шлее Марк. Qt 5.10. Профессиональное программирование на C++. — Санкт-Петербург : БХВ-Петербург, 2018. — P. 1072. — ISBN: 978-5-9775-3678-3.



Работу высылаем на протяжении 30 минут после оплаты.




©2025 Cервис помощи студентам в выполнении работ