闲鱼技术2022年度白皮书-Flutter主题-节日献礼:Flutter知识小报(中)

简介: 闲鱼技术2022年度白皮书-Flutter主题-节日献礼:Flutter知识小报

接上篇:https://developer.aliyun.com/article/1225939?spm=a2c6h.13148508.setting.27.595d4f0eudDbz0


四、 Flutter新渲染引擎impeller尝鲜

 

接着上面的问题,Flutter有一个early-onset jank的公开问题(问题详解可以参见引用【1】)。Flutter页面的抖动问题跟这个问题有着一定的关联。本质上impeller是Skia的一个替代方案。官方在Flutter3.0的版本中首次公开了Impeller的预览版本。同时在Flutter3.3版本中进行了大量完善。目前可以通过如下方式开启:

 

flutter run添加--enable-impeller

Native工程配置

 

在IOS工程的Info.plist文件中添加如下配置:

 

FLTEnableImpeller

 

 

Android工程,在AndroidManifest.xml添加如下配置:

 


   android:name="io.flutter.embedding.android.EnableImpeller"

   android:value="true" />

 

那impeller效果如何呢?从我们初步的测试来看,有如下初步结论:注意目前impeller iOS的成熟度相比Android要高很多。我们只测试了iOS的场景

 

从官方Gallery场景来看,优化效果显著,impeller的debug包就有了媲美之前release包的效果。Flutter的细碎抖动问题,在官方Gallery场景上基本解决。滚动流畅性有显著提升。

 

由于官方Gallery比较简单,从闲鱼的实际benchmark来看,impeller目前在复杂场景下的性能未超过skia的实现。【测试版本Flutter3.3.8手机iPhone13 Pro】主要原因是impeller目前阶段比较早,很多功能还有待完善,测试过程中也出现了大量渲染错误的问题。impeller距离生产中使用还需时日。

 

屏幕快照 2023-05-24 下午12.43.25.png


impeller是Flutter根本上解决卡顿问题的重要尝试,虽然目前状态下还有很多的不完善,但是可以明显感受到impeller带来的显著变化,未来可期

 

五、 Flutter NullSafty有用么?

 

Flutter从2.0版本开始引入Dart语言的NullSafty特性,并且在Flutter2.2版本中默认开启Dart3.0版本中已经明确不再支持非NullSafty代码。引入NullSafty特性能带来的明显收益:

 

a) 在编译期对变量的空安全做强保护。并且IDE会在代码静态扫描的过程中,直接给出空安全相关的提示。这无疑大幅提升了编码效率和代码质量

 

image.png

image.png

b) Dart编译器能针对支持NullSafty的代码进行更多优化以生成体积更小,性能更佳的程序

c) 代码表达更加精简

 

非NullSafty

 

image.png

 

NullSafty

 

image.png

ok如果你想将自己的现有的代码迁移到NullSafty 。可以有多种方案可用:

 

将Flutter项目中的dart Sdk版本改成>=2.12。整个工程即可开启NullSafty。

如果整体开启工作量太大,可以改成单个文件开启。只需要在dart文件的最开始(一定要最顶上写)添加如下注释即可:

 



接下篇:https://developer.aliyun.com/article/1225936?groupCode=idlefish

相关文章
|
21天前
|
SQL 分布式计算 大数据
Flutter技术实践问题之Flutter应用过程中的基础建设如何解决
Flutter技术实践问题之Flutter应用过程中的基础建设如何解决
22 10
|
21天前
|
新零售 前端开发 小程序
Flutter技术实践问题之基于Flutter的Canvas的应用优势如何解决
Flutter技术实践问题之基于Flutter的Canvas的应用优势如何解决
20 2
|
21天前
|
Web App开发 新零售 前端开发
Flutter技术实践问题之阿里集团内Flutter体系化建设如何解决
Flutter技术实践问题之阿里集团内Flutter体系化建设如何解决
27 1
|
12天前
|
Kubernetes Cloud Native 搜索推荐
探索云原生技术:Kubernetes入门与实践打造个性化安卓应用:从零开始的Flutter之旅
【8月更文挑战第31天】云原生技术正改变着应用开发和部署的方式。本文将带你了解云原生的基石——Kubernetes,通过实际的代码示例,从安装到部署一个简单的应用,让你迅速掌握Kubernetes的核心概念和操作方法。无论你是初学者还是有一定经验的开发者,这篇文章都将成为你进入云原生世界的桥梁。
|
4月前
|
Dart 前端开发 测试技术
【Flutter前端技术开发专栏】Flutter开发中的代码质量与重构实践
【4月更文挑战第30天】随着Flutter在跨平台开发的普及,保证代码质量成为开发者关注的重点。优质代码能确保应用性能与稳定性,提高开发效率。关键策略包括遵循最佳实践,编写可读性强的代码,实施代码审查和自动化测试。重构实践在项目扩展时尤为重要,适时重构能优化结构,降低维护成本。开发者应重视代码质量和重构,以促进项目成功。
62 0
【Flutter前端技术开发专栏】Flutter开发中的代码质量与重构实践
|
3月前
|
开发框架 前端开发 测试技术
Flutter开发常见问题解答
Flutter开发常见问题解答
|
4月前
|
前端开发 C++ 容器
Flutter-完整开发实战详解(一、Dart-语言和-Flutter-基础)(1)
Flutter-完整开发实战详解(一、Dart-语言和-Flutter-基础)(1)
|
2天前
|
安全 Android开发 开发者
探索安卓开发的未来:Kotlin的崛起与Flutter的挑战
在移动开发的广阔天地中,安卓平台始终占据着举足轻重的地位。随着技术的不断进步和开发者需求的多样化,Kotlin和Flutter成为了改变游戏规则的新玩家。本文将深入探讨Kotlin如何以其现代化的特性赢得开发者的青睐,以及Flutter凭借跨平台的能力如何挑战传统的安卓开发模式。通过实际案例分析,我们将揭示这两种技术如何塑造未来的安卓应用开发。
17 6
|
19天前
|
开发框架 Android开发 iOS开发
Flutter相关痛点解决问题之淘特选择桌面端开发框架如何解决
Flutter相关痛点解决问题之淘特选择桌面端开发框架如何解决
|
1月前
|
移动开发 前端开发 JavaScript
"跨界大战!React Native、Weex、Flutter:三大混合开发王者正面交锋,揭秘谁才是你移动应用开发的终极利器?"
【8月更文挑战第12天】随着移动应用开发的需求日益增长,高效构建跨平台应用成为关键。React Native、Weex与Flutter作为主流混合开发框架各具特色。React Native依托Facebook的强大支持,以接近原生的性能和丰富的组件库著称;Weex由阿里巴巴开发,性能优越尤其在大数据处理上表现突出;Flutter则凭借Google的支持及独特的Dart语言和Skia渲染引擎,提供出色的定制能力和开发效率。选择时需考量项目特性、团队技能及生态系统的成熟度。希望本文对比能助你做出最佳决策。
76 1