我有一个iPad应用程序,可以根据配色方案,徽标和其他项目为不同的客户量身定制。
我已经创建了不同的目标,我相应地定义了#ifdef宏,并且大多数变量都在global.h文件中定义,以便于维护。
您现在还应该考虑其他任何有用的建议吗,特别是将来会有可用的更新 - 但并非所有客户都可以使用所有新功能吗?
答案 0 :(得分:0)
您可以完全抽象出所有可自定义的元素,并创建剩余代码的库。然后,每个客户的应用程序将实例化该库并以其自己的自定义元素提供。这样,在为新客户构建应用程序时,您无需更改任何代码。您还可以将客户之间的所有更改放在一个区域中,这也使代码更易于测试。
如果客户没有获得功能,那么您只需输入空值(或等效值)
这个想法基本上是Inversion of Control
答案 1 :(得分:0)
首先,如果您不这样做,请使用版本控制系统的分支功能来处理不同的客户端需求,即如果一个客户端需要其他功能,请不要(自动)污染您的主代码库。
您还可以做的是封装应用的所有可配置功能。一种非常简单的方法是创建配置.plist或其他类型的XML,您可以在其中轻松配置自适应功能。
主要是,如果可能的话,尝试从主代码库中提取所有可自定义的功能。从可轻松编辑的文件(如XML)中加载可自定义的数据,以确保在配置客户端时不会意外地破坏某些内容。
答案 2 :(得分:0)
我喜欢将可重用组件转换为框架。这样,您可以公开可自定义的选项并隐藏所有复杂的代码。
另一种选择是创建工作区。这将允许您在其中打开项目并与主工作区文件共享其资产。