2021-10-28 00:50来源:m.sf1369.com作者:宇宇
未来 App 开发的主流模式,我认为不会是 H5 ,但是会是类 H5 开发那样的跨平台系统。
我认为随着手机性能的提升,不管是跨平台的混合开发,还是原生开发,在体验上来讲,手机性能的提高,已经把混合开发与原生开发的体验差距缩小到人们不在乎的程度了。
其实,不管是微信还是支付宝,淘宝这样的大型超级 App ,他们本身就不仅仅是原生的问题,其实他们更多都是混合开发的 App ,尤其是淘宝和支付宝这样的 App ,大家也没有感觉到什么吧?
目前,也就是这一年多超级火热的开发方式就是 Flutter 。2018 年 12 月 5 日,谷歌公开发布 Flutter 1.0 版本, Flutter 正式成为全平台框架,支持手机、Web、桌面电脑和嵌入式设备,“一套代码、多端运行”。到目前,来讲 Flutter 发展的还算顺利,身边好多开发 App 的同事都在开始用 Flutter 了。
我为什么看好 Flutter?Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作。在全世界,Flutter 正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。
它也是构建未来的 Google Fuchsia 应用的主要方式。
框架特性可以说是:
1、快速开发
Flutter 的热重载帮助你快捷方便的试验、重构 UI、添加特性和修复 bug。在仿真器、模拟器和 ios、android 硬件上体验亚秒级的重载,而不会丢失状态。
2、绚丽 UI
通过 Flutter 内建的漂亮的质感设计和 Cupertino(ios-flavor)小工具、丰富的动画 api,平滑的自然滚动和平台感知,让用户感到满意。
3、响应式框架
通过 Flutter 的现代响应式 (Reactive) 框架和丰富的平台布局和基础组件轻松构建您的用户界面。用强大而灵活的 apis 解决 2D、动画、手势、效果等难题。
4、访问原生功能
通过平台 api、第三方 sdk 和原生代码使您的应用变得生动起来。Flutter 让您可以重用您现有的 java、swift 和 Objc 代码,并在 iOS 和 Android 上访问原生特性和 SDK。
Flutter 可以说是现在越来越到得重视,也有要火的趋势,但是其官方编程语言为 Dart,也是一门全新的语言。所以说,上手成本比较高,对于移动端开发人员,语言以及框架都是全新的,整个技术栈的积累也都得从头开始。
Flutter 对于移动开发人员,最诱惑的能力是其完全的跨平台特性,不同于 RN 这种一处学到处写,它是一处写到出跑。
另外 Flutter 不同于市面上的其他解决方案,之前我们最常见的无非就是两类,一个就是:使用平台支持的 Web 技术,还一个就是本地跨平台,比如:RN、Weex 等。但是 Flutter 跨平台最核心的部分,是它的高性能渲染引擎(Flutter Engine)。Flutter 不使用浏览器技术,也不使用 Native 的原生控件,它使用自己的渲染引擎来绘制 widget。
对于 Android 平台,Flutter 引擎的 C/C++ 代码是由 NDK 编译,在 iOS 平台,则是由 LLVM 编译,两个平台的 Dart 代码都是 AOT 编译为本地代码,Flutter 应用程序使用本机指令集运行。
Flutter 正是是通过使用相同的渲染器、框架和一组 widget,来同时构建 iOS 和 Android 应用,而无需维护两套独立的代码库。
跨平台开发,最终成败可能还得看苹果脸色我虽然非常看好跨平台开发,非常看好 Flutter ,但是,其实从目前来讲,世界最大得了两个手机端移动操作系统, Android 和 iOS ,Android 我们不用说了,是开源的系统,没有什么x限制,想用什么语言开发就用什么开发,想采取什么模式开发,就可以采取什么模式开发。
一个跨平台最终的成败好像还得看苹果的脸色。比如,之前 RN 非常火,热更新也非常火,苹果说不让你用,你就不能用。苹果是一个封闭的生态系统,有自己的一套游戏规则,你所有的东西,只要想在苹果上使用,就必须遵守它的游戏规则。都必须经过它的严格审核。苹果官方说:不能上架什么语言开发的 App ,那这个语言,可能就不能开发跨平台了,苹果不能用,就不能谈跨平台了,也不能说能够节约成本了,苹果总得你自己开发一套啊!
所以啊,苹果的脸色也很重要。
对此,大家怎么看呢?欢迎大家在回答底下留言,我们一起交流探讨,发现回答的价值。另外,原创回答不易,点个赞支持一下呗。