Всё это сильно зависит от типа приложения. Банальность, но тем не менее надо отметить.
Если приложение типа "одна большая красная кнопка 'Сделай мне хорошо'" то да, шанец великий что это можно на 100% кроссплатформой сделать.
Тот же Sciter например. В частности Sciter.Quark.
S>Великая мечта — пишешь один раз, отлаживаешь используешь везде — все-таки приближается к реальности.
Если приложение для desktop OS, то да, в принципе можно 96% кроссплатформой сделать.
Если приложение и для desktop и для mobile то шансов на 100% вообще нет.
Разные форм факторы и типы ввода. На mobiles объективно говоря толком только кнопочный интерфейс работает.
Т.е. нажми кнопку тут или там. Ну еще на mobiles скролировать можно. Всё остальное — это только юзера напрягать.
Проекция pointer device (ака палец) на экран соизмерима с размером девайса, т.е. никаких там photoshop'ов особых на мобильниках ожидать не надо.
Т.е. как минимум два типа приложения (для desktop и для mobile) лепить придется. Бех лтносительно технологии UI.
S>Основное в чем человечество сошлось — это браузер. Практически вся кроссплатформа основана на использовании браузерного рендеринга. Варианта ровно 2 — либо HTML-based либо Canvas-based.
На самом деле три.
В Sciter например можно одновременно:
1. DOM rendering, a.k.a. retained mode rendering;
2. <canvas> style rendering: buffered rendering — это когда canvas это журнал (batch) GPU комманд которые проигрываются на каждом WM_PAINT.
3. immediate mode painting в стиле ImGUI : это когда ты вешаешь на элемент paint handler (рисовалку) типа
1 и 2 это в browsers;
1,2 и 3 это в Sciter — bests of both worlds что называется.
S>Основные: React Native, Flutter (Canvas), Xamarin (как я понял, вызывают API ОС?)
Можно еще один вариант который был сделан в HTMLayout изначально.
HTML контейнер в котором все input элементы это native widgets от OS.
Т.е. HTML там испоьзуется как layout manager и одновременно рисовальщик статиков : текста, картинок и пр.
Как резюме: реалистично говорить о кросплатформе в кторой 70-90% кода шарится между платформами.
!00% серебрянной пули нет по условиям задачи.