闲鱼基于Flutter技术的架构演进和创新

想学Flutter,就请关注这个专栏
前端

想学Flutter,就请关注这个专栏
Flutter系列(一)——详细介绍
Flutter系列(二)——与React Native进行对比
Flutter系列(三)——环境搭建(Windows)
Flutter系列(四)——HelloWorld
文档归档:
github.com/yang0range/…
git

欢迎Start!欢迎Follow!

闲鱼——三亿人都在用的闲置交易社区

最近一段时间一直学习Flutter,也尝试写一下Demo,可是在用的时候。从一开始惊艳到了,以为写起来很爽,各类UI效果实现起来很棒,并且因为渲染机制,还让双端甚至多端的UI保持一致以及几乎能够和Native先媲美的用户体验。可是慢慢就又发现了许多新的坑,新的问题,确实也很不爽。github

为此特地从网上找了一些大厂的资料借鉴一下。redux

闲鱼是使用Flutter很是早的团队,并且闲鱼对于Flutter的应用,甚至二次开发都走在前面,在保持项目稳定的同时,又开源出不少有价值的东西。架构

为此特地找了一下闲鱼客户端负责人——于佳在全球前端大会上的一个分享,仔细看看确实收获颇丰。工具

什么样的团队更应该关注Flutter?

Flutter很早就推出了,并且我以前也经过一篇文章,详细介绍了Flutterpost

一个新技术推出来是一刀切的把如今的内容全替换成Flutter吗?或者说什么样的团队更应该关注Flutter性能

若是团队是这样的团队那么就应该更多的关注一下Flutter学习

  • 中小型的团队,更加注重产出比,人效比的团队。
  • 特定的用户比较多的,好比Android端较多,那么能够采用Flutter开发而后同步IOS端。
  • App工厂类的,好比像头条这种App工厂,对于更新迭代较快团队。

如何将Flutter和现有App进行融合?

已有 App+Flutter 容器

image.png

由于现有的APP多是基于某种架构或者某些逻辑已经成型,假若从新用Flutter去打造一个APP显然是不显示的,那么如何尽量快速的把Flutter融合到咱们当前的项目的同时,又要保证二者的无缝衔接以及高性能呢?优化

闲鱼用两种方式来解决以上问题。

1.了全局共享同一个 FlutterViewController 的方式保证
了内存占用的最小。

2.Dart 侧提供一个 BoostContainerManager 的方式,提供了对多个
Navigator 的管理,来避免堆栈逻辑混乱的问题。

针对这一部分工做,闲鱼已经开源了一个项目 Flutter Boots
项目地址


详细的介绍能够参阅GitHub上的文档GitHub地址

如何让整个团队快速上手Flutter

这里是给我印象最深的一部分。

在本身项目的开发当中,常常也会遇到你们的书写习惯致使形式各异的代码结构,甚至稳定性还不能保证。特别是多人协做的过程中后期维护,仍是工做交接的过程中不是很便捷。

如何拉高代码的下限,写出来的代码保持一个80%以上的质量度。

为了解决这个问题,闲鱼选择了Flutter Redux方案并加以优化通过三个版本迭代最终落地了Fish Redux

结构图以下。

image.png

详细的内容介绍能够在GitHub文档当中看到。
开源地址:https://github.com/alibaba/fish-redux

最后

整个分享内容仍是干货满满,我只是针对印象比较深的内容进行了整理。

最近刚开始慢慢接触Flutter对于不少比较深的概念和构想理解仍是远远不够,但愿在从此的实践当中,慢慢用到甚至会体会到闲鱼在Flutter的架构演变当中的思想。

Flutter已是Top20的软件库,经过接下来的一系列的文章,但愿我和你们一块儿来学习Flutter,一块儿进步,一块儿有所收获,掌握将来技术主流的主动权!

闲鱼推出了一个
Flutter in action——闲鱼最佳实践的文档,针对Flutter从开源工具,到企业级应用实践再到混合开发实践指南等内容都作了一个详尽的介绍。

关注个人公众号,并回复"闲鱼"便可获得,相信会让你受益不浅!

欢迎关注公共号

关注公众号会有更多收获!

相关文章
相关标签/搜索