简聊关于Flutter的争议~

news2024/10/6 16:20:55

关于Flutter的争议

Flutter是谷歌的推出的跨平台UI框架,可以快速在iOS和Android上构建高质量的原生用户界面,可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。这是谷歌的原话。就在近期 Flutter 2.5发布了,可以看官方对出Flutter 输出一直很稳定,社区也非常活跃。不过 Flutter 的相关的争议一直没有停止过,有人觉得 Flutter 可以算是当今跨平台的最佳方案,也有人觉得 Flutter 的实际表现低于预期,甚至流传出有大厂正在放弃 Flutter 这样的话。不过Flutter作为 Google 的亲儿子,其官方的扶持力度大家都有目共睹。

一些优势:

  • 比 Android 原生上更高效地构建漂亮的自定义 UI
  • 跨平台能力,一套代码可以在多端运行,例如:Android、iOS、Web等
  • Flutter 的高性能和UI 上表现的一致性
  • 开发效率高
  • 提供了许多开箱即用的强大功能

一些弊端:

  • 虽说跨平台,但部分能力依然依赖原生代码

  • 混合开发模式的效率问题,始终是个痛点

  • Dart 带来的学习成本较高

  • 三方库不健全

  • 一切皆 Widget 带来的混乱

当然这些问题都不是致命的,随着国内外大厂不断探索和在自家App 中逻辑、以及大量开发者的不断建设三方库,Flutter这门技术也逐渐进入了咱移动开发者的视野。2021年了,还有没上手 Flutter 的移动开发吗?

为什么需要学习 Flutter?

首先跨端几乎是每个移动端同学都无法跨越的一项技术,在当下可选的跨端技术并不多。

如果还要考虑社区活跃和官方更新频繁,那么选择就更少了,随着 Flutter 的更新与发展,基本成为了一个主流的跨端框架。

此外,从个人的发展上来说,Flutter 可以放大你的业务开发能力,让你参与到更多的平台开发中,不管是大前端还是KP。

一些大厂已经使用

  • 闲鱼团队:针对flutter一整套的项目构建,混合开发的实践规范

  • 微信团队:针对小程序跨平台的特性,跨平台构建参考flutter UI渲染,并且在底层平台交互方面可 能摒弃platform channel,实现自己的dart2cpp方案。

  • 美团团队:针对flutter的动态化缺陷的特点,构建自己的flutter应用的动态化方案

跨平台是趋势

从 Android 开发者角度来说,未来想跳出 Android 从更大的范围内去发展,跨端可以说是一个非常好的选择,大家应该也熟知「大前端」这个工作岗位。理论上来说,掌握了跨端能力,也是向大前端负责人迈出第一步。

从企业的用人成本来说,如今技术层出不穷,各个方向都需要储备人才,但是Flutter可以非常快速的帮助我们低成本的构建一些应用用于多端,便于企业的快速试错。

新技术层出不穷,作为开发者,一入此门中,从此不是在学习中,就是去学习的路上。

面试加分项

Flutter现在已经成为越来越多的面试官用来考察一名工程师技术广度及对新技术敏感度的重要依据,Flutter作为目前最火热的混合开发框架之一,受到越来越多开发者追捧。在面试中也成为了加分项,掌握Flutter开发经验优先录取,例如下面滴滴的一则招聘信息:

通过上图可以看出,很多大厂在高薪招聘这方面的人才,Flutter 确实可以为我们找工作带来一定的帮助。Flutter 可以帮助到我们的职业发展。从根本来说技术的本质是相通的,当我们在学习Flutter时,也能把Flutter和我们已经掌握的技术进行联通、打通,我们可以通过 Flutter 放大自身业务开发能力,参与到更多的平台开发中。有一个说法是:对于 Android 原生开发来说,学会 Flutter 等于学会了 70% 以上的 Jetpack Compose 。

Android开发者如何高效上手Flutter开发?

首先你得有一个全面合理的Flutter学习路线,这对自己的需求划分轻重,然后进行有规划的学习。如果大家一时不知道从哪开始整理知识点话,不妨可以参考下方我的一个Flutter学习路线图学习。

随着移动终端的多样性发展,一套代码适配多个平台已经成为移动开发者的终极梦想,跨平台技术也一直在发展中。

目前为止,我们移动端的跨平台开发技术经历了三个阶段,这三个阶段的代表框架分别是:Cordova、React Native 、Flutter 。

其中,Cordova虽然实用方便,但是受制于 WebView 的性能瓶颈。

React Native 利用 JS 引擎实现了跨平台能力,将 JS 控件,对应解析为平台原生控件进行渲染,虽然极大程度上实现了性能的优化与提升,但也同样存在性能等限制。

而Flutter 另辟蹊径,只要求平台提供一个 Surface 和一个 Canvas就可以了。

在跨平台技术追求的 性能、复用、高效 这三个终极目标上,Flutter占据了至高点。

而且,Flutter在大厂的面试过程中不仅经常被作为加分项,在某些岗位甚至是必问的内容,非常有必要深入了解。

我在针对这份Flutter 学习路线学习的时候,整理收集了一些 Flutter、Android开发相关学习文档,大家如果不嫌弃可以拿去参考学习,希望能帮助到大家更轻松的学习Flutter知识点。

Flutter从入门到进阶实战技术手册:https://qr18.cn/DIvKma

第一章 为什么Flutter是跨平台开发的终极之选

1.这是为什么?
2.跨平台开发
3.什么是 Flutter
4.Flutter 的特性
5.Flutter 构建应用的工具
6.使用 Flutter 构建的热门应用
7.构建 Flutter 应用的成本
8.结论

第二章:在Windows上搭建Flutter开发环境

1.使用镜像
2.系统要求
3.获取Flutter SDK
4.编辑器设置
5.平台设置
6.iOS 设置
7.Android设置
8.起步: 配置编辑器
9.起步: 体验

第三章:编写您的第一个 Flutter App

1.第1步: 创建 Flutter app
2.第2步: 使用外部包(package)
3.第3步: 添加一个 有状态的部件(Stateful widget)
4.第4步: 创建一个无限滚动ListView
5.第5步: 添加交互
6.第6步: 导航到新页面
7.第7步:使用主题更改UI

第四章:Flutter开发环境搭建和调试:https://qr18.cn/DIvKma

  • 开发环境的搭建
  • 下载Flutter SDK
  • 配置环境变量
  • 安装Visual Studio Code所需插件
  • 创建Flutter项目
  • 模拟器的安装与调试

第五章:Dart语法篇之基础语法(一)
第六章:Dart语法篇之集合的使用与源码解析(二)
第七章:Dart语法篇之集合操作符函数与源码分析(三)
第八章:Dart语法篇之函数的使用(四)
第九章:Dart语法篇之面向对象基础(五)
第十章:Dart语法篇之面向对象继承和Mixins(六)
第十一章:Dart语法篇之类型系统与泛型(七)

第十二章:Flutter之UI:https://qr18.cn/DIvKma
(一)基础组件篇
(二) ListView详解与应用
(三) GridView详解与应用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/663995.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习课程报告——基于机器学习的自动人脸识别研究

摘 要 生物特征识别技术使用了人体本身所固有的生物特征,与传统的身份识别方法完全不同,具有更高的安全性、可靠性、和有效性,越来越受到人们的重视。人脸识别技术作为生物特征识别技术的重要组成部分,在近三十年里得到了广泛的关…

论文阅读:Dense Depth Priors for Neural Radiance Fields from Sparse Input Views

CVPR2022 Preliminary 首先我们由一组室内的RGB图像 { I i } i 0 N − 1 , I i ∈ [ 0 , 1 ] H W 3 \{I_i\}^{N-1}_{i0}, I_i \in [0,1]^{H \times W \times 3} {Ii​}i0N−1​,Ii​∈[0,1]HW3。通过SFM的方法,我们可以获得相机位姿 p i ∈ R 6 p_i \in \mathb…

QR点歌系统

一、点歌初始化 点歌初始化 A:$获取群列表$ a:0 b:$JSON 长度 A$ :标签 如果:%a%<%b% c:$JSON 获取 A %a%$ $写 点歌系统/音源 %c% Q音$ $写 点歌系统/格式 %c% json$ ‖ %a% ‖ %c% ‖ 初始化成功\n a:[%a%1] $jump :标签$ 如果尾这段代码是点歌系统的初始化过程。它通过…

7.pixi.js编写的塔防游戏(类似保卫萝卜)-plist的使用

游戏说明 一个用pixi.js编写的h5塔防游戏&#xff0c;可以用electron打包为exe&#xff0c;支持移动端&#xff0c;也可以用webview控件打包为app在移动端使用 环境说明 cnpm6.2.0 npm6.14.13 node12.22.7 npminstall3.28.0 yarn1.22.10 npm config list electron_mirr…

NUCLEO-F411RE RT-Thread 体验 (2) - GCC环境 Pin 驱动的移植

NUCLEO-F411RE RT-Thread 体验 (2) - GCC环境 Pin 驱动的移植 1、准备工作 前面控制LED的函数&#xff0c;其实还是调用的hal的函数&#xff0c;RT-Thread分离了驱动层与应用层&#xff0c;驱动层往下对接hal库&#xff0c;往上对接pin组件。 驱动层代码路径如图&#xff1a;…

零基础速成simulink代码生成——stateflow基础3

零基础速成simulink代码生成——stateflow基础3 Stateflow 可以用于嵌入式系统的建模、仿真和代码生成。在嵌入式系统中,Stateflow 可以用于实现控制逻辑、状态机、事件驱动系统等功能。Stateflow 提供了一种图形化的建模语言,可以用于描述状态、转换、事件、动作等元素,并…

新用户注册

业务实现 &#xff08;一&#xff09; 字段校验 检验用户名、密码、手机号、验证码如果校验不通过则刷新页面&#xff0c;并显示字段校验失败信息 &#xff08;二&#xff09; 校验验证码 点击发送验证码&#xff0c;验证会保存一份到redis&#xff0c;并且会发送至手机输入…

【大数据hive】hive 拉链表设计与实现

目录 一、前言 二、拉链表业务背景 2.1 数据同步引发的问题 2.1.1 解决方案1 2.1.2 解决方案2 2.1.3 解决方案3 三、拉链表设计与原理 3.1 功能与应用场景 3.2 实现步骤 3.2.1 Step1 3.2.2 Step2 3.2.3 Step3 3.3 操作演示 3.3.1 创建一张表并加载数据 3.3.2 模…

高级数据分析师工作的基本职责(合集)

高级数据分析师工作的基本职责1 职责&#xff1a; 1. 负责出行平台层面司乘用户分析&#xff0c;给平台相关业务及策略建设输入洞察和方法; 2. 形成天、周和月度的分析报告&#xff0c;传递给公司管理层并进行定期汇报; 3. 可独立完成针对特定问题的分析解读&#xff0c;支持临…

【数据分享】2023年全国范围的1km分辨率高新技术企业数量栅格数据

企业是经济活动的参与主体。一个城市的企业数量决定了这个城市的经济发展水平&#xff01;比如一个城市的金融企业较多&#xff0c;那这个城市的金融产业肯定比较发达&#xff1b;一个城市的制造业企业较多&#xff0c;那这个城市的制造业肯定比较发达。 目前&#xff0c;在城…

插件 - 一份配置,离插件机制只有一步之遥

文章目录 Pre优化方案流程图优点缺点举例论证CodePre 插件 - 通过SPI方式实现插件管理 中我们提到了缺点 无法保证唯一实现:在SPI机制中,同一个服务接口可能会有多个提供者实现,而无法明确指定使用哪一个。依赖于配置文件:配置文件是发现和加载提供者的关键,如果配置文件…

Java泛型中的T、E、K、V、?通配符,你确定都了解吗?

目录 前言 泛型带来的好处 泛型中通配符 小结 前言 Java 泛型&#xff08;generics&#xff09;是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制&#xff0c;该机制允许开发者在编译时检测到非法的类型。 泛型的本质是参数化类型&#xff0c;也就是说所操…

7.controller部署neutron服务

Neutron 为整个 openstack 提供虚拟化的网络支持&#xff0c;主要功能包括二层交换、三层路由、防火墙、VPN &#xff0c;以及负载均衡等。 neutron数据库配置 controller节点 在安装和配置 neutron 服务之前&#xff0c;必须创建服务对应的数据库用于存储相关数据 &#xff0…

多模态简介

1. 多模态定义 多模式深度学习是一个机器学习子领域&#xff0c;旨在训练人工智能模型来处理和发现不同类型数据&#xff08;模式&#xff09;之间的关系——通常是图像、视频、音频和文本。通过结合不同的模态&#xff0c;深度学习模型可以更普遍地理解其环境&#xff0c;因为…

【C++】I/O流类库

I/O 数据的输入和输出&#xff08;input/output简写为I/O&#xff09;&#xff0c;对标准输入设备和标准输出设备的输入输出简称为标准I/O。对在外存磁盘上的文件输入输出简称为文件I/O。对内存中指定的字符串存储空间的输入输出简称为串I/O。 流 数据输入输出的过程&#x…

边缘智能:边缘计算和人工智能的深度融合

摘要 随着通信技术的飞速发展和移动设备使用的激增&#xff0c;一种全新的计算范式——边缘计算正在迅速普及。与此同时&#xff0c;随着深度学习的突破和硬件架构的许多改进&#xff0c;人工智能(AI)应用正在蓬勃发展。在网络边缘产生数十亿字节的数据&#xff0c;对数据处理…

也聊聊BLDC 电机的 10 大热门应用---【其利天下技术分享】

近年来&#xff0c;随着全球提出的低碳&#xff0c;高能效的概念提出&#xff0c;作为高效动力来源的BLDC技术&#xff0c;越来越受到各界的追捧。 大家都知道&#xff0c;BLDC的发展史也就短短几十年的时间&#xff0c;随着近年来&#xff0c;新磁性材料的运用、微电子技术和…

基于大模型的虚拟数字人__虚拟主播实例

基于大模型的虚拟数字人__虚拟主播实例 本文目录&#xff1a; 一、技术的背景&#xff1a; 二、创意名称&#xff1a; 三、创意背景 四、创意目标 五、创意设计 六、技术实现路径 七、完整代码实现 八、创意总结 九、人工智能虚拟人物的一些优秀代表作品及其特点 十、…

河道水位标尺识别预警 yolov7

河道水位标尺识别预警系统通过pythonyolov7网络模型技术&#xff0c;河道水位标尺识别预警算法对河道水位标尺进行实时监测&#xff0c;当河道水位出现异常情况时&#xff0c;河道水位标尺识别预警算法将自动发出警报提示后台管理人员及时采取措施。YOLO系列算法是一类典型的on…

【工具篇】SpringBoot基于assembly的服务化打包方案

简介 最近项目中&#xff0c;使用插件式开发方式&#xff0c;将多个Web应用打成一个FatJar程序包部署运行。但考虑到原始裸Jar包方式交付&#xff0c;有很多不便之处&#xff0c;比如启动命令过长&#xff08;JVM参数配置、Spring环境配置等&#xff09;、配置无法修改等问题会…