iPhone и Ipad - как мне раскошелиться на код? - PullRequest
6 голосов
/ 21 февраля 2010

У меня такой вопрос: у меня есть приложение, разработанное для iPhone, и я решил раскошелиться на код, другими словами, на этом начальном этапе я разработаю две версии приложения: одну для iPhone, а другую для iPad.

У меня такой вопрос: как мне разветвить код? Я хотел бы продолжить использование одного проекта для обеих версий, но, очевидно, мне придется писать разделы кода для iPhone и другие разделы исключительно для iPad, и, конечно, у них будет много общих частей для обоих релизов.

Как мне это сделать, не создавая путаницы в коде?

Каковы лучшие практики? Спасибо за любую помощь.

Ответы [ 4 ]

3 голосов
/ 21 февраля 2010

Вы можете настроить свой проект XCode для использования нескольких целей, затем вы можете назначить некоторый файл исходного кода одной цели или другой или обоим

2 голосов
/ 21 февраля 2010

Проблема с несколькими целями заключается в том, что она может конфликтовать с моделью распределения.

Насколько я понимаю, приложения для iPad и iPhone будут распространяться в виде одного двоичного файла. Приложение решает, отображать ли пользовательский интерфейс iPad или iPod во время выполнения.

Это означает, что если вы не хотите разделять приложения в магазине, 'Foo' и 'Foo iPad Edition', что вы не можете использовать несколько целей и что у вас как-то будет есть для работы с одной кодовой базой.

Я ненавижу это, потому что в приложении может быть много условных вещей. Если iPad, то сделайте это, иначе сделайте это. Если iPhone, то показать этот контроллер вид, в противном случае показать другой. Я не думаю, что это приведет к хорошему коду.

Так что я сейчас думаю о том, чтобы сделать что-то посередине: я создам в основном две базы кода, и где-то в самом начале приложения я решу перейти на полный путь кода iPad или iPhone.

1 голос
/ 22 февраля 2010

Я отвечаю на ваши баллы: 1) «Как я выполняю это задание» Вы должны создать новую цель из меню проекта в моем случае я использую две разные цели для игры для iPhone (нормальная и бесплатная (облегченная) версия)

  so I created a second Target of Type Application
  this will add a Target to the Groups & Files panel
  and will create a new Info.plist file

  in the Group&File you can show more columns (by right clicking)
  on "Group&Files"), here you have to show the "Target Memebership column"
  for each file you can decide if it is part of a target by pressing the
  corresponding check box

2) "как насчет частей кодов" Я не знаю, содержит ли текущий Beta SDK, используемый для разработки приложений для iPad, #define, который вы могли бы протестировать во время компиляции в каждом случае вы можете установить выделенный #define на целевом уровне и проверить это, чтобы сделать некоторую условную компиляцию

вы можете найти очень подробную информацию о создании приложений с несколькими целями в устаревшей документации Apple вы можете загрузить его из iPhone Dev Center вам нужно прочитать это руководство «Руководство по управлению проектами XCode»

1 голос
/ 21 февраля 2010

Я не разработчик для iPhone, но из того, что указывает St3fan (что он должен распространяться в виде одного двоичного файла), это выглядит как классический случай для фабричного шаблона. Любая вещь, которая отличается, реализуется двумя отдельными способами (с общим интерфейсом), и завод выпускает другую реализацию, основанную на том, на iPhone ли это или на iPad. Общий код менять не нужно, поэтому он может оставаться как есть.

...