Написание кроссплатформенного программного обеспечения утомительно, но вот простые правила.
Как правило, вам нужно работать с абстракцией базовой ОС / среды, чтобы ваш код зависел от этой абстракции, а не от самой ОС.,Это называется паттерном моста.Важно понимать, что чем больше функций вы добавите к мосту между вашей программой и ОС, тем сложнее будет портировать программное обеспечение.В случае с Adobe они используют относительно небольшую часть ОС (крошечный мост), поскольку у них есть собственный интерфейс пользователя и обработка текста, поэтому им просто нужно захватить ввод с клавиатуры или мыши и иметь возможность рисовать в окне.