Подтвердить что ты не робот

Разработка как для Mac OS X, так и для iOS

Я работаю над игрой, которую я бы хотел в конечном итоге получить в Mac OS X и iOS. Какой лучший способ сделать это? Должен ли я (1) сначала сфокусироваться на одной ОС и получить отполированную версию 1.0, затем перейти к другой ОС, или (2) попытаться ли я разработать как одновременно с самого начала?

Если (1), какой ОС следует настроить первым, то есть, какое направление переноса является самым простым?

Если (2), нужен ли отдельный проект в XCode для каждой ОС? Если да, как мне сохранить только одну копию агностического кода платформы, которую я разделяю между обоими проектами?

4b9b3361

Ответ 1

Я обычно программирую параллельно, иногда начиная с Mac, иногда на iOS. Большинство основных функций (то есть не GUI) практически одинаковы на обеих платформах, но иногда некоторые функции отсутствуют с одной стороны. Затем я пытаюсь начать с более плохой платформы, чтобы код работал на обоих.

Работа в параллельном режиме дает еще одно преимущество: вам нужно подумать о хорошей абстракции, или вы будете очень раздражены дублированным кодом. Несколько целей действительно помогают с хорошей структурой.

Что касается нескольких целей - да, в теории это работает в Xcode. Это была настоящая боль (с потерей ссылок снова и снова), как только я ставил свой "основной код" в статических библиотеках и постоянно обновлял все.

Моя настройка выглядит следующим образом:

MainWorkspace
   CoreFunctionsMacLibProject
   CoreFunctionsIOSLibProject
   TheApplicationMacProject
   TheApplicationIOSProject

Общий код для основной части находится в общей папке, обновления легко доступны, поскольку все находится в одном рабочем пространстве. Это будет легко работать без отдельных библиотек, я просто использую их в разных проектах/рабочих пространствах.

Пока все идет гладко. Говоря о 2-4 библиотеках и нескольких проектах приложений. Только мой опыт. Рабочие области делают этот подход довольно гибким, так как вы можете разместить проект в нескольких рабочих пространствах.