框架的可选集成代码:可选依赖项或单独框架?

时间:2015-11-06 19:24:12

标签: ios xcode swift frameworks carthage

我是框架X的作者,我想分发一些胶水代码,以便可选与框架Y和Z集成。客户端应该能够独立使用X.框架,但如果他们也使用Y和/或Z,则能够使用集成代码。

标题问题是:目前是否有最佳做法,以及有哪些权衡?详细的子问题如下所示。

我的具体案例:我是Siesta的作者。只需一点点代码即可集成with SwiftyJSONwith Alamofire。但是,Siesta不需要这些框架中的任何一个。

我看到两个可接受的选项:

  1. 在我的Xcode版本中将框架Y和Z配置为框架X的可选依赖项
  2. 分发单独的框架:X核心,X + Y胶水和X + Z胶水。
  3. 选项1乍一看似乎很有希望。这不正是可选依赖项的用途吗?但我担心因为:

    • 我没有看到广泛使用的可选依赖项。
    • 我不清楚是否会通过这样做将客户端固定到特定版本的Y和Z.
    • 使用Carthage从源头构建X的人怎么样?看起来即使他们不使用Y或Z,他们也必须在Cartfile.private中包含这些框架才能构建X.

    选项2很简单,但我担心开销。甚至一个noop框架也会出现在> 250K。在最终的应用程序中它仍然是那么糟糕吗?如果我走这条路线,是否存在每个框架开销,我应该关注它?

    还有其他权衡我不知道吗?

0 个答案:

没有答案