# 跨平台

移动端跨平台、动态化始终是一个永恒不变的挑战,阿里巴巴作为电商平台也拥有众多App,因此其在跨平台方面有着非常肺腑的尝试。首先就是基于Vue的Weex跨端解决方案。这是一个完全对标React Native的方案,在阿里淘系内部得到了大量的实践。最近一年,闲鱼技术团队大量采用Flutter,同时也沉淀了大量实践,开源了不少Flutter相关项目

# Weex

和RN的设计理念非常类似,通过Vue进行UI代码的编写,然后通过Virtual Dom转换成原生组件进行渲染,从而达到Web开发的体验和原生的渲染体验,而且也实现了跨iOS、Android、Web三段,极大地提升了研发效率。

但是,Weex一度外界认为被阿里废弃,开源社区相对RN也不够活跃,所以让很多人望而却步。不过,最近Weex被Apache社区接纳,似乎重新焕发了青春。

# Flutter

作为过去一年的当红,Fluter的出现让跨平台的技术方案又出现了一个完全不一样的思路。

Flutter完全摒弃了iOS/Android的UI层,基于C/C++ziji实现了一套UI渲染引擎,在引擎上,基于Dart语言实现了完整的UI框架。由于Flutter自己完全实现了一整套UI框架和底层渲染引擎,所以开发者基于这套框架可以完全实现跨端能力,并且也能获得非常良好的渲染体验。

闲鱼团队在其App中大量实践Flutter并且开源了Flutter Boost、Fish Redux等项目。

# Flutter Boost

FlutterBoost是一个Flutter插件,它可以轻松地为现有原生应用程序提供Flutter混合继承方案。FlutterBoost的理念是将Flutter像Webview那样来使用。在现有应用程序中同时管理Native页面并非易事。FlutterBoost帮你处理页面的映射和跳转,你只需要关心页面的名字和参数即可(通常可以是URL)。

# Flutter Redux

Fish Redux通过Redux做集中化、可观察的数据管理。然而不仅如此,对于传统Redux在使用层面上的缺点,在面向端侧flutter页面唯独开发的场景中,我们通过更好更高的抽象,做了改良。

State、Action、Reducer、Store、Middleware以上概念和社区的ReduxJS是完全一致的,我们将原汁原味地保留所有的Redux的优势。