Каков наилучший подход для обработки проектов xcode с одинаковой кодовой базой для нескольких клиентов? - PullRequest
0 голосов
/ 03 марта 2012

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

Я уже создал различные цели, в которых я определил макросы #ifdef соответственно, и большинство переменных определены в файле global.h для удобства обслуживания.

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

Ответы [ 3 ]

0 голосов
/ 03 марта 2012

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

Что вы также можете сделать, это инкапсулировать все настраиваемые функции вашего приложения. Очень простой подход - создать конфигурационный .plist или другой вид XML, в котором вы можете легко настроить адаптируемые функции.

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

0 голосов
/ 03 марта 2012

Мне нравится конвертировать повторно используемые компоненты в фреймворки. Таким образом, вы можете выставить настраиваемые параметры и скрыть весь сложный код.

Другой вариант - создать рабочее пространство. Это позволит вам открывать проекты внутри него и делиться своими активами с основными файлами рабочей области.

0 голосов
/ 03 марта 2012

Вы можете полностью абстрагироваться от всех настраиваемых элементов и создать библиотеку оставшегося кода.Затем приложение каждого клиента просто создает экземпляр этой библиотеки и вводит свои собственные настраиваемые элементы.Таким образом, вам не нужно менять код при создании приложения для нового клиента.Вы также получаете преимущество, заключающееся в том, что все изменения между клиентами расположены в одной области, и это также делает код более тестируемым.

Если клиент не получает функцию, тогда вы просто вводите нулевое значение (или эквивалент)

Эта идея в основном Инверсия контроля

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