Разработать заготовку мультиплатформенного десктопного приложения

80 000 руб. за проект
18 апреля 2024, 17:30 • 12 откликов • 116 просмотров
  1. Создать сборку мультиплатформенного десктопного приложения с компиляцией в 3 операционные системы: Linux Ubuntu (.deb), Windows 11, Mac OS
  2. Настроить CI/CD сборку для Linux Ubuntu. (собранный файл можно запустить на свежей Linux Ubuntu (Mint, Astra...), что установит приложение, которое можно открыть и пользоваться). Должно быть, например, скриптом в папке scripts. НЕЛЬЗЯ использовать сторонние CI/CD системы (это должен быть sh/rust/c++ скрипт, запускающийся простой командой в консоли, например `make build_all` внутри докер контейнера)
  3. Сборка должна предполагать, что в ней будут высокопроизводительные модули на Rust и C++. Должен быть пример использования модуля на C++ и пример использования модуля на Rust
  4. Сборка должна предполагать, что в ней будет низкоуровневое взаимодействие с графикой. Это необходимо, чтоб был контроль над отображением элементов со сложной геометрией (3-d модели реальных технических устройств). В идеале, графический код для разных платформ должен быть одинаков. Обоснованные другие варианты также могут быть рассмотрены.
  5. Дополнительные требования к модулю для отрисовки элементов. Он должен быть максимально гибок и расширяем. Иметь C-совместимое (extern C) API. Это необходимо чтобы ограничить сложность внутри модуля и позволить им пользоваться программистам без глубоких знаний низкоуровневой графики и вычислений на GPU. В идеале, он должен уметь работать с *частью* окна.
  6. Графические требования:

    1. Макет представлен по ссылке: https://clck.ru/3A3aAq - макет в светлых тонах, https://drive.google.com/drive/folders/19qcRe2gLsayHdnIJ_HfHAZdrHQSo5ijc - макет в темных тонах.
    2. Растягивается во весь экран. Сворачивается в маленькое окно
    3. Имеет 2 цветовые темы (тёмную и светлую)
    4. Имеет следующие элементы взаимодействия

      1. “Липкая” панель, приклеиваемая к границам окна (верх, лево, право, низ)

        1. Панель должна иметь возможность отображать содержимое как из C++ кода, так и из Rust
        2. Окно с отображением низкоуровневой графики (с использованием нативных способов отображения OS)
      2. Окно с текстом (выходные данные). Гибкое (есть возможность изменить размеры)
      3. Кнопка с текстом
      4. Кнопка меню с иконкой
      5. Поле ввода текста
      6. Поле выбора из нескольких вариантов (select)
      7. Поле для загрузки файла
      8. Чекбокс
      9. Дерево элементов меню (раскрывающийся список)
      10. Переключение уровней (верхние табы вкладки), (как браузерные вкладки)
  7. Должны быть понятны способы создания финальных сборок для Ubuntu, Windows и MacOS (скрипты для запуска, требования к системам для сборки...)
  8. Минимальное использование Open Source