Я создаю приложение в QML. Первоначально это предназначалось только для настольных компьютеров, но я решил также использовать устройства Android.QML, код один раз, развертывание дважды
Проблема, с которой я борюсь, заключается в том, как обращаться с различными платформами. На данный момент у меня есть отдельный класс, который предоставляет информацию о соотношении экранов, платформе (мобильная, настольная) и т. Д.
Каков наилучший подход для обеспечения UX, ближайшего к родному, для каждой платформы?
Как справляться с такими ситуациями?
Mobile
- StackView с 2 страниц
- ListView принимая все пространство экрана
- Клик на объекте в ListView переходит на вторую страницу с дополнительной информации
Рабочий стол
- Нет StackView
- ListView принимает только 300 пикселей
- Дополнительная информация о выбранном элементе в списке должны быть видны в TextArea рядом с ListView
Проектирование масштабируемый интерфейс, основанный на вычисленной экране отношение или плотность пикселей для данного устройства является одним из решений. Но этот вид мобильного интерфейса очень плохо выглядит на рабочем столе. Можете ли вы представить приложение Android Gmail на ПК?
Решение, которое я вижу, заключается в том, чтобы разместить как можно больше логики в C++ и создавать легкие макеты для мобильных и настольных платформ в QML.
Что, на ваш взгляд, лучший способ настроить таргетинг на несколько устройств. Должен ли я создавать масштабируемый пользовательский интерфейс для мобильных устройств и использовать его на рабочем столе и просто «справляться с ним», или я должен пожертвовать больше времени и создать пользовательский интерфейс для каждой платформы, чтобы он был удобен во всем мире?
Могу ли я предложить вам изучить дизайн материалов Google? После этого система проектирования даст вам некоторые инструменты, чтобы решить, что делать с различными платформами/форм-факторами. Существует хорошая библиотека qml-материала, которая предоставляет уже много функциональности, компонентов и стилей. https://github.com/papyros/qml-material, если это не так, попытайтесь охватить любую другую прочную систему проектирования перед тем, как реализовать свой собственный –
. Я рассмотрел ваш вопрос хотя бы для его названия :) – troyane