维护单一反应本机应用程序的付费和免费版本
Maintaining paid and free version of single react native app
我有一个在 PlayStore 上发布的 React Native 应用程序。现在我想创建一个具有更多功能的付费应用程序。
付费应用程序将是免费应用程序加上一些其他功能。我使用普通的 React Native。
我应该如何构建我的存储库和我的工作流程,以便最终我不必维护两个不同的应用程序。
我对react native不熟悉,但总的来说。有几种方法可以解决这个问题。
一个带标志的代码库
如果您想维护一个代码库,您可以在代码中创建某种 paidVersion 标志。如果标志为 false,则允许用户使用付费功能的某些按钮将被简单地隐藏。如果该标志为真,则允许用户使用付费功能的按钮可见。
这可能是最简单的事情了。
两个分支
软件公司经常发现自己处于维护其软件的免费开源版本和具有一些额外功能的同一软件的付费封闭源版本的位置。为了最大限度地减少维护这两个基本相同的产品的工作量,他们执行以下操作。
- 免费版本在 分支 A.
上维护
- 付费版本从分支A分叉出来,并在分支B
中维护
现在更换产品时需要考虑三种情况。
- 免费版和付费版都使用的更改:这些更改合并到分支A,然后分支 B 重新基于 分支 A.
- 仅对付费版本进行的更改:这些更改仅推送到 分支 B
- 仅在免费版本中进行的更改:这是一个糟糕的情况,请不要这样做,因为这样您就开始走上维护两种不同产品的道路。
插件框架
制作免费版本的产品支持插件。该产品的付费版本只是捆绑了一个插件的免费版本。
结论
使用正确的方法主要取决于您正在构建的内容的性质。如果您正在构建的产品非常复杂(如 IDE)并且可能有多个可选的付费功能,那么您可能需要使用某种插件框架。
如果产品很简单,而且您无意共享免费版或付费版的源代码,那么最好使用 paidVersion 标志。
如果您想共享免费产品的源代码,那么您可能应该使用双分支策略。
我有一个在 PlayStore 上发布的 React Native 应用程序。现在我想创建一个具有更多功能的付费应用程序。
付费应用程序将是免费应用程序加上一些其他功能。我使用普通的 React Native。
我应该如何构建我的存储库和我的工作流程,以便最终我不必维护两个不同的应用程序。
我对react native不熟悉,但总的来说。有几种方法可以解决这个问题。
一个带标志的代码库
如果您想维护一个代码库,您可以在代码中创建某种 paidVersion 标志。如果标志为 false,则允许用户使用付费功能的某些按钮将被简单地隐藏。如果该标志为真,则允许用户使用付费功能的按钮可见。
这可能是最简单的事情了。
两个分支
软件公司经常发现自己处于维护其软件的免费开源版本和具有一些额外功能的同一软件的付费封闭源版本的位置。为了最大限度地减少维护这两个基本相同的产品的工作量,他们执行以下操作。
- 免费版本在 分支 A. 上维护
- 付费版本从分支A分叉出来,并在分支B 中维护
现在更换产品时需要考虑三种情况。
- 免费版和付费版都使用的更改:这些更改合并到分支A,然后分支 B 重新基于 分支 A.
- 仅对付费版本进行的更改:这些更改仅推送到 分支 B
- 仅在免费版本中进行的更改:这是一个糟糕的情况,请不要这样做,因为这样您就开始走上维护两种不同产品的道路。
插件框架
制作免费版本的产品支持插件。该产品的付费版本只是捆绑了一个插件的免费版本。
结论
使用正确的方法主要取决于您正在构建的内容的性质。如果您正在构建的产品非常复杂(如 IDE)并且可能有多个可选的付费功能,那么您可能需要使用某种插件框架。
如果产品很简单,而且您无意共享免费版或付费版的源代码,那么最好使用 paidVersion 标志。
如果您想共享免费产品的源代码,那么您可能应该使用双分支策略。