iOS可重用组件

时间:2015-12-13 19:43:42

标签: ios cocoa-touch

在开发iOS应用程序的过程中,我注意到几乎每个应用程序都有一些重复的部分。例如,每个应用程序都有用户管理逻辑,登录,注册,忘记密码。 每次,我发现自己试图手动导入已经开发的逻辑(视图控制器,笔尖,故事板)。 我的问题是如何在单独的组件中实现这些常见功能,因此我可以在每次启动新项目时重复使用它们。另请注意,应该有可能进行小型自定义,例如所有应用程序都有登录屏幕,但UI设计因每个应用程序而异。

长话短说,我需要的是:

  1. 如何将常用的重复功能封装在单独的组件中。
  2. 如何在新启动的项目中注入组件。
  3. 如何在不改变组件核心的情况下在组件上进行自定义。
  4. 我想这里应该是Framework(或静态库)和可可豆荚的一些组合,但是我想知道是否有人已经开发了一些这方面的概念。

2 个答案:

答案 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控件或逻辑函数。作为一般规则,您暴露的越多,代码就越复杂。