热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

卷完Go语言,继续卷Flutter

点击上方蓝色“飞雪无情”关注我的公众号,设个星标,第一时间看文章前两天,也就是5.12日,GoogleIO大会上࿰

点击上方蓝色“飞雪无情”关注我的公众号,设个星标,第一时间看文章

前两天,也就是5.12日,Google IO 大会上,正式发布了Flutter 3,同时支持 iOS、Android、Web、Windows、macOS、Linux 六大平台。至此,Flutter 完成了从Android、iOS,到Web 、Windows,再到macOS、Linux 三级跳,占领了六大平台。

——  1  ——

Flutter 是一个Google推出的,用于构建应用程序的工具包。最早主要聚焦于移动平台,支持Android和iOS APP的开发。

为什么会有这么一个东西呢?这和成本、全栈等是分不开的。如果能有一种工具框架开发出来的APP 可以同时运行在Android、iOS两大平台,那么带来不止是UI的统一、升级维护的方便,还有人力成本的降低。

事实上,从鼓吹大前端之前,就有一些一些框架在探索这个方面的可能了。

如果你入行移动互联网编程比较早,应该听说过PhoneGap这个东西,它就可以让你用HTML、JS、CSS 这些Web技术,做出来可以在iOS、Android、黑莓等移动平台上运行的APP。它的好处就在于可以让原来从事Web开发的人员,可以快速开发出来APP,不用再去学OC、Java这些语言。

66e0c5683458de521772aef6239f981b.png

——  2  ——

随着移动互联网的兴起,在探索大前端这条路的不止有国外的PhoneGap,还有国内的uniapp。

uniapp是一个使用Vue.js开发的前端应用框架,它不支持可以开发出Android、iOS、Web这类应用,还支持小程序的开发,并且是各种小程序,比如微信的、头条的、支付宝的、百度的,它都能做,这也是它的优势之一。

当时我们在考虑大前端框架的时候,除了Flutter ,也曾调研过uniapp,最后还是放弃它了。其原因主要是2点:性能没有Flutter高;我们小程序版本属于打酱油的,主要还是Android和iOS为主,Flutter还是更合适我们。

其实,如果你是要做小程序,而且要在多个小程序平台上线,可以考虑使用uniapp,一套代码,可以支持11个小程序平台的发布,还是很不错的。

——  3  ——

其实在桌面端,也有跨平台应用开发的框架,而且更悠久。比如QT,它是C++开发的跨平台GUI程序开发框架,和我们今天的大前端有点距离,这里不做过多介绍,有兴趣的朋友可以Google下。

大前端里还有做的比较早的桌面端跨平台框架,它就是Electron。Electron是GitHub开源的,使用NodeJS作为后端,Chromium 作为前端渲染的桌面GUI程序开发框架。也就是说,你使用 Javascript,HTML 和 CSS 构建跨平台的桌面应用程序,支持macOS、Windows和Linux三大平台,并且不要求本地开发经验,这对Web前端工程师简直是福音。

基于Electron的应用有很多,像我们常用的VS Code,还有前段时间把大疆账户禁了的Figma,都是基于Electron构建的。

——  4  ——

Flutter的崛起,其实也是得益于大前端,本质上是一套代码、到处运行,可以统一开发、动态更新、节省人力资源等。

在国内,有几家大厂对Flutter的支持比较大,他们主要是腾讯、阿里和头条。比如腾讯课堂、阿里的闲鱼使用Flutter比较多。

在大前端趋势下,Flutter能被选中,一个是有个好爸爸Google,第二个是性能好,基于Material Design的统一UI设计也不错,而且和原生平台的集成也比较好。

Flutter渲染性能够好,得益于它是基于Skia图形库,所以性能优越。从原生迁移到大前端这类框架的时候,UI渲染的性能本身就是大家选择的时候非常看中的一项,Flutter恰恰具备了这个优势。APP 界面可以打开,并且打开的速度要快,最好能和原生开发的APP一样流畅,那么这个框架就占了很大的优势。

——  5  ——

最初的Flutter还是主要应用在移动平台上,也就是Android和iOS,随着它的流行,野心也开始膨胀,它开始支持Web和Windows,现在刚发布的Flutter 3又支持了macOS和Linux,移动端和桌面端全包了。

Flutter 3对于六大平台的支持,不止是渲染,还有交互模型、国际化、构建等等,也就是它把底层操作系统的能力封装好了,开发者好好用就行了,把精力放到UI的复用以及业务逻辑的规划上。

对于程序员来说,UI设计一直是个头疼的问题,让我们写代码没问题,但是让我们写一个漂亮界面的系统就有点难度了(如果你有一个设计师女朋友,当我没说)。

现在,这种问题不用再担心了,Flutter 是基于 Material Design设计的,所以我们可以很容易的利用Flutter编写出漂亮的界面。

——  6  ——

选择Flutter,一个比较高的门槛可能还是Dart语言,这是一门新的编程语言,它完全是被Flutter给带火的,至于Google为什么会选择Dart作为Flutter的开发语言,聊起来也不少,可以自行Google下。

现在我们有了Flutter、Electron等这些大前端框架,也有原生的开发方式,至于如何选择,还是要看自己的业务场景。主要问自己三个问题:

  1. 你的应用程序需要跨多平台吗?

  2. 你的应用程序用到的系统能力,Flutter等都可以提供吗?

  3. 节省人力成本,提高开发效率吗?

如果都「YES」的话,那么大前端是你比较好的选择!!!

——  精彩推荐  ——

GitHub 推出基于AI的代码自动补全工具Copilot

446321bdfb497414214bc425790f7e55.png

扫码关注

分享、点赞、在看就是最大的支持


推荐阅读
  • 本文探讨了Flutter和Angular这两个流行框架的主要区别,包括它们的设计理念、适用场景及技术实现。 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 探索PWA H5 Web App优化之路(Service Worker与Lighthouse的应用)
    本文探讨了如何通过Service Worker和Lighthouse工具来优化PWA H5 Web App,旨在提升用户体验,包括提高加载速度、增强离线访问能力等方面。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
  • YB02 防水车载GPS追踪器
    YB02防水车载GPS追踪器由Yuebiz科技有限公司设计生产,适用于车辆防盗、车队管理和实时追踪等多种场合。 ... [详细]
  • Ubuntu GamePack:专为游戏爱好者打造的Linux发行版
    随着Linux系统在游戏领域的应用越来越广泛,许多Linux用户开始寻求在自己的系统上畅玩游戏的方法。UALinux,一家致力于推广GNU/Linux使用的乌克兰公司,推出了基于Ubuntu 16.04的Ubuntu GamePack,旨在为Linux用户提供一个游戏友好型的操作环境。 ... [详细]
  • 本文深入探讨了JavaScript中实现继承的四种常见方法,包括原型链继承、构造函数继承、组合继承和寄生组合继承。对于正在学习或从事Web前端开发的技术人员来说,理解这些继承模式对于提高代码质量和维护性至关重要。 ... [详细]
  • 微信小程序中实现位置获取的全面指南
    本文详细介绍了如何在微信小程序中实现地理位置的获取,包括通过微信官方API和腾讯地图API两种方式。文中不仅涵盖了必要的准备工作,如申请开发者密钥、下载并配置SDK等,还提供了处理用户授权及位置信息获取的具体代码示例。 ... [详细]
  • 前端开发中的代码注释实践与规范
    本文探讨了前端开发过程中代码注释的重要性,不仅有助于个人清晰地回顾自己的编程思路,还能促进团队成员之间的有效沟通。文章将详细介绍HTML、CSS及JavaScript中的注释使用方法,并提出一套实用的注释规范。 ... [详细]
  • 全能终端工具推荐:高效、免费、易用
    介绍一款备受好评的全能型终端工具——MobaXterm,它不仅功能强大,而且完全免费,适合各类用户使用。 ... [详细]
  • 本文详细介绍了 Nginx 中用于端口监听的核心配置指令,包括其基本用法和高级选项。 ... [详细]
  • Java基础概念与核心特性解析
    本文深入探讨了Java编程语言的基本特点,包括其简洁性、面向对象设计、跨平台能力以及多线程支持等关键特性。此外,文章还详细分析了JVM、JDK和JRE之间的区别,并讨论了字节码的概念及其优势。 ... [详细]
  • VS Code 中 .vscode 文件夹配置详解
    本文介绍了 VS Code 中 .vscode 文件夹下的配置文件及其作用,包括常用的预定义变量和三个关键配置文件:launch.json、tasks.json 和 c_cpp_properties.json。 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
author-avatar
Lyn-风
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有