在开发iOS应用程序的过程中,我注意到几乎每个应用程序都有一些重复的部分。例如,每个应用程序都有用户管理逻辑,登录,注册,忘记密码。 每次,我发现自己试图手动导入已经开发的逻辑(视图控制器,笔尖,故事板)。 我的问题是如何在单独的组件中实现这些常见功能,因此我可以在每次启动新项目时重复使用它们。另请注意,应该有可能进行小型自定义,例如所有应用程序都有登录屏幕,但UI设计因每个应用程序而异。
长话短说,我需要的是:
我想这里应该是Framework(或静态库)和可可豆荚的一些组合,但是我想知道是否有人已经开发了一些这方面的概念。
答案 0 :(得分:5)
是的,正如您所想的那样,我选择重用组件的方式是通过静态库或有时是可重用组件的框架,实现通用逻辑或结构良好的类来继承新项目,我提供以我的开发机器或共享git存储库中的CocoaPods开发pod作为新项目。这种方式应该回答您的问题1和2.对于您的问题3,您可以选择对核心解雇窗格更新执行自定义,或者使核心方法适应目标项目中的可能覆盖。希望能帮助到你。
答案 1 :(得分:1)
如何将常用的重复功能封装在单独的组件中。
无论您选择什么,您都必须将代码库中单独组件所需的代码分解出来。这是整个过程的第一步 - 所以想一想将它变成一个单独的组件是否有意义。
现在你有一些你想重用的代码......
有很多方法可以做到这一点,例如Xcode's workspaces,独立的源文件,静态库和框架。 Cocoa pods是一个包管理器,可以帮助你维护你的框架 - 而不是写它:(
<强> Xcode's workspaces 强>
工作区是一个Xcode文档,用于对项目和其他项目进行分组 文档,以便您可以一起处理它们。工作区可以包含 任意数量的Xcode项目,以及您想要的任何其他文件 包括。除了组织每个Xcode中的所有文件 项目,工作空间提供隐式和显式关系 其中包括项目及其目标。
<强> Static Libraries 强>
在iOS中使用静态库的简介
静态库提供了一种方便的机制来共享代码 多个申请。在iOS上,仅支持静态库 图书馆类型。本文档介绍了如何从您的代码中提取代码 应用到新的静态库以及如何使用该静态 多个应用程序中的库。
<强> Frameworks 强>
在OS X中,共享资源使用标准框架打包 伞框架。两种类型的框架都具有相同的基础 结构,可以包含资源,如共享库,nib 文件,图像文件,字符串文件,信息属性列表, 文档,头文件等。伞框架增加了轻微 对标准框架结构的改进,例如能力 包含其他框架。
框架以捆绑结构打包。框架包 目录以.framework扩展名结尾,与大多数其他目录不同 捆绑类型,框架包作为一个提供给用户 目录而不是文件。这种开放性使其变得容易 开发人员浏览随附的任何头文件和文档 框架。
源文件
这些是您从代码库中分解出来的类。您可以将它们包含在您使用它们的每个项目中 - 例如一个单独的repo,它包含您添加到Xcode项目工作区的所有共享/公共代码。非常简单,不是最好的维护。
如何在新启动的项目中注入组件。
根据您选择实施公共代码的方式,将影响此步骤。对于源文件,您只需将它们添加到项目中并设置目标。对于框架或静态库,您必须embed them in your project
对于工作区,您将包含共享代码的项目添加到主项目工作区。
如何在不更改组件核心的情况下在组件上进行自定义。
您可能会再次发现自己重构代码,以便公开您希望能够自定义的UI控件或逻辑函数。作为一般规则,您暴露的越多,代码就越复杂。