Разработка frontend части приложения на QML
50 000 руб. за проект
Мы - IT-команда, пилящая крутые внутренние продукты компании с огромным потенциалом, и нам, как это обычно бывает, дико не хватает рук на проектах. Сейчас мы ищем человека для создания приложения на Android и iOS.
Логика и интерфейс уже имеющегося настольного приложения написана на C++ и QtWidgets, интерфейс мобильного приложения хотим сверстать на QML, оставив логику на C++, чтобы использовать мощь QML в реализации интерфейсов (skeleton-анимации, lotty и пр.).
Требуется:
- Функции в QML:
ВСЕ МОМЕНТЫ ТАК ИЛИ ИНАЧЕ ОБСУЖДАЕМЫ, МОЖЕТ БЫТЬ В КАКИХ-ТО МЕСТАХ БУДЕТ ПРЕДЛОЖЕН ЛУЧШИЙ ПОДХОД
На выходе нужно получить проект под Qt 5.12.5, в котором нужно будет лишь дописать логику из C++ по получению/обработке данных с сервера и воспроизведению контента.
Для понимания того, как модель QML должна стыковаться с данными с сервера, необходимые структуры данных будут предоставлены с нашей стороны (namespace Core/DataTypes).
Интерфейс мобильного приложения разработан в Figme. Для примера прикладываем скриншот экрана. Доступ к проекту в Figme будет предоставлен выбранному разработчику.
При взаимодействии с потенциальными исполнителями показываем пример проекта, чтобы посмотреть, чего именно мы ждем от реализации, оценить codestyle.
Логика и интерфейс уже имеющегося настольного приложения написана на C++ и QtWidgets, интерфейс мобильного приложения хотим сверстать на QML, оставив логику на C++, чтобы использовать мощь QML в реализации интерфейсов (skeleton-анимации, lotty и пр.).
Требуется:
- Для каждого экрана создать соответствующий подкласс QWidget, который будет загружать UI экрана из QML-файла.
- На все события, возникающие в интерфейсе должна быть функция-слот в соответствующем C++-файле с понятным названием, например, SignInButtonClicked().
- Стили для элементов интерфейса должны быть вынесены в отдельные файлы, цвета должны так же задаваться отдельно, чтобы при реализации в будущем темной темы можно было бы поменять только цвета. (В дизайне используется всего несколько цветов, которые должны быть обобщены)
- Вся возможная логика по отображению данных должна быть реализована в виде отдельных QML-функций, например, если с сервера пришла ошибка о неправильном пароле пользователя, QML-файл должен уметь ее отобразить,
- Модель данных должна быть реализована в C++-коде, (см. RegionsModel в проекте)
- Логика переходов по экранам должна быть реализована в C++-коде. Например, переход к экрану плеера в случае успешного входа в приложение по логину и паролю. Можно вынести в главное окно приложения, брать его instance и "просить" его положить в стек виджет другого экрана.
- Функции в QML:
- Получить список возможных локаций и сохранить у себя для отображения по нажатию верхней кнопки
- Получить текущую локацию и отобразить как надпись верхней кнопки
- Отобразить произвольное сообщение об ошибке в поле логина (например, "Введите логин")
- Отобразить произвольное сообщение об ошибке в поле пароля
- Начать анимацию кнопки "Войти"
- Завершить анимацию кнопки "Войти"
- Послать сигнал о том, что нажата кнопка "Войти" с параметрами логин и пароль (две строки)
- Послать сигнал о том, что нажата кнопка "Регистрация"
- Послать сигнал о том, что выбрана другая локация.
- В C++-функции обработки нажатия кнопки "Регистрация" берем экземпляр навигатора (что-то вроде синглтона главного окна) и вызываем функцию добавления в стэк нового виджета, который инстанцируем сами.
- По нажатию кнопки "Назад" на экране Регистрации вызываем функцию навигатора "Удалить текущий экран из стека"
ВСЕ МОМЕНТЫ ТАК ИЛИ ИНАЧЕ ОБСУЖДАЕМЫ, МОЖЕТ БЫТЬ В КАКИХ-ТО МЕСТАХ БУДЕТ ПРЕДЛОЖЕН ЛУЧШИЙ ПОДХОД
На выходе нужно получить проект под Qt 5.12.5, в котором нужно будет лишь дописать логику из C++ по получению/обработке данных с сервера и воспроизведению контента.
Для понимания того, как модель QML должна стыковаться с данными с сервера, необходимые структуры данных будут предоставлены с нашей стороны (namespace Core/DataTypes).
Интерфейс мобильного приложения разработан в Figme. Для примера прикладываем скриншот экрана. Доступ к проекту в Figme будет предоставлен выбранному разработчику.
При взаимодействии с потенциальными исполнителями показываем пример проекта, чтобы посмотреть, чего именно мы ждем от реализации, оценить codestyle.
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.