我目前正在开发两个iOS应用程序:一个用于员工,一个用于管理员。
我为每个应用程序使用不同的目标,以便我可以重复使用代码(例如用户的模型,因为员工和管理员都被视为用户,并且只有不同的权限级别。)
这两个应用程序最近刚刚启动,所以我正在考虑从头开始重新编写它们以使用React Native(因为我将在完成iOS应用程序时为Android执行确切的应用程序)。
我的问题:使用React Native在两个独立的应用程序(具有不同的功能)之间共享代码有多容易?是否有用于此目的的功能(或库)?
在项目结束时,我将有四个独立的应用程序:两个用于Android,两个用于iOS。
我已经看到了这个问题的一些答案,但它们似乎主要适用于具有“制作”,“开发”和“暂存”目标的单个应用,每个应用基本相同。
答案 0 :(得分:0)
所以我认为你真正想要的是3个项目。 1个员工应用程序和1个管理员应用程序显然但是你的第三个项目对于将在两个应用程序之间共享的组件来说基本上是一个常见的项目。例如,您的用户类将进入此项目。然后,当您开发应用程序项目时,可以将公共项目作为依赖项导入(通过package.json
)。这会将您的可重用类添加到您的应用项目中的node_modules
,您可以通过在特定于应用的类中导入它们来访问它们。
当然,您也可以采用Matt的建议并构建一个应用程序,其中包含根据权限为员工或经理显示不同路径的所有内容。只是取决于你想要如何接近它。
答案 1 :(得分:0)
过去,我遵循老式的方式,每个项目都有一个单独的Git存储库(总共2个)。我还创建了第三个资料库,其中包含一个包含所有通用代码(主要是组件,但也包括utils,与网络相关的代码等)的库模块。然后,我将此模块发布到npm,并将其作为对我2个项目的依赖关系添加。
问题在于该技术的维护成本很高。例如,在处理项目1时,我发现我想更改我的组件之一。这意味着我必须切换项目,更新库,将新版本推送到npm,再次切换项目,使用新版本更新项目1(和2),然后继续工作,直到我发现需要在其中某处进行其他更改。图书馆。而且发生这种情况的频率比我最初想象的要高。
有时候,我被要求再次做类似的事情。我阅读了一些有关最佳做法的文章,并决定采用this article中描述的模式。概括起来,我现在有一个具有多个模块的单个Git存储库:每个功能一个,每个应用一个。我使用Lerna来管理模块,虽然现在还为时过早,但感觉比以前好多了。
也就是说,显然没有一个正确的答案,但是对于我们的项目而言,在我们的2人团队中,到目前为止,效果还不错。