客观评价可能吗?


我的同事-朋友-伙伴,肖恩和我正在对我们的iPhone framework,iBoost。我们现在必须考虑的一件事是,它将如何与我们(和您的)应用程序集成。我见过两种基本策略:

  • 将源代码复制到项目中。这是从不完成了Java项目,但是对于基于C的系统来说总是一个容易的选择,因为编译的代码是依赖于平台的。这也是小班教学的常见选择。我用这种方法做了很多迷你模块。
  • 编译为库并复制头文件。这包括以带有头文件的编译库的形式分发。Flurry这样做,以及AdMob。显而易见的动机是对消息来源保密。
  • 显然,如果我们将iBoost作为一个库来分发,就不会对代码保密(因为它是开源的),但这仍然是一个有效的方法。

    我倾向前者。将源代码转储到您的项目中可能看起来更混乱,但是如果您将它隔离在一个目录中,而不是将其复制到您的类中,这实际上与库分发没有什么不同。另外,随着软件开发工具包的迭代,不同的平台变得可用,您不必一直担心更新您的库。我最近不得不这样做Acapela Text-to-Speech图书馆,这是双重痛苦,因为他们位于法国,我需要它立即。:-)

    缩小

    但是现在我有了新的想法。将源代码作为一大组文件分发似乎很麻烦。我想把它做成两个文件(*)。h和*。m)分配。如果可行的话,有一个就太好了。但是怎么做呢?

    好吧,如果你在过去的几年里参与了JavaScript领域,我们在发布网站时喜欢做的一个小把戏就是对JS代码进行“缩小”。这是一个脚本(有几个,但YUI版本被大量使用),它获取您的JavaScript代码,删除尽可能多的空白,并且基本上在真空中运行您的代码。生成的代码通常是不可读的,但是(希望)工作方式完全一样。这个想法是,你不仅节省了一些字节的带宽,而且让人们更难窥探到你的代码,这显然是不可理解的。

    那么,在目标C中有可能吗?我找不到它的任何参考资料。似乎没人做过。我猜这是可行的。我的理论是这样的:

    1. 将所有头文件附加在一起。
    2. 拉出#import引用的任何文件本身。
    3. 为文件顶部的所有类添加前向引用(@class)。(除非我们想保持最小的文件大小,否则不需要填满现有的文件,这是不必要的。

    本周,我将尝试使用Python解决方案。我会让你知道结果。你怎么想呢?