闲鱼技术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

相关文章
|
29天前
|
设计模式 前端开发 测试技术
Flutter 项目架构技术指南
探讨Flutter项目代码组织架构的关键方面和建议。了解设计原则SOLID、Clean Architecture,以及架构模式MVC、MVP、MVVM,如何有机结合使用,打造优秀的应用架构。
Flutter 项目架构技术指南
|
3月前
|
安全 Go 数据安全/隐私保护
Flutter开发笔记:Flutter路由技术
Flutter开发笔记:Flutter路由技术
337 0
|
1月前
|
开发框架 Dart 前端开发
构建响应式Web界面:Flutter的跨界前端技术
【2月更文挑战第23天】随着移动互联网的飞速发展,响应式Web设计成为现代前端开发的重要趋势。在众多框架中,Google推出的Flutter以其高效的渲染性能、跨平台能力及丰富的组件生态,为前端开发者带来了新的选择。本文将深入探讨如何利用Flutter进行高效、美观的响应式界面构建,同时剖析其与传统前端技术的差异和优势。
|
3月前
|
存储 容器
Flutter 应用服务:主题、暗黑、国际化、本地化-app_service库
Flutter 应用服务:主题、暗黑、国际化、本地化-app_service库
72 0
|
3月前
|
移动开发 前端开发 JavaScript
探究移动端混合开发技术:React Native、Weex、Flutter的比较与选择
移动端混合开发技术在移动应用开发领域日益流行,为开发者提供了更高效的跨平台开发方案。本文将比较三种主流混合开发技术:React Native、Weex和Flutter,从性能、生态系统和开发体验等方面进行评估,以帮助开发者在选择适合自己项目的技术时做出明智的决策。
|
3月前
|
移动开发 前端开发 weex
React Native、Weex、Flutter 混合开发技术的比较与选择
移动应用已经成为人们日常生活中不可或缺的一部分,而混合开发技术也随之崛起并逐渐成为主流。本文将比较 React Native、Weex 和 Flutter 三种混合开发技术,并探讨它们各自的优缺点,以及如何根据项目需求做出选择。
49 1
|
3月前
|
移动开发 前端开发 weex
移动端混合开发技术:React Native、Weex、Flutter 之争
在移动应用开发领域,React Native、Weex 和 Flutter 是备受关注的混合开发技术。本文将对它们进行全面比较与评估,以帮助开发者做出明智的选择。我们将从开发生态、性能、跨平台能力和易用性等方面进行比较,为读者提供全面的参考和指导。
|
3月前
|
移动开发 Dart 前端开发
移动端混合开发技术:React Native、Weex、Flutter的比较与选择
移动应用的开发已经成为现代社会中的重要一环。本文将比较并评估三种主流的移动端混合开发技术:React Native、Weex和Flutter。通过对它们的特点、优势和劣势的分析,帮助开发者在选择适合自己项目的技术方案时做出明智的决策。
|
3月前
|
监控 Dart 安全
创建一个Dart应用,监控局域网上网记录的软件:Flutter框架的应用
在当今数字时代,网络安全变得愈发重要。为了监控局域网上的上网记录,我们可以借助Flutter框架创建一个强大的Dart应用。在这篇文章中,我们将深入讨论如何使用Flutter框架开发这样一个监控局域网上网记录的软件,并提供一些实用的代码示例。
273 1
|
2月前
|
Dart JavaScript
Flutter - Dart 基础(数据类型)
【2月更文挑战第3天】
62 1