字节跳动最终面,面试官抛出一个“Flutter”我居然懵了

由于在业务开发过程中,开发者大部分的时间都专研于一种编程语言,如果想要掌握多端开发能力,则又稍显力不从心,因此大前端的概念应运而生。

大前端概念对于编程开发者来说早已耳熟能详,从我的角度来理解这个概念的话,主要是通过同一套编程代码,经过框架编译转化能够适应于多端平台的前端交互界面。

当然这里只介绍目前应用较广的三个方面,即 iOS、Andorid 和 Web H5,之后可以再延伸到小程序、TV、Watch 等其他智能设备,如下图所示。

多端平台的前端交互界面

**大前端的核心是为了解决多端不一致和人力的问题。**比如在一些交互复杂度不高的应用中,通过这种模式可以更好地节省人力成本,特别是在一些前期快速发展的创业公司,可以使用较少的人力来支撑一些核心业务功能。

跨端技术的发展

=====================================================================

移动端跨平台技术经过了一个漫长的发展史,如下图所示。下面主要介绍下在这个发展过程中跨平台技术有了哪些进步或者做了哪些优化。

跨端技术的发展过程

Ionic/Cordova(Hybrid)

在技术原理上的核心是,将原生的一些能力通过 JSBridge 封装给 Web 来调用,扩充了 Web 应用能力。但是这种方法有两个不足,一是依赖客户端,二是在性能和体验上都非常依赖于 Web 端。因此,整体上的体验不可预知。目前这个技术还经常被应用到,例如,当前 App 内会提供白名单域名和可调用的 JSBridge 方法,由此来增强 H5 与客户端交互能力,从而提升 App 内 H5 的灵活性。

React Native/Weex

在原来的 Hybrid 的 JSBridge 基础上进行改进,将 JavaScript 的界面以及交互转化为 Native 的控件,从而在体验上和原生界面基本一致。但因为是 JIT 模式,因此需要频繁地在 JavaScript 与 Native 之间进行通信,从而会有一定的性能损耗影响,导致体验上与原生会有一些差异。

Flutter

取长补短,结合了之前的一些优点,解决了与 Native 之间通信的问题,同时也有了自渲染模式(框架自身实现了一套 UI 基础框架,与原来的渲染模式基本一致)。从而在体验和性能上相对之前的两种框架表现都较好。

经过上面的技术原理和优缺点对比,Flutter 在各方面都表现出了突出的优势,因此, Flutter 成为入门大前端的核心框架。

为何选择 Flutter 作为大前端核心框架

========================================================================================

大前端这个概念从开始到现在已经有整整 10 年时间,那为什么到现在还没有一统江湖呢?因为多端或者智能设备的发展终究不会停止,也很难做到统一标准。那为什么我们还要选择 Flutter 来作为大前端核心框架呢?

事实上 Flutter 的确能够为我们解决一些场景问题,节省人力成本,同时不影响用户体验。

选择 Flutter 并不是为了代替 iOS 或者 Android,而是做一个技术互补,比如,Flutter 负责业务功能,而 iOS 和 Android 则负责部分的底层交互提供服务给到 Flutter 应用。Flutter 也是在这两年刚刚兴起的,在应用起步初期还需要部分底层的服务与原生平台进行交互。

相信再经过一段时间的发展,**Flutter 在这方面会不断地优化和提升,也将能够独立覆盖到更多复杂的业务场景。**因此希望你能够明白大前端的概念,以及 Flutter 对进击大前端的重要性。

下面我对目前的技术团队和未来技术团队进行一个简单分析,也可以认为是一个预测。如果你觉得有帮助,那么可以往这方面进行一些尝试,如下图所示:

大部分开发者会集中在跨端技术团队中;而另一部分核心技术攻坚则在相应的平台技术端(比如 Android 基础技术团队、iOS 基础技术团队或 Web 基础技术团队),为跨端技术团队提供基础技术服务支撑。当然如果跨端技术团队将组件完善并且可通用化,那么跨端技术团队的人员则可以更快地配置组装的方式构建业务功能。

技术团队选型

看完文章大家也大致了解Flutter是进入大厂必备的技术能力,也是考核一个程序员处在一个什么阶段的重要标准,通过下面的实时资​
料,可以清晰地看到,字节跳动,微博,快手等等都是需要具备Flutter能力的工程师。而且他们的工资也普遍偏高。

最后相信你对大前端的概念和发展以及未来的前景已经有了一定的认识,如果你要为大前端的方向上做一定的技术积累和沉淀,我建议从现在开始学Flutter。

最后

小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取
Z-1719101619902)]一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

资料⬅专栏获取

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

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

相关文章

国企:2024年6月中国移动相关招聘信息 二

在线营销服务中心-中国移动通信有限公司在线营销服务中心 硬件工程师 工作地点:河南省-郑州市 发布时间 :2024-06-18 截至时间: 2024-06-30 学历要求:本科及以上 招聘人数:1人 工作经验:3年 岗位描述 1.负责公司拾音器等音视频智能硬件产品全过程管理,包括但…

HTML静态网页成品作业(HTML+CSS)——动漫猪猪侠网页(4个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有4个页面。 二、作品演示 三、代…

黑马HarmonyOS-NEXT星河版实战

"黑马HarmonyOS-NEXT星河版实战"课程旨在帮助学员深入了解HarmonyOS-NEXT星河版操作系统的开发和实际应用。学员将学习操作系统原理、应用开发技巧和界面设计,通过实战项目提升技能。课程注重实践与理论相结合,为学员提供全面的HarmonyOS开发经…

Pytho字符串的定义与操作

一、字符串的定义 Python 字符串是字符的序列,用于存储文本数据。字符串可以包括字母、数字、符号和空格。在 Python 中,字符串是不可变的,这意味着一旦创建了一个字符串,就不能更改其中的字符。但是,你可以创建新的字…

【广度优先搜索 深度优先搜索 图论】854. 相似度为 K 的字符串

本文涉及知识点 广度优先搜索 深度优先搜索 图论 图论知识汇总 深度优先搜索汇总 CBFS算法 LeetCode 854. 相似度为 K 的字符串 对于某些非负整数 k ,如果交换 s1 中两个字母的位置恰好 k 次,能够使结果字符串等于 s2 ,则认为字符串 s1 和…

软件工程考试题备考

文章目录 前言一、二、1.2 总结 前言 一、 B D C 类图、对象图、包图 其他系统及用户 功能需求 用例 人、硬件或其他系统可以扮演的角色7. D C 数据 原型/系统原型;瀑布 A 功能;功能需求 D 数据存储;圆形/圆角矩形;矩形 C T;T;F C C B C D C …

字节跳动+京东+360+网易+腾讯,那些年我们一起踩过算法与数据结构的坑!(1)

**二面:**已知一棵树的由根至叶子结点按层次输入的结点序列及每个结点的度(每层中自 左到右输入),试写出构造此树的孩子-兄弟链表的算法。 **三面主管面:**已知一棵二叉树的前序序列和中序序列分别存于两个一维数组中&…

Part 8.2 最短路问题

很多题目都可以转化为最短路的模型。因此&#xff0c;掌握最短路算法非常重要。 >最短路模板< 【模板】全源最短路&#xff08;Johnson&#xff09; 题目描述 给定一个包含 n n n 个结点和 m m m 条带权边的有向图&#xff0c;求所有点对间的最短路径长度&#xff…

Java学习 - 网络IP协议簇 讲解

IP协议 IP协议全称 Internet Protocol互联网互连协议 IP协议作用 实现数据在网络节点上互相传输 IP协议特点 不面向连接不保证可靠 IP协议数据报结构 组成说明版本目前有IPv4和IPv6两种版本首部长度单位4字节&#xff0c;所以首部长度最大为 15 * 4 60字节区分服务不同…

【STM32-启动文件 startup_stm32f103xe.s】

STM32-启动文件 startup_stm32f103xe.s ■ STM32-启动文件■ STM32-启动文件主要做了以下工作&#xff1a;■ STM32-启动文件指令■ STM32-启动文件代码详解■ 栈空间的开辟■ 栈空间大小 Stack_Size■ .map 文件的详细介绍■ 打开map文件 ■ 堆空间■ PRESERVE8 和 THUMB 指令…

前端实现对本地文件的IO操作

前言 在网页中&#xff0c;前端已经可以读取本地文件系统&#xff0c;对本地的文件进行IO读写&#xff0c;甚至可以制作一个简单的VScode编辑器。这篇文章以渐进式方式实现此功能&#xff0c;文末附上所有代码。 首先看整体功能演示 功能概述 我们将实现一个简单的 Web 应…

LabVIEW在脑机接口(BCI)研究中的应用

脑机接口&#xff08;Brain-Computer Interface&#xff0c;BCI&#xff09;技术通过解读大脑活动&#xff0c;将人类思维与计算机或其他设备连接起来&#xff0c;广泛应用于神经康复、认知研究和人机交互等领域。LabVIEW作为强大的图形化编程环境&#xff0c;在BCI研究中发挥着…

数据结构十三:2 - 3树和红黑树

一开始就接触这五点&#xff0c;会让人云里雾里&#xff0c;不利于了解这个数据结构。因为这种先给定义在推导的方式并不适合学习。它没有介绍红黑树的来源&#xff0c;而只是给你生硬的定义。 而学习红黑树的最好学习资料就是大名鼎鼎的《算法4》&#xff0c;如下&#xff1a…

【Android源码解析】一篇搞定“路由、网络层、UI层、通信层

资料获取 扫一扫下方二维码即可免费领取1880页的《Android百大框架源码解析》 《Android 百大框架源码解析》 1.Retrofit 2.0源码解析 2.Okhttp3源码解析 3.ButterKnife源码解析 4.MPAndroidChart 源码解析 5.Glide源码解析 6.Leakcanary 源码解析 7.Universal-lmage-Loa…

【必看】每个开发人员都应该知道的 10 个 GitHub 库

GitHub&#x1f31f;&#xff1a;155K 被难题困住了&#xff1f;还是需要一些建议来指导你进入开发者行业&#xff1f;这个 仓库 将为你提供帮助。它拥有想要成为前端、后端或 DevOps 工程师需要的所有技术。你可以选择符合需求的或适合自己的&#xff0c;因为它提供了多种多…

数据结构历年考研真题对应知识点(栈)

目录 3.1栈 3.1.1栈的基本概念 【栈的特点&#xff08;2017&#xff09;】 【入栈序列和出栈序列之间的关系(2022)】 【特定条件下的出栈序列分析(2010、2011、2013、2018、2020)】 3.1.2栈的顺序存储结构 【出/入栈操作的模拟(2009)】 3.1栈 3.1.1栈的基本概念 【栈…

YOLOv10目标检测算法的使用

目录 一、环境安装 1、创建虚拟环境 2、安装依赖 二、数据集准备 1、预训练权重 2、数据划分 3、建立数据集的yaml文件 三、训练 1、终端运行指令 2、建立一个 python 文件运行 四、验证 1、终端运行指令 2、建立一个 python 文件运行 五、模型推理 1、单张图片推…

Android开发实用必备的几款插件,提高你的开发速度

1.GsonFormat 使用方法&#xff1a;快捷键AltS也可以使用AltInsert选择GsonFormat&#xff0c;作用&#xff1a;速将json字符串转换成一个Java Bean&#xff0c;免去我们根据json字符串手写对应Java Bean的过程。 2.ButterKnife Zelezny 又叫黄油刀 使用方法&#xff1a;CtrlS…

【Nodejs 日志库 】

总结了几个比较好用的Nodejs日志库&#xff0c;我认为一个 合格的日志库 需要 支持多种传输&#xff0c;如文件、控制台、HTTP 等。可定制的日志级别和格式。异步日志记录。 根据上述的需求&#xff0c;挑选出 几款比较好用的日志库&#xff0c; 1. Winston&#xff08;Gith…

直流电机三级串电阻启动

直流电动机在工农业生产中拥有广泛的应用&#xff0c;这主要得益于其调速范围广、调速平稳、过载能力强以及启动和制动转矩大的优点。为了降低起动电流和起动转矩&#xff0c;研究者们探索了直流电动机串电阻起动方法。这种方法通过在直流电动机电枢绕组中串入电阻&#xff0c;…