Flutter 多平台的项目架构讨论

查看 8|回复 0
作者:andyzhshg   
目前正在用 flutter 做一个数独游戏,目前的目标平台是移动平台,面向 APP Store 和 Google Play 的海外用户。
因为国内各种游戏版号和备案的限制,现在上架的时候是直接剔除的国区,所以 APP 内直接集成了 Firebase 的服务和 Admob 的广告。
现在项目的构造是除了数独的逻辑部分我提炼成了一个 package 之外,所有的其他逻辑相关的代码都在一个主项目库中,主要是界面,广告,内购这些。
目前数独逻辑 package 代码是大几千行的代码量,主项目是 1 万+的代码量。
以上是前提。
我现在想把项目做一个重构,让它能够更具有灵活性,力求可以达到:
  • 支持国内市场,这部分可能需要做的是将 firebase 和广告等内容用国产方案替代。
  • 支持 web ,目前因为使用了 dart:io 等只有原生平台支持的库,所以并不能在 web 上跑起来。web 版的功能会有很大的阉割,主要是在官网用来试玩和引流。
  • 支持桌面平台,主要是想支持 Mac App Store 和 Windows(有可能是 steam)。桌面平台的主要区别是界面的布局,以及剔除广告和收费点的微调等。

    现在移动版的开发已经完成并上线了 App Store 和 Google Play ,所以在研究项目的重构方案。
    我的想法是首先抽离游戏玩的部分的界面逻辑为一个 package ,然后内购广告等都抽离为相应的 package ,给不同的平台生成一个不同的主项目,在主项目中用胶水代码按需来组合这些 package 。
    不过这样就导致项目过多,需要同时打开 N 个库来修改,不太方便不同的平台调试。如何最大化的提炼逻辑让胶水代码量最小也是个挑战。
    不知道有没有做过 flutter 多平台的同仁,能帮忙出出主意。
    后端转移动端中老年野生程序员先行谢过。
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部