不会Flutter连面试的机会都不给?
最近后台有位小伙伴问了我这个问题,虽然不会Flutter可能不会直接导致面试机会的缺失,但越来越多公司采用Flutter作为移动应用开发的首选,这是因为Flutter具有一些显著的优势。
首先,Flutter是Google开源的UI工具包,能够帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。这使得开发者能够更高效地进行跨平台开发,减少重复工作,同时保证应用在不同平台上的体验一致性。
其次,Flutter自带渲染引擎,实现了全套的图形SDK,从架构上就拥有和原生同级别性能的能力。这使得开发者能够开发出性能与原生应用相媲美的跨平台应用,而无需在原生开发中调用不同平台的绘制引擎进行图形的绘制和渲染。
此外,Flutter的学习成本相对较低。与传统的跨平台开发框架相比,Flutter不需要花费大量时间学习不同平台的类库和API,也不需要在不同平台之间进行转换。这使得开发者能够更快地上手Flutter并进行开发。
最后,越来越多的公司采用Flutter作为移动应用开发的首选,也反映了Flutter在市场上的普及度和接受度越来越高。例如,国内外的许多知名公司,如阿里、腾讯、美团等都在使用Flutter进行移动应用开发。
综上所述,Flutter具有跨平台开发、高性能、低学习成本等优势,越来越多公司采用Flutter作为移动应用开发的首选也就不足为奇了。
我之前待的团队使用Flutter已经5年了,这里说一下我们选择Flutter的原因
拥有热更新的Flutter,开发效率比原生更高
先来看一下原生开发的体验
以Android为例,假如修改了页面上一个按钮的位置,需要经过三个步骤才能看到修改的结果
1、重新编译运行工程(项目3分钟)
2、编译好的包覆盖安装到手机(看手机,垃圾测试机20秒)
3、按照原有流程进入指定页面(取决于页面深度,碰到需要填一个表单才能进入的页面,程序员想砸键盘)
影响效率的,不仅仅是这个过程中的时间开销,还有原本连贯的思维过程被频繁打断后带来的开发人员效率下降。
再来看看Flutter上的开发体验
修改按钮位置后,点击热更新按钮,页面是在秒级更新的
这种顺滑的开发体验,哪怕在单端的项目中也更喜欢采用Flutter进行开发。
4、Flutter可以极大的提升单元测试的效率
有人说,用TDD的时间足够长的人都宣称没有其他开发软件的方法。是这样吗?
这个其实不然,我身边不少写代码超过10年了,从第4年左右开始接触TDD。刚开始还没什么感觉,坚持用了两个月以后,就觉的所有代码都应该通过TDD完成。TDD会给编码过程带来极大的掌控感和安全感。
但是,在客户端原生开发中,TDD的体验可以说非常不友好。
在TDD中,红灯——绿灯——重构的过程是非常快速的。正常情况一个测试要在15分钟内完成。
实际进行Android开发时,每次执行单元测试就需要把整个工程编译一次,至少要2、3分钟。iOS的情况也差不多。
可以想象,在客户端原生开发中使用TDD是一种多么让人恼火的体验。
在RN中这种情况更差一点,因为代码被割裂成不同的部分,很多测试甚至很难完成。
Flutter的出现,为客户端开发中使用TDD带来了全新的体验。
Flutter的单元测试速度极快,基本上启动测试后十几秒就开始执行测试文件。
Flutter的单元测试框架,可以在只加载极少依赖项的情况下快速执行目标代码。这就让开发者能真正完成TDD要求的小步快跑。
总结一下,Flutter生长于原生开发多年经验和教训之上,它无法代替原生开发,却代表着客户端开发的未来。
如果看到这里的同学有学习Flutter的兴趣,这里分享一份Flutter的学习手册
关注公众号:Android老皮领取
目录
第一章 为什么 Flutter 是跨平台开发 的终极之选
- 01 这是为什么?
- 02 跨平台开发
- 03 什么是 Flutter
- 04 Flutter 的特性
第二章 在 Windows 上搭建 Flutter 开发环境
- 01 使用镜像
- 02 系统要求
- 03 获取 Flutter SDK
- 04 编辑器设置
- 05Android 设置
第三章 编写您的第一个 Flutter App
第四章 Flutter 开发环境搭建和调试
- 1.开发环境的搭建
- 2.模拟器的安装与调试
- 3.开发环境的搭建
- 4.模拟器的安装与调试
第五章 Dart 语法篇之基础语法(一)
一、Hello Dart 二、数据类型 三、变量和常量 四、集合(List、Set、Map) 五、流程控制 六、运算符 七、异常 八、函数
第六章 Dart 语法篇之集合的使用与源码 解析(二)
一、List 二、Set 三、Map 四、Queue 五、LinkedList 六、HashMap 七、Map、HashMap、LinkedHashMap、SplayTreeMap 区别
八、命名构造函数 from 和 of 的区别以及使用建议
第七章 Dart 语法篇之集合操作符函数与 源码分析(三)
- List item