Как Adobe сделала Photoshop кроссплатформенным?
Хочу просто знать, как Adobe делает Photoshop кроссплатформенным? Я знаю, что Photoshop полностью написан на C++, но как насчет GUI? Использует ли Adobe наборы инструментов с графическим интерфейсом?
2 ответа
Для любого кросс-платформенного проекта, скомпилированного с нуля, решение, как правило, состоит в том, чтобы иметь небольшие части кода, называемые "обертками", написанные исключительно для конкретных платформ. Эти фантики делают все разговоры непосредственно с платформой.
Это делает приложение наподобие Photoshop мультиплатформенным, но оно не обязательно будет основано на платформе, для которой Adobe еще не написала обертки.
Написание кроссплатформенного программного обеспечения утомительно, но вот простые правила.
Обычно вам нужно работать с абстракцией базовой ОС / среды, чтобы ваш код зависел от этой абстракции, а не от самой ОС. Это называется паттерном моста. Важно понимать, что чем больше функций вы добавите к мосту между вашей программой и ОС, тем сложнее будет портировать программное обеспечение. В случае с Adobe они используют относительно небольшую часть ОС (крошечный мост), поскольку у них есть собственный интерфейс пользователя и обработка текста, поэтому им просто нужно захватить ввод с клавиатуры или мыши и иметь возможность рисовать в окне.