Ios 将一个应用程序划分为多个具有不同UI设计和共享逻辑代码的应用程序
我有一个应用程序,我会称之为“基础应用程序”。该应用程序适用于许多品牌。 我现在需要将这些品牌分开,并为每个品牌制作一个不同的应用程序。 每个应用都会有一个稍微不同的设计(包括不同的图像),这里和那里可能会有一些特定的品牌代码。 所有应用程序也应该使用“基本应用程序”中处理逻辑的相同基本代码 我有一些选择,我想,但我不确定是否有任何适合我的需要。我很乐意澄清这些选项之间的差异 我想到的选择是: 1) 为每个品牌创建一个应用程序,只需复制粘贴“基本应用程序”中的类文件作为参考,但.xib文件除外,它将作为副本复制。问题是,我不知道如何以及在哪里编写特定于品牌的代码(因为它将在其他人之间共享) 2) 创建一个工作区,其中包括每个品牌的项目。不知道这是如何工作的,如果这是正确的,将很高兴在这里帮助澄清 3) 在每个品牌的项目中嵌套一个“基础应用程序”项目。任何澄清其作用的帮助都将不胜感激 3) 将基础应用程序用作静态库,链接到每个品牌的项目中。不确定UI会发生什么(共享、非共享)。我也很高兴能在这里得到帮助Ios 将一个应用程序划分为多个具有不同UI设计和共享逻辑代码的应用程序,ios,iphone,ios7,workspace,nested,Ios,Iphone,Ios7,Workspace,Nested,我有一个应用程序,我会称之为“基础应用程序”。该应用程序适用于许多品牌。 我现在需要将这些品牌分开,并为每个品牌制作一个不同的应用程序。 每个应用都会有一个稍微不同的设计(包括不同的图像),这里和那里可能会有一些特定的品牌代码。 所有应用程序也应该使用“基本应用程序”中处理逻辑的相同基本代码 我有一些选择,我想,但我不确定是否有任何适合我的需要。我很乐意澄清这些选项之间的差异 我想到的选择是: 1) 为每个品牌创建一个应用程序,只需复制粘贴“基本应用程序”中的类文件作为参考,但.xib文件除外,
4) 使用一种简单的方法来维护品牌的每一个项目,包括共享代码(我想这将是一场灾难)。在创建便宜的flash游戏或应用程序时,你经常会遇到这种情况 这些都有非常通用的框架,比如:踢球、射击屏幕,或者用从特定服务器下载的数据生成列表等等 每次他们想要创建一个新的射击游戏,他们只需加载他们的射击框架,添加一堆图形,就可以在一天内发布一个糟糕的游戏 他们是怎么做到的 他们通常创建一个包含共享模型、处理程序、接口等的框架。 在库中放置许多通用实用功能,如下载文件等。 您还可以创建一些默认的框架视图和视图控制器 当您想要创建类似的应用程序时,只需导入库并重新使用基本框架。包含基本视图、基本模型等 您可以在ios SDK或android SDK附带的演示示例中找到一个很好的示例
祝你好运。一个好方法是将你的应用程序拆分为以下组件:
- 核心模型库
- 可重用视图和视图控制器。视图可以设计为支持蒙皮和自定义李>
- 可以封装为自己的“标识”的任何其他可重用代码李>
- 解决可传递依赖关系-这只意味着构建和获取库本身使用的任何库李>
- 管理要集成的库的版本李>
pod 'MyLibraryName', :git => 'https://github.com/myOrgName/MyLibrary.git'
这将把所有库安装到工作区中。要更新项目以包含对核心库的任何更改,只需执行以下操作:
pod update
此方法的优点
- 您将有一组单独的质量控制,应用于每个核心项目李>
- 声誉会大大降低李>
- 你可以使用更多的自动化。自动化程度越高,浪费越少,客户价值越高李>
- 随着团队的发展,您可以将核心产品开发和解决方案集成拆分为单独的角色/团队。开发集成构建的团队不需要提取最新的库功能,如果这会破坏它们李>
- 您可以在核心库的不同版本上拥有两个不同的客户。CocoaPods将无缝地管理这一点。因此,在收到增强请求或定期维护之前,您不必更新构建。(再次减少浪费,从而增加客户价值)李>
这种方法模仿二战后在日本流行的生产线式方法。它被称为精益方法论,其核心是快速、小库存和减少浪费。(用更少的资源交付更多的产品)。日本的高管们在去美国参观Piggly Wiggly超市商店时得到了灵感 iOS中的简单解决方案是使用目标 对于资源,您可以为每个品牌使用不同的目标,然后为每个目标选择不同的资源(图像、XIB等) 此外,如果代码中的更改很少,那么您可以重构代码的某些部分,并为每个目标创建具有不同实现的不同类(您可以使用类似工厂的模式)。也可以简单地使用预处理器宏 这不是更好的方法,但这是最简单、最快捷的方法,但如果代码发生了很大变化,最好像其他答案所说的那样创建一个核心库。Amy Worr