现在国内使用Flutter来开发的多吗?
之前回答过类似的问题,是关于《flutter目前实际应用的多吗。有多少公司在用flutter?
》,大同小异都是关于App发展方向和Flutter的未来的,这里来回答你这个问题。
看到前面的小伙伴详细介绍了Flutter,楼主对Flutter肯定也有所了解,这里我就不多介绍了。
手机app应用开发走过了几个年头,APP开发市场从最初的野蛮生长逐渐到了一定的稳定期,有人说App开发红利期已过,不如说到了逐渐成熟的阶段。
手机应用开发会有什么样的发展趋势。
1、用户群体变化
用户是一个手机应用的体验者,对app具有审判的权利。为此,在说手机软件开发发展趋势时不能忽视用户群体的分析。未来的移动端用户会越来越分散,从一线城市向二三线乃至是更偏远的的地方扩散。这得益于通讯网络和智能手机的逐渐普及。同时,未来不同年龄阶层的用户将会增多,对手机app自然会有更多的需求。为此,企业可以适当将目标用户的范围放宽。
2、细分领域的app数量增加
APP开发市场经过了几年的发展,多个领域逐渐出现饱和的现象。为此,后来者纷纷开拓细分市场,细分领域的app数量将会增加。小而美的手机app应用也渐渐得到人们的认可,无论是下载量还是用户活跃度并不比那些大而全的产品低多少。可以看出,手机应用开发市场的未来竞争之地将会是细分领域。
3、开发者呈年轻化
如今,90后已经成为生产和消费的主力军。无论是创业还是工作,90后已经成为主流的人群。几年后,那些95/00后自然也会是崛起。移动互联网呈现年轻化是必要的发展趋势。开开发者和app的使用者都会往年轻化的方向发展。为此,企业需要放眼未来,融入更多年轻人喜爱的元素,在迎合他们口味的同时不失产品的独特风格和魅力。现在基本是人手一部智能手机,APP软件对大家来说已不再是什么陌生的名词了。在街头我们处处都可找到APP的影子,社交、购物、导航、摄影等等,可以说APP已经完全融入到我们的生活当中了。
然后谈谈Flutter,Flutter 其实就是一套谷歌开源的跨平台 UI 开发框架,支持 Android 和 iOS ,并且目前开始支持 Web 和 MacOS,未来还会继续支持 Win和 Linux 平台的一套 UI 框架。
和以前的跨平台开发不同的是:它的性能更好,更接近原生并且跨平台体验更优秀,因为它的跨平台实现机制更像是游戏引擎,所以在积累到 2019 年后迅猛上位,到今天 flutter 在 github 的 star 已经超过了前辈 react-native,当然, issue 也超越了 react-native。
关于 Flutter “干掉原生开发的问题”
这个问题其实追溯到 react-native 、weex 等跨平台框架出现的时候,都会有原生开发“要凉”的口号盛行,但是事实上 react-native 、weex 和 flutter 都只是 UI 框架,它解决的其实是跨平台上的 UI 实现,让界面布局或者实现的业务逻辑可以在多端统一。
但是它也仅仅只是 UI 框架,比如 react-native 本身就是依赖于原生控件,而 flutter 的 webview 、mapview 也都需要依赖原生开发来支撑。
接着说除了 UI 框架之外,比如蓝牙、数据存储、传感器、应用之间的通信交互、多进程等等一大堆支持其实都属于原生平台,这些在 flutter 上都需要对应平台的开发支持,之后再封装到 flutter 插件中。
有的人可能觉得这些都有官方和第三方提供,但是首先 flutter 的插件社区如今还比较年轻,当然项目小的时候可能无所谓,但是只要项目稍微比较大的,这些肯定远远不够,官方提供的永远赶不上 PM 或者 Boss 们的奇思妙想。
再说就flutter 的 issue ,天见尤怜,加上 pr 还有 8000+ 的 issue 没有 Closed ,心疼 flutter 官方一秒钟。跨平台框架的问题一直都不可能少,因为涉及的平台多了,问题自然也就多了,而很多问题其实都是和原有的平台有关,没有对应平台的开发人员很多时候是搞不清问题所在。
混合开发也是一个考虑的因素,因为很多企业并不是从零开始,一般都是在原有项目的基础上做混合开发,对某些业务进行改造成 flutter 来尝试新技术;同时大厂也不会把鸡蛋放在一个笼子里,所以很多时候对于大厂而言更多会是混合开发的模式。
最后就是打包和分发,“打包失败和审核不过”是最常出现问题的阶段,特别是 iOS 平台的打包和审核,这些往往也都需要有对应平台经验的人来处理。
所以 flutter 的定位,甚至跨平台开发的定位,都不是干掉原生,而是在原生开发上拓展技能和能力。能干掉平台的只有平台!
关于 Flutter 真正的定位
最后聊聊 flutter 的定位,flutter 作为跨平台 UI 框架,很众多跨平台框架一样,它是和原生相辅相成的存在,我在做技术分享和文章中不止一次表达过这个观点,跨平台解决的问题是:
1、开发成本
直接学 java/ kotlin、objective–c/swift 、javascript去写各平台的代码可以吗?
当然可以,这样的性能肯定最有保证,但是跨平台的主要优势在于代码逻辑的复用,减少各平台同一逻辑,因人而异的开发成本。对于企业而言,一套业务逻辑可以在多处使用是最理想也是最保险的。
2、学习机会
一般情况下,各平台开发者容易局限在自己的领域开发,而作为应用开发者,跨平台是接触另一平台或领域的过渡机会。
3、团队结构
一般而言做跨平台的团队还是会有 Android 和 iOS 的原生开发,甚至于在大中型项目中人数都不会变少,但是用跨平台会让所有人都参与都一个开发进度中,而不是 iOS 和 Android 各做各的,最后再扯谁的实现有问题。
目前国内使用 Flutter 进行开发的技术团队有一下几个:
闲鱼技术NOW终端技术团队其他的技术团队目前我就不知道了。
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有