Как предоставить собственные пользовательские интерфейсы на Windows и Mac? - PullRequest
2 голосов
/ 17 января 2012

Я знаю, что можно написать свой код на C ++ и использовать Objective C для создания собственного интерфейса Mac и Visual C ++ для создания собственного интерфейса Windows.

Может кто-нибудь указать мне учебник или написать пример кода, который учит, как это сделать?

Примечание

Я знаю о Qt или wxWidgets, но это не то решение, которое мне нужно. Я действительно очень хочу дать родное чувство.

1 Ответ

7 голосов
/ 17 января 2012

Хотя вы говорите, что знаете о Qt и wxWidgets, я все же рекомендую вам их использовать. С ними вы можете создавать приложения на родном языке.

Вам всегда нужно будет реализовывать какой-то уровень абстракции, поскольку Windows и Mac сильно отличаются в том, как реализованы их пользовательские интерфейсы. Вам нужно будет найти общие шаблоны, найти способы, как абстрагировать вещи, чтобы разные вещи могли быть доступны одинаковым образом. Для этого вам нужно очень хорошо знать программирование для Windows и Mac. Вы потратите много времени, пытаясь найти обходные пути и поиск ошибок. С каждой новой итерацией Windows или Mac OS X вам нужно будет снова работать над ошибками и / или интегрировать новое поведение.

Использование кроссплатформенной библиотеки сэкономит вам массу времени и хлопот, а значит и денег, если вы пишете коммерческое приложение.

Редактировать: Ну, если вы вынуждены идти по этому пути, я бы рекомендовал сделать это так:

Разделите приложение на две части: бэкэнд, который ничего не знает о пользовательском интерфейсе, который выполняет всю бизнес-логику, а затем часть пользовательского интерфейса. Вам нужно будет реализовать пользовательские интерфейсы полностью отдельно друг от друга, и вы не сможете разделить большой объем кода между ними. В конце концов, если вы попытаетесь найти общие основания (например, если вы хотите объединить создание и использование кнопки), вы также можете снова использовать кросс-платформенную библиотеку пользовательского интерфейса ...

Положительным моментом является то, что вы можете использовать все неясные функции пользовательского интерфейса, доступные для каждой ОС. Недостатком было бы то, что вам нужно поддерживать два интерфейса, поэтому если вы добавляете функцию в один интерфейс, вам нужно будет переопределить ее и в другом.

Но вы можете использовать кроссплатформенную библиотеку для бэкэнда, чтобы объединить такие вещи, как обработка файлов, работа в сети и многопоточность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...