Вопросы по структурированию проекта Xcode 4 iOS

У меня есть свое первое приложение для iOS (относительно простое приложение для iPad, которое будет выпущено примерно через месяц), но сейчас я перехожу к чему-то более амбициозному и мог бы воспользоваться некоторыми советами.

Мой следующий проект будет состоять из двух разных, но тесно связанных между собой приложений для iPad, которые будут иметь довольно много общих функциональных возможностей и общий формат данных. Так что мой инстинкт состоит в том, чтобы разработать эти два приложения в сочетании с разработкой базовой структуры, общей для обоих, и я хотел бы, чтобы эта общая структура использовала CoreData, а также предоставляла элементы графического интерфейса (NIB, контроллеры представления), которые могут использоваться соответствующие приложения. Поэтому мой дальнейший инстинкт состоит в том, чтобы создать 3 проекта Xcode: один проект приложения iOS для приложения A, второй проект приложения iOS для приложения B и третий проект инфраструктуры CocoaTouch для общей платформы.

Вопросы:

1) Это правильный способ структурировать мою разработку или есть лучший способ одновременной разработки двух тесно связанных приложений и общей платформы?

2) Может ли фреймворк использовать CoreData? (Я спрашиваю об этом, потому что при создании проекта инфраструктуры CocoaTouch в Xcode не предлагается ни возможность использовать CoreData, ни возможность иметь модульные тесты, как при создании проекта приложения iOS).

3) Есть ли способ «преобразовать» проект приложения iOS в проект фреймворка или, возможно, предпочтительнее построить проект приложения в цель фреймворка? Это позволило бы мне создать проект фреймворка со всеми бесплатными настройками Xcode (NIB, основные данные и т. д.), вместо того, чтобы добавлять все это вручную.

Спасибо!

Карл


person Carl F. Hostetter    schedule 27.05.2011    source источник


Ответы (1)


Отвечая на первый вопрос, я бы так не работал. Я бы создал один проект с тремя целями, двумя целями приложения и целью платформы. Возможно, в будущем я перенесу фреймворк в отдельный проект, когда он стабилизируется, и если я соберусь использовать его для еще большего количества приложений для iOS. Наличие всех целей в одном проекте снижает проблемы синхронизации при работе с кодом, общим для целей.

Чтобы ответить на второй вопрос, Xcode просто не включает поддержку шаблонов для добавления основных данных и модульных тестов в начальный проект фреймворка. Я не вижу причин, по которым вы не можете использовать Core Data во фреймворке.

Чтобы ответить на третий вопрос, просто добавьте целевую платформу в проект приложения iOS и переместите соответствующие части вашего приложения iOS в платформу.

person Mr. Berna    schedule 27.05.2011
comment
Спасибо за ответы, особенно на №1! Это звучит намного проще в управлении. Я рад, что спросил! - person Carl F. Hostetter; 28.05.2011