В данном демо, созданном изначально для доклада на Omsk DevFest 2023, а потом улучшенном для Mobius Autumn 2023, на тривиальном примере (всего два экрана) рассматриваются следующие ключевые моменты:
- Создание координатора, который будет управлять PageStack, и т.о. позволит отделить логику навигации от реализации экранов
- Разделение каждого экрана на UI представление (QML) и ViewModel, которая создана на стороне C++, чтобы иметь возможность отделить бизнесс-логику экрана от его UI представления
- Как сделать инджект ViewModel из С++ в QML и при этом не получить проблем с утечками памяти
- Использование DIContainer и DIProvider для организации и использования DI в приложении
Данный код не являтеся прямым руководством к тому, как надо программировать на Аврора ОС с помощью C++/Qt. Это всего лишь попытка перенести подходы выработанные с годами Android и iOS разработчиками на новую платформу.
Релизы:
- Омск DevFest 2023 - тривиальное приложение с двумя экранами, координатором, вьюмоделями и тривиальными DI
- Mobius Autumn 2023 v1 - тривиальное приложение с двумя экранами, координатором, вьюмоделями, передача данных между экранами
- Mobius Autumn 2023 v2 - тоже самое, что и
Mobius Autumn 2023 v1, но только с классом сервисом и DI