你有用过Flutter吗? Flutter架构是怎么样?为什么会比其他如ReactNative好?

Flutter移动开发系列教程! 原生开发与跨平台技术 原生开发 原生应用程序是指某一个移动平台(比如iOS或安卓)所特有的应用,使用相应平台支持的开发工具和语言,并直接调用系统提供的SDK API。比如Android原生应用就是指使用Java或Kotlin语言直接调用Android SDK开发的应用程序;而iOS原生应用就是指通过Objective-C或Swift语言直接调用iOS SDK开发的应用程序。原生开发有以下主要优... 阅读详情

面试官: 你有用过Flutter吗? Flutter架构是怎么样,为什么会比其他如ReactNative好
心理分析: 面试官所在的项目是用Flutter 开发的,或者正在转Flutter这种技术。如果你不会,面试官在第一眼会认为后面来应聘的人或许会、为了杜绝这种情况发生,你一定要说以前研究过,写过相关代码。其实”有用过Flutter“对大多数求职只是 会与不会 的问题。这不是面试官 想了解的。面试官的重点 你了解的有多深。
接下来,会问你他的原理 你是怎么看。 它的优缺点。为什么比其他的好。从原理层来解析。这才是最难的。
这篇文章 从原理层说明他们的区别
求职者: 应该做好被虐的准备。如果看了这篇文章,应付下来基本没有多大的问题
在Flutter诞生之前,已经有许多跨平台UI框架的方案,比如基于WebView的Cordova、AppCan等,还有使用HTML+JavaScript渲染成原生控件的React Native、Weex等。

1.0 框架架构

反观Flutter

首先看一下Flutter的架构图

1.1 Flutter三层架构

Framework
Engine
Embedder

1.Framework使用dart实现,包括Material Design风格的Widget,Cupertino(针对iOS)风格的Widgets,文本/图片/按钮等基础Widgets,渲染,动画,手势等。此部分的核心代码是:flutter仓库下的flutter package,以及sky_engine仓库下的io,async,ui(dart:ui库提供了Flutter框架和引擎之间的接口)等package。

2.Engine使用C++实现,主要包括:Skia,Dart和Text。Skia是开源的二维图形库,提供了适用于多种软硬件平台的通用API

3.Embedder是一个嵌入层,即把Flutter嵌入到各个平台上去,这里做的主要工作包括渲染Surface设置,线程设置,以及插件等。从这里可以看出,Flutter的平台相关层很低,平台(如iOS)只是提供一个画布,剩余的所有渲染相关的逻辑都在Flutter内部,这就使得它具有了很好的跨端一致性。

从架构图可以看出,从头到尾重写一套跨平台的UI框架,包括UI控件、渲染逻辑甚至开发语言。渲染引擎依靠跨平台的Skia图形库来实现,依赖系统的只有图形绘制相关的接口,可以在最大程度上保证不同平台、不同设备的体验一致性,逻辑处理使用支持AOT的Dart语言,执行效率也比JavaScript高得多

1.2 、万物皆widget

目前上主流的思想,都希望将各个ui控件接耦,慢慢演变出组件化的思想。

Flutter控件主要分为两大类,

  • StatelessWidget
  • StatefulWidget,

StatelessWidget用来展示静态的文本或者图片,如果控件需要根据外部数据或者用户操作来改变的话,就需要使用StatefulWidget。

State的概念也是来源于Facebook的流行Web框架React,React风格的框架中使用控件树和各自的状态来构建界面,当某个控件的状态发生变化时由框架负责对比前后状态差异并且采取最小代价来更新渲染结果。

1.3 绘图基本原理

从下图这里可以看出 Flutter和 React-Native之众的本质区别:React-Native之类只是扩展调用 OEM组件,而 Flutter是自己渲染。

在 Flutter Architecture的解释中,Google还提供了一张更为详尽的图来解释 Flutter的原理:

image

​ 这张图解释得更清晰一些:Flutter只关心向 GPU提供视图数据,GPU的 VSync信号同步到 UI线程,UI线程使用 Dart来构建抽象的视图结构,这份数据结构在 GPU线程进行图层合成,视图数据提供给 Skia引擎渲染为 GPU数据,这些数据通过 OpenGL或者 Vulkan提供给 GPU。

​ 所以 Flutter并不关心显示器、视频控制器以及 GPU具体工作,它只关心 GPU发出的 VSync信号,尽可能快地在两个 VSync信号之间计算并合成视图数据,并且把数据提供给 GPU。

1.4 Flutter面试会出现的几个问题

了解 Flutter的基本概念后,自然有几个疑问亟待解决。

1.4.1 为什么使用 Dart?能说说其中的原因吗

  • Dart 的性能更好。Dart在 JIT模式下,速度与 JavaScript基本持平。但是 Dart支持 AOT,当以 AOT模式运行时,JavaScript便远远追不上了。速度的提升对高帧率下的视图数据计算很有帮助。
  • Native Binding。在 Android上,v8的 Native Binding可以很好地实现,但是 iOS上的 JavaScriptCore不可以,所以如果使用 JavaScript,Flutter 基础框架的代码模式就很难统一了。而 Dart的 Native Binding可以很好地通过 Dart Lib实现。
  • Fuchsia OS,看起来不像原因的一个原因。Fuchsia OS内置的应用浏览器就是使用 Dart语言作为 App的开发语言。而且实际上,Flutter是 Fuchisa OS的应用框架概念上的一个子集。(Flutter源代码和编译工具链也充斥了大量的 Fuchsia宏)
  • Dart是类型安全的语言,拥有完善的包管理和诸多特性。Google召集了如此多个编程语言界的设计专家开发出这样一门语言,旨在取代 JavaScript,所以 Fuchsia OS内置了 Dart。Dart可以作为 embedded lib嵌入应用,而不用只能随着系统升级才能获得更新,这也是优势之一。

1.4.2 Skia是什么? 为什么Flutter会引入Skia

前面提到了 Flutter只关心如何构建视图抽象结构,向 GPU提供视图数据。Skia就是 Flutter向 GPU提供数据的途径。

  • Skia是一个 2D的绘图引擎库,其前身是一个向量绘图软件,Chrome和 Android均采用 Skia作为绘图引擎。Skia提供了非常友好的 API,并且在图形转换、文字渲染、位图渲染方面都提供了友好、高效的表现。Skia是跨平台的,所以可以被嵌入到 Flutter的 iOS SDK中,而不用去研究 iOS闭源的 Core Graphics / Core Animation。
  • Android自带了 Skia,所以 Flutter Android SDK要比 iOS SDK小很多。

1.4.3 Flutter的架构是怎么样的,你是怎么理解FLutter的架构

我们可能只知道 Flutter做了什么,始终都还没有从侧面观察 Flutter的整个架构设计,了解 Flutter如何去做。

这张图了解过 Flutter的人可能很多地方都看过,这边来详细解释一下:

Flutter Framework: 这是一个纯 Dart实现的 SDK,类似于 React在 JavaScript中的作用。它实现了一套基础库, 用于处理动画、绘图和手势。并且基于绘图封装了一套 UI组件库,然后根据 Material 和Cupertino两种视觉风格区分开来。这个纯 Dart实现的 SDK被封装为了一个叫作 dart:ui的 Dart库。我们在使用 Flutter写 App的时候,直接导入这个库即可使用组件等功能。

Flutter Engine: 这是一个纯 C++实现的 SDK,其中囊括了 Skia引擎、Dart运行时、文字排版引擎等。不过说白了,它就是 Dart的一个运行时,它可以以 JIT、JIT Snapshot 或者 AOT的模式运行 Dart代码。在代码调用 dart:ui库时,提供 dart:ui库中 Native Binding 实现。 不过别忘了,这个运行时还控制着 VSync信号的传递、GPU数据的填充等,并且还负责把客户端的事件传递到运行时中的代码。

在了解屏幕绘图的基本原理和 Flutter的一个整体概念后,我们下面详细地来看一下 Flutter的大概实现。

要理解 Flutter的原理,我们从 entry point开始看 Flutter的代码。由于应用框架大同小异,所以下文提及 Flutter的代码即指代 Flutter Engine的代码,而非 Flutter Dart Framework代码。

下图是我简单整理了一下 Flutter应用启动后的执行顺序

  • 在应用的 View Controller 初始化后,会实例化一个 Flutter project的抽象(以下简称 project)。project会初始化一个 platform view的抽象实例,这个抽象实例会负责创建 Flutter 的运行时(以下简称 engine)。

  • 当 View Controller将要显示时,调用 project查找和组合 Flutter的应用资源 bundle,并且把资源提供给 engine。

  • engine在真正需要执行资源 bundle时才会创建 Dart执行的环境(懒加载,以下简称 Dart Controller),然后设置视图窗口的一些属性等东西(这是绘图引擎必需的)。

  • 然后 engine中的 Dart Controller会加载 Dart代码并执行,执行的过程中会调用 dart:ui的 native binding实现向 GPU提供数据。

1.4.4 Flutter SDK体积为什么非常大?这个你知道吗

  • Flutter应用的体积由两部分组成:应用代码和 SDK代码。应用代码是 Dart编译后的代码,如果做成可动态下发,那么这部分可以不计。
  • SDK代码比较大就有点无奈了,SDK的组成部分有 Dart VM,Dart标准库,libwebp、libpng、libboringssl等第三方库,libskia,Dart UI库,然后再加上 icu_data,可能在单 arch下(iOS),SDK体积达到 40+MB。其中仅仅 Dart VM(不包含标准库)就达到了 7MB。
  • Flutter SDK是 dynamic framework,如此大的二进制体积可能会造成动态链接耗时长。而如果静态链接,可能原来比较大的 App很有可能造成 TEXT段超标。

1.4.5 Flutter可以跑多个实例吗?(连环炮)

可以的。

  • Dart毫无疑问是一门优秀的编程语言,我也曾尝试将 Dart独立出来作为一个通用的 SDK。
  • Dart SDK托管在 chromium项目中,并且提供了 cross building的选项。原版即提供了 Android Build脚本。但在 iOS上原版行不通,猜测主要是标准库的问题。
  • 在 Flutter iOS项目中,Dart 标准库提供了一份完全不同的实现。而且,想要把 Dart VM和标准库从 Flutter剥离出来,太困难了。并且单个 arch下,Dart VM加标准库的体积是 > 10MB的。

小编整理了一些关于面试类的文章,含有从基础到进阶。含有BATJ.字节跳动面试专题,算法专题,高端技术专题,混合开发专题,java面试专题,Android,Java小知识,到性能优化.线程.View.OpenCV.NDK等应有尽有。还有辅之相关的视频+学习笔记

话不多请看下图↓↓↓ (把所有的知识+每日一题整理了)

进扣裙回复【333】获取完整资料

 

 

Flutter VS ReactNative Flutter 简介 目前 Hybrid App 主要分为两类: (1) 通过 WebView 加载本地网页,App 相当于本地网站。如 PhoneGap、Cordova、IOnic。 (2) 原生控件的跨平台抽象,如 ReactNative、Weex。 Flutter 走了不一样的路:自己开发了一套原生控件,每个平台实现一遍,然后把渲染引擎(这套控件)打包在每个应用里面,因此性能没有问题,平... 阅读详情

相关推荐

RN、Flutter、Uni-app APP框架对比

RN、Flutter、Uni-app APP框架对比 框架背景介绍 Flutter Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。Flutter 开源、免费,拥有宽松的开源协议,适合商业项目。 React Native React Native(简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架 React 在原生移动应用平台的衍生产物,支持iOS和安卓两

chao94w的博客 6971

2023年Flutter发展的怎么样了?还有学的必要吗?

随着移动应用市场的不断扩大,跨平台开发框架的需求也越来越大。Flutter框架可以帮助开发者在不同平台上快速开发高质量的移动应用程序,这种趋势将进一步推动Flutter的发展和普及。作为一名Android开发工程师,学习Flutter框架是非常有必要的。因为现在的前端开发已经不仅仅局限于网页开发,而是需要涉及到多个平台的应用开发。如果掌握了Flutter框架的开发技能,就可以更好地满足前端开发的多样化需求。从19年过去的几年时间,Flutter在Google带领各大厂商的引领下,飞速发展。

嘴巴吃糖了 1617

F5 Shape逆向工程实战:从美西南航空到xbk的风控突破

本文以美西南航空和xbk为例,深入剖析了F5 Shape风控系统的逆向工程实战。文章拆解了其核心防线,包括通信加密、JSVMP逆向分析和无孔不入的环境指纹检测,并分享了定位Header生成入口、模拟算法输出及构建真实浏览器环境的系统性方法与思路,为合规的技术研究与测试提供参考。

weixin_29327525的博客 1387

如何评价Flutter?

Flutter在我们团队的六年实践中,不仅证实了其作为跨平台开发框架的巨大潜力,更是在性能、一致性、开发效率和测试支持等方面超出了我们的最初预期。当然,我们也意识到持续关注其发展,适时调整策略以应对潜在挑战的重要性。Flutter的旅程还在继续,我们对其未来充满信心。

developer_laoliu的博客 1608

C51:PWM+舵机角度控制

PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是50%.脉冲宽度调制通过占空比编码模拟信号一个周期内,高电平占据时长的百分比如下图所示,最便宜的舵机sg90,常用三根或者四根接线,黄色为PWM信号控制。

qq_73379310的博客 3388

从X86到ARM:全面解析服务器CPU架构的演变与未来趋势

本文深入解析了服务器CPU架构从X86到ARM的演变历程与未来趋势。文章从CISC与RISC两种设计哲学切入,分析了X86凭借生态建立的帝国地位及其面临的功耗挑战,并重点阐述了ARM架构凭借其卓越的能效比优势,正从移动端向数据中心市场发起冲击。未来,异构计算、软硬协同与专用芯片将成为服务器CPU发展的核心方向。

gold的博客 1127

Flutter一路飙升,为何受欢迎?

Flutter的人气飙升是有充分理由的。Flutter为开发人员提供了广泛的优势,可以加快开发速度,并带来更加用户友好的移动应用程序。Flutter很容易上手,无论你是否有丰富的开发经验。经常使用其他语言(如Java,Python,C#或其他面向对象语言)的开发人员将毫无问题地将Flutter和Dart添加到他们的库中,因为Dart在结构和语法上都与这些语言相似。此外,对于那些开发经验较少的人来说,Flutter的扩展小部件库使得构建应用程序变得容易,而无需编写大量代码;

star_nwe的博客 550

Simulink单相桥式有源逆变电路仿真:从器件选型到波形分析(MATLAB 2018a实战)

本文基于MATLAB 2018a的Simulink平台,详细演示了单相桥式有源逆变电路的完整仿真流程。从Simscape/Power Systems库的器件选型、参数配置,到触发脉冲设置与电路连接,逐步指导搭建仿真模型。通过调整触发角α,直观展示了电路从整流到有源逆变的工作状态切换,并深入分析了负载电压、电流波形,以及逆变颠覆现象的产生条件与特征。

cake8的博客 1159

Flutter 学习路线图

Flutter 学习路线图 如果你真的觉得很难,坚持不了了,那就放弃,既然放弃了就不要抱怨没有得到。 选择你热爱的,坚持你选择的,不抱怨放弃的。 前言 Flutter越来越火,学习Flutter的人越来越多,对于刚接触Flutter的人来说最重要的是如何学习Flutter,重点学习Flutter的哪些内容。下面是Flutter的学习路线图,学会这些你就入门了,当然这仅仅是初学者的学习路线图,...

老孟Flutter 8206

SqlSugar避坑指南:C#操作MySQL时你可能会忽略的5个细节

本文分享了使用C#和SqlSugar框架操作MySQL数据库时的实战避坑指南。针对连接配置、实体映射、查询性能、事务处理等关键环节,深入剖析了5个容易被忽略但至关重要的细节,帮助开发者提升项目稳定性和执行效率,避免常见陷阱。

delta的博客 276

YOLOV8主干改进方法:C2f-Dual——DualConv轻量化双卷积设计(附改进代码)

DualConv是一种创新的卷积网络结构,旨在构建轻量级的深度神经网络。它通过结合3×3和1×1的卷积核处理相同的输入特征映射通道,优化了信息处理和特征提取。DualConv利用组卷积技术高效排列卷积滤波器,大大降低了计算成本和参数数量。

m0_74890428的博客 4698

面试官:你有用过Flutter吗? Flutter架构是怎么样,为什么会比其他如ReactNative好

面试官:你有用过Flutter吗? Flutter架构是怎么样,为什么会比其他如ReactNative好心理分析:面试官所在的项目是用Flutter 开发的,或者正在转Flutter这种技术。如果你不会,面试官在第一眼会认为后面来应聘的人或许会、为了杜绝这种情况发生,你一定要说以前研究过,写过相关代码。其实”有用过Flutter“对大多数求职只是 会与不会 的问题。这不是面试官 想了解的。面试官的重点 你了解的有多深。 接下来,会问你他的原理 你是怎么看。 它的优缺点。为什么比其他的好。从原理层来解析...

嘴巴吃糖了 2871

QML 果冻抖动:用 Scale 动画模拟 Q 弹反馈

介绍果冻抖动效果:点击后卡片通过多段 ParallelAnimation 实现 Scale X/Y 反向缩放和逐步衰减,模拟果冻弹性形变;进阶版本加入小幅 Rotation 增加活泼感,适合游戏、儿童应用等趣味反馈场景。

u011186532的专栏 424

面试官:你有用过Flutter吗 Flutter架构是怎么样,为什么会比其他如ReactNative好_flutter面试

其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。然而Android架构学习进阶是一条漫长而艰苦的道路,不能靠一时激情,更不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。贵在坚持!网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化学习资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远!

2401_84544714的博客 1270

低代码部署与管理——OpenClaw智能助手的应用部署与运维(2026技术版)

OpenClaw智能助手的低代码部署与管理平台采用分层架构设计,包含部署工具、环境管理、版本控制等核心模块,支持从开发到生产的全流程自动化部署。该系统通过Docker、Kubernetes等技术实现应用构建和部署,利用Terraform等工具管理多环境配置,并提供完善的监控运维能力。平台针对开发、测试、预生产和生产环境提供差异化配置,确保部署效率和运行可靠性。这种架构设计遵循自动化、可扩展性和安全性原则,显著提升了智能助手应用的部署效率和运维质量。

一键难忘的博客 314

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

面试官:你有用过Flutter吗 Flutter架构是怎么样,为什么会比其他如ReactNative好_flutter面试(1)

针对Android程序员,我这边给大家整理了一些资料,包括不限于高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术;希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、混合式开发(ReactNative+Weex)全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。

2401_84544714的博客 1157

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

阿里面试:用过Flutter吗--Flutter架构是怎么样?为什么会比其他如ReactNative好

(一)调整好心态心态是一个人能否成功的关键,如果不调整好自己的心态,是很难静下心来学习的,尤其是现在这么浮躁的社会,大部分的程序员的现状就是三点一线,感觉很累,一些大龄的程序员更多的会感到焦虑,而且随着年龄的增长,这种焦虑感会越来越强烈,那么唯一的解决办法就是调整好自己的心态,要做到自信、年轻、勤奋。这样的调整,一方面对自己学习有帮助,另一方面让自己应对面试更从容,更顺利。(二)时间挤一挤,制定好计划一旦下定决心要提升自己,那么再忙的情况下也要每天挤一挤时间,切记不可“两天打渔三天晒网”。

2401_84102979的博客 1020

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

RN和Flutter对比

RN和Flutter对比 Flutter是谷歌的移动端UI框架,可以快速在IOS和Android上面构建高质量的原生用户界面,免费开源的,是可以用于常见高性能、快平台的移动应用的框架。 1.性能方面: Flutter是基于Drt语言,所有避免了RN的那种通过桥接器与js通讯导致效率低下的问题,所有在性能方面,Flutter要比RN更高一些,会更接近原生体验 2.学习方面: Flutter是基于Da...

weixin_46401812的博客 2416

RN是什么

React Native(反应 本地) 简称RN,是Facebook在2015年的F8大会上宣布的。刚开始仅支持ios,现在,主流的iOS和Android支持度已经很好了。主要是提供了一种多平台同时运行的语言环境。RN的口号是:Learn Once,Write AnyWhere。学起来炒鸡简单。但是各个平台的适配等工作,就得慢慢自己折腾!这个也和移动端设备的多样有关,不同设备从硬件到软件的环境都可能不同。比如Android有返回等物理按键,但是iPhone就没有这样的按钮。等等类似的这种情况都使得我们不得不

老高的专栏 1万+

Flutter、Weex、RN,Native对比

Flutter、Weex、RN,Native对比 最火移动端跨平台方案盘点:React Native、weex、Flutter

云梦九章~ 1万+

Skip、Compose、Flutter和RN

Flutter可以说是这种方案的典型代表。从上面架构图中可以看出来,Flutter重写了一套SDK用以代替原生的SDK。其实图中没有画出来的是在SDK和Skia引擎中间还应该有一个Flutter 引擎层。通常SDK只是给开发者提供一个接口。基于SDK开发出来的页面需要经过Flutter引擎的处理才能传递给Skia进行绘制。所以简单来说就是Flutter重建了一整套的UI体系。这样做最大的好处就是Flutter可以做到和原生完全一致的架构。自然也就没有了中间层方案的性能损耗。

developer_laoliu的博客 1198

Flutter与RN

Flutter是谷歌的移动UI框架,可以快速的在IOS和Android上构建高质量的原生用户界面,Flutter可以与现有的代码一起工作,且开源免费Flutter用于创建高性能,跨平台的移动应用框架,针对于当下以及未来的移动设备进行优化,专注于Android和IOS低延迟的输入和高帧率Flutter的设计跟react native很像,但是比RN进一步Flutter的开发语言是Dart1. 性能方面:Flutter由于是基于Dart语言, 所以避免了RN的那种通过桥接器与Javascript通讯导致效率低下

Ai1114的博客 3万+

Flutter和RN对比

一、采用语言 Flutter开发语言是Dart,RN开发语言是React React是JS语法,前端工程师上手快一些。通过css控制UI样式,可读性较高。 Dart是谷歌新推出的语言,风格跟Java kotlin JS有些相似的地方,是通过AOT编译的,可以快速编译成原生代码,直接跟系统进行通信。UI各种嵌套,可读性较差。 二.实现原理: RN:利用JS来做桥接,将JS调用转为本地代码调用,底层代...

qiaoyh 4902

flutter与RN对比

本周五下午公司组织了三场分享: 一场是关于前端微架构; 一场是关于flutter的介绍; 一场是关于react native项目实战 flutter最近热度很高,是由 Google 的工程师团队打造的,用于创建高性能、跨平台的移动应用的框架, RN 也是使用率较高的跨平台移动应用开发框架. flutter的介绍当中并未介绍实际开发案例, 而选择使用RN技术的项目组则是考虑到由于flu...

cjFrontEnd的博客 2097

Flutter / RN / iOS 的 UI 渲染机制,本质差异在哪里?

如果你同时写过 Flutter、RN 和 iOS 原生,大概率会有一种直觉: Flutter 滚动是真的稳 RN 页面一复杂就开始抖 iOS 原生性能最好,但人力成本也是真的高 问题是—— 为什么会这样?

记录从移动端、鸿蒙到物联网与AI的完整实战与思考。专注于分享可复用的工程方案与产品思维,尤其深入鸿蒙生态与全栈开发。以十年工程与管理沉淀,为你提供清晰的技术纵深路径。坚信技术的价值在于“贯通”与“落地”。 1万+
上一篇: Android 调用相机拍照,适配到Android 10?
下一篇: 字节跳动选择Flutter的现状与工程实践
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值