框架与类库:Flutter
Flutter与native交互方式探究
Flutter作为一个“UI”框架,它并不是万能的,我们不可避免会遇到与native交互的场景。Flutter官方推荐的交互方式是Platform Channel。本文介绍了Platform Channel与ffi以及两种交互方式的对比。
Flutter 标准化埋点实战
在Flutter项目之初,简陋的埋点支持使得开发效率低下,开发者需要写大量代码来完成一个埋点需求,没有规范模板使得埋点数据经常出错,复杂的业务场景使得埋点会出现重复或漏报,四处散乱的埋点代码导致维护成本偏高,异步操作导致的url不准等。因此,亟需一套解决方案来解决以上问题。
那么,提供一套怎样的埋点框架就成了我们要面对的第一个问题:
在开发者的角度,我们希望它高效简便;
在数据分析者角度,我们希望它合理稳定;
在产品设计者角度,我们希望它准确有效。
为了达成以上目标,经过不断的优化与改进,现在整套框架基本已经满足需求。
在Flutter项目下安卓flavor打包配置实践
Flutter是Google这几年大力推广的跨平台UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。在架构搭建阶段,我们依然需要原生技术的支持。比如说,我们在开发Android项目时,会通过在gradle文件中配置Flavor来实现不同渠道的属性配置,之后通过在编译过程中自动生成BuildConfig文件来读取不同Flavor下的各种属性。
在Flutter项目中,我们如何实现不同Flavor下读取相应属性并实现多渠道打包呢?以及Flutter的打包过程跟Android原生打包有什么不同呢?
本文将以Flutter1.22.4版本为基础,通过Flutter项目中对于Android工程的构建流程详解,来进行Flavor配置说明以及Apk构建过程的详细分析。并针对SDK的bug提出了解决方案及原因梳理。
[Flutter] UI调试小工具——颜色吸管
Flutter颜色吸管工具的实现。
Flutter混合栈路由实践与优化
Flutter与原生混合开发下路由难题小解
飞猪Flutter技术演进及业务改造的实践与思考总结
本文结合飞猪近半年来在 Flutter 技术实践中的突破和探索,重点介绍跨端标准容器建设、组件库的沉淀、性能优化的经验,以及面对存量业务做 Flutter 改造的新思路。
Flutter Web在美团外卖的实践
美团外卖前端技术团队基于Flutter Web探索跨端解决方案,实现了“Write Once,Run AnyWhere”,本文系实践经验总结。
一套Flutter混排瀑布流解决方案
流式布局,这是一种当前无论是前端,还是Native都比较流行的一种页面布局。特别是对于商品这样的Feeds流,无论是淘宝,京东,美团,还是闲鱼。都基本上以多列瀑布流进行呈现,容器列数固定,然后每个卡片高度不一,形成参差不齐的多栏布局。
对于Native来说,无论是iOS还是Android,CollectionView和RecyclerView都能满足我们的绝大部分场景了。不过目前闲鱼很多业务场景都是在Flutter上进行实现的,当时Flutter官方只提供了ListView和GridView的实现,没有对瀑布流进行支持。
目前社区中有两个开源的解决方案,分别是WaterFallFlow和FlutterStaggeredGridView。但是在闲鱼的场景中都有一些无法满足的痛点。前者无法支持RecyclerView中StaggeredGridLayoutManager中setFullSpan这样的横跨全屏的横条卡片混排能力能力,后者在不提前预设置卡片高度的情况下有比较严重的性能问题,以及在多Sliver的场景下会有滚动错误的功能性问题。而在目前闲鱼的业务中,无论是搜索结果还是首页的同城页面,都会有混排瀑布流的需求。
Flutter Worker —— 闲鱼这样实现“逻辑跨平台”
依托Flutter Engine,用Dart实现的逻辑跨平台工具~
MOO 音乐中的Flutter 模糊方案分析
本文记录了MOO音乐团队在Flutter上模糊方案的一些思考。
Q音直播Flutter包裁剪方案(iOS)
Flutter作为一款优秀的跨平台方案,Q音团队一致保持高度关注,也一直在努力促进Flutter的应用框架建设。本文分享内容是Q音是如何解决Flutter包体积问题,欢迎大家相互交流相关技术。
Flutter的Widget之间的通信方式及状态管理
本文将从父Widget和子Widget之间的通信、跨多个Widget/页面之间的通信、状态管理这个三个方面讲解相关的知识及原理。
Flutter在流式场景下的架构设计与应用
Flutter在流式场景下的一套页面搭建架构方案,减少发版依赖,提升效能!
贝壳Flutter动态化原理与实践
本文主要介绍贝壳Flutter动态化方向的发展历程以及整体架构,同时介绍贝壳Flutter动态化技术方案和未来规划。
让 Flutter 在鸿蒙系统上跑起来
如何在保证开发迭代效率的前提下,以相对低的成本将移动应用快速移植到鸿蒙平台呢?
Flutter 高性能、多功能的全场景滚动容器,一定要看!
目前闲鱼的主要业务场景都已经使用 Flutter 来实现,其中流式布局是最常见的页面布局场景(如搜索、商品详情等)。随着业务的快速迭代和业务复杂度的不断提升,对流式场景的能力和性能要求也越来越高;
- 在能力方面,最常见的如卡片曝光、滚动锚点、瀑布流布局等能力,随着业务和需求的不断变化,Flutter原生和一些开源解决方案,渐渐无法满足我们需求。
- 性能方面,流式场景下的列表滚动流畅度问题随着业务复杂度的增加而逐渐恶化,亟需解决以提升用户的使用体验。
针对以上在业务中面临的问题,我们设计了一套流式场景下通用的页面布局解决方案,我们将其命名为 PowerScrollView。