但是它也仅仅只是 UI 框架,比如 react-native 本身就是依赖于原生控件,而 flutter 的 webview 、mapview 也都需要依赖原生开发来支撑。

接着说除了 UI 框架之外,比如蓝牙、数据存储、传感器、应用之间的通信交互、多进程等等一大堆支持其实都属于原生平台,这些在 flutter 上都需要对应平台的开发支持,之后再封装到 flutter 插件中。

有的人可能觉得这些都有官方和第三方提供,但是首先 flutter 的插件社区如今还比较年轻,当然项目小的时候可能无所谓,但是只要项目稍微比较大的,这些肯定远远不够,官方提供的永远赶不上 PM 或者 Boss 们的奇思妙想

如果按照截图上所说,他一个人能做 iOS、Android 和 Flutter 所有的工作,能做编程界的“叶问”,那我无话可说。。。

再说就flutter 的 issue ,天见尤怜,加上 pr 还有 8000+ 的 issue 没有 Closed ,心疼 flutter 官方一秒钟。跨平台框架的问题一直都不可能少,因为涉及的平台多了,问题自然也就多了,而很多问题其实都是和原有的平台有关,没有对应平台的开发人员很多时候是搞不清问题所在。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

混合开发也是一个考虑的因素,因为很多企业并不是从零开始,一般都是在原有项目的基础上做混合开发,对某些业务进行改造成 flutter 来尝试新技术;同时大厂也不会把鸡蛋放在一个笼子里,所以很多时候对于大厂而言更多会是混合开发的模式。

最后就是打包和分发,“打包失败和审核不过”是最常出现问题的阶段,特别是 iOS 平台的打包和审核,这些往往也都需要有对应平台经验的人来处理。

所以 flutter 的定位,甚至跨平台开发的定位,都不是干掉原生,而是在原生开发上拓展技能和能力。能干掉平台的只有平台!

关于 Flutter 真正的定位

最后聊聊 flutter 的定位,flutter 作为跨平台 UI 框架,很众多跨平台框架一样,它是和原生相辅相成的存在,我在做技术分享和文章中不止一次表达过这个观点,跨平台解决的问题是:

1、开发成本

直接学 Java/KotlinObject-C/SwiftJavaScript/CSS 去写各平台的代码可以吗?

当然可以,这样的性能肯定最有保证,但是跨平台的主要优势在于代码逻辑的复用,减少各平台同一逻辑,因人而异的开发成本。对于企业而言,一套业务逻辑可以在多处使用是最理想也是最保险的。

2、学习机会

一般情况下,各平台开发者容易局限在自己的领域开发,而作为应用开发者,跨平台是接触另一平台或领域的过渡机会。
3、团队结构
一般而言做跨平台的团队还是会有 Android 和 iOS 的原生开发,甚至于在大中型项目中人数都不会变少,但是用跨平台会让所有人都参与都一个开发进度中,而不是 iOS 和 Android 各做各的,最后再扯谁的实现有问题。

每次出现新的技术框架都有猛吹的,也有抗拒的,希望大家都能保持客观的态度面对改变~
资源推荐


开源 Flutter 完整项目:github.com/CarGuo/GSYG…
开源 Flutter 多案例学习型项目: github.com/CarGuo/GSYF…
开源 Fluttre 实战电子书项目:github.com/CarGuo/GSYF…
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

文末

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从那里入手去学习,对此我整理了一些资料,需要的可以免费分享给大家

这里笔者分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

【视频教程】

天道酬勤,只要你想,大厂offer并不是遥不可及!希望本篇文章能为你带来帮助,如果有问题,请在评论区留言。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
目实战源码》点击传送门,即可获取!**

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐