Это немного совпадает с ответом Игоря, но вот мое мнение:
Native Control Look - Сегодня элементы управления пользовательского интерфейса имеют довольно сложный вид. Есть много визуальных сигналов, которые мы инстинктивно извлекаем из них, и даже если это белый прямоугольник с какой-то рамкой, с тенью Вонг он выглядит странно неуместно. Контекстное меню часто не просто открывается сегодня, оно скользит в каком-то направлении или исчезает.
Native Control Behavior - еще более сложный, чем пользовательский интерфейс, есть много деталей для поведения: различные контекстные меню в зависимости от позиции нажатия, разные «горячие» области при выборе или перетаскивании элементов, сочетания клавиш и т. Д. .
Внимание к деталям - Существует множество непротиворечивых действий пользовательского интерфейса, которые можно обнаружить на любой платформе. То, как работают клавиши со стрелками в древовидной структуре, выбирает, открывает и закрывает узлы.
Достаточно взглянуть на Windows: большинство не родных наборов инструментов неправильно понимают базовую навигацию клавиатуры - клавиши со стрелками, Home, End, PgUp и PgDown, поведение изменено с помощью Ctrl, расширение выделения с помощью Shift дает до 32 поведения. Копирование и вставка традиционно выполняются с помощью Ctrl + C / Ctrl + X / Ctrl + V и Shift + INS, Shift + DEL и отсутствуют. Двойной щелчок мышью часто выделяет слово, тройной щелчок мышью иногда предложение, строку или абзац.
Время отклика и мышечная память - Существуют, в основном, два режима работы пользовательского интерфейса:
loop-look loop , где вы ждете ответа, прежде чем принять решение о следующем шаге,
воспроизведение из мышечной памяти , что намного быстрее и требует меньше ресурсов для умственной обработки.
Однако для этого есть два требования: ответ должен быть равномерным и «мгновенным», а следующее действие должно быть правильно зарегистрировано немедленно (как минимум, в течение 10 мс)
Достаточно часто, когда набор инструментов не является нативным, это усложняется из-за того, что ответ отстает от одного или двух действий (ум фиксирует несоответствие), а также из-за наборов инструментов, которые показывают 50 мс или более, чтобы отобразить меню, когда клик не зарегистрирован как задумано.
Отлаженный пользовательский интерфейс требует много времени, чтобы получить право - Хорошая библиотека управления может решить большинство проблем, связанных с контролем, но есть некоторые последние 10%, занимающие 90% времени, и у вас есть взаимодействие с контролем , Вы должны попробовать разные подходы, вы должны ожидать пользователей с рефлексами, обученными FPS, вы должны попробовать все виды рабочих процессов.
Кроссплатформенные наборы инструментов не могут понять все правильно - они застряли между молотом и наковальней: они могут выбирать внутреннюю согласованность независимо от платформы или в соответствии с платформой, которой они в настоящее время пользуются запускать на. Чтобы сделать это правильно, последнему часто требуется платформо-зависимый код в вызывающем коде, а именно то, чего вы пытаетесь избежать.