我已经开发 iOS 应用程序大约一年了。在那段时间里,我开发了相当多的类,我经常从一个应用程序回收到另一个应用程序。例如,我有一堆与更容易编写表视图来控制应用内设置相关的类。
现在,我只是从一个应用程序中获取这些类并将它们粘贴到下一个应用程序中。我的问题是——在什么时候创建和使用静态库可能更容易?
我已经开发 iOS 应用程序大约一年了。在那段时间里,我开发了相当多的类,我经常从一个应用程序回收到另一个应用程序。例如,我有一堆与更容易编写表视图来控制应用内设置相关的类。
现在,我只是从一个应用程序中获取这些类并将它们粘贴到下一个应用程序中。我的问题是——在什么时候创建和使用静态库可能更容易?
静态库也有它们的问题。
因此,您想要的是一种解决方案,您可以在其中将依赖项添加到实际源代码中。这样您就可以避免讨厌的 GCC 错误,并且鼓励童子军规则!
我们的解决方案是一个基于 Rake 的简单依赖系统。它创建指向共享库源代码的符号链接,并在构建服务器上构建时创建硬拷贝(您永远不应该在开发人员自己的机器上构建分发二进制文件!)。
符号链接允许开发人员编辑共享代码,就像它是当前项目的一部分一样,同时确保任何清理、错误修复等始终传播到单个存储库,并使使用共享库的所有项目受益。
构建服务器上的硬拷贝允许为共享库标记版本,以便您发送到 App Store 的 v1.0 的确切构建永远可以重现!
我的一位同事在博客上写了关于在这里设置构建服务器以进行持续集成:http: //blog.jayway.com/2010/01/31/continuos-integration-for-xcode-projects/
我会唠叨他写博客并分享基于 Rake 的依赖系统。它基本上只是带有 Ruby 脚本的几行代码。
如果您想将您的课程分发给您的“团队”,那么您不必担心他们对您的代码所做的更改,从而保持库的一致性。
或者,如果您想将您的类作为 API 出售给另一个开发团队,那么您可以对 API 用户隐藏源代码。
我有一些我觉得有用的“实用程序”类,我确实倾向于将类文件放入我的解决方案中,因为我发现它更容易和更快,(不是额外的 2 到 3 次点击很重要),所以我真的想我这样做它是出于习惯比什么都重要。
我有自己的杂项库。
我在其中添加了一些我认为相当通用的东西,并且我可以设想在未来的某个时候使用这些东西。
毕竟,将它添加到您的图书馆并没有什么坏处,即使您不再使用它。
一旦您厌倦了复制和粘贴,您应该创建一个库。或者,一旦您犯了第一个错误(错误)复制和(错误)粘贴。
或者,用更商业化的术语来说:当净现值超过净现值时。
我有一个位于单独项目中的静态库。这样我就可以完全开发库,完成单元测试等,然后通过使另一个项目依赖它来简单地重用它。
这意味着我不必剪切/粘贴,也意味着我应该找到/修复错误,或添加/修改库的功能,然后可以轻松地进行回归测试。
现在所有使用该库的项目都可以受益。
所以为了我的钱,把“有用代码”的集合变成一个库的时候肯定是当你发现你想再次使用它的时候。
(当然,我们都有有用的代码片段,我们可以通过从以前的项目中复制/粘贴来重复使用这些代码片段——这些片段不一定适合放在库中。)
另一种解决方案是使用支持子模块的版本控制系统(例如 git)。您可以将这些帮助类(甚至是类的集合)中的每一个包装在自己的存储库中,该存储库可以导入到代码的主存储库中。
这样您就不必担心剪切和粘贴错误。此外,如果您对这些类进行改进,它们可以传播到使用它们的其他项目(如果您愿意),但您始终可以回滚到以前的版本进行错误修复/测试。
在 github示例等网站上找到此类帮助代码很常见