一家之言,勿喷。若有更好方案,欢迎共享。
前言
关于 Flutter
的教程已经有很多了,也有很多优秀的开源项目,这在一定程度上也增加了社区的活跃度。同时也有很多商业项目在实践,不过多数是将Flutter
工程作为一个module
来嵌入原生工程。官方有对应的教程来指导相关的工程化,网上的教程也很多。
但是一个纯 Flutter
工程的分层架构设计以及工程化的教程并不是很多。恰巧最近有个项目需要基于 Flutter
工程来搭建,对分层设计以及相应的工程化做了一些思考和调研,此仓库的目的即在于记录方案,与大家分享。
分层设计
分层设计和目前成熟的移动端的分层设计差不多,都是根据基础能力和业务模块对 App
进行分层以及组件划分,从而达到组件化的目的。
例如下图是一个很常见的移动端分层设计。
将与业务无关的基础能力剥离出来,沉淀到最底层,上层的业务都会基于这些能力去构建;中间划出一个业务能力层,多数是一些弱业务逻辑的模块,像分享、支付这样的能力;然后是业务模块,这些基本上就是用户可感知的界面以及业务逻辑了;最后是宿主App
。基于这样的分层设计,宿主App
一般都是个壳工程。
针对这样的设计,相应的组件间通信方案、工程化方案都已经很成熟,而且可选方案也很多。这里不再赘述,感兴趣的可以自行Google
。
所以我们的Flutter
应该也是可以按照这样的分层去设计,但是由于Flutter
开发中可能会遇到需要原生提供能力的场景,这样就会有一部分能力是基于原生能力封装的插件&#