为什么在2020年选择Flutter

发布于2/12/2020 来自:「前端知否」微信公众号

什么是Flutter?

Flutter是Google提供的一个出色的跨平台框架,可用于为移动,桌面和Web平台构建应用程序。它于2018年12月正式发布,仅用了不到一年的时间就在GitHub和Stack Overflow上获得了比React Native更高的知名度。所有的炒作都有很好的理由,我将在本文中进行说明。

为什么要使用另一个框架?

当我向他们介绍Flutter时,软件行业的人们通常会问我的第一个问题是“为什么有人将它与React Native或其他SDK相比?”,答案很简单-在所有方面都优越可用。

除非别人提出了更好的方法,否则我们常常看不到自己工具和资源的局限性,即使如此,我们自己的偏见和先入为主的观念也可能使我们难以摆脱“旧方法”并难以接受更强大,更灵活的功能。软件没有什么不同。例如,只具有PHP经验的人会争辩说,为什么PHP是这么好的语言,但却不了解简单Web服务器之外的庞大设备和生态系统。并非所有内容都是一个网站,这就是我拥护Flutter的原因。我主张使用专门为应用程序开发的工具集而不是使用从前端Web生态系统移植而来的工具。

Flutter的优点

与其他替代品相比,Flutter具有明显的优势。这些优势被设计到基础语言和SDK中,以解决其他技术的常见问题和不足。以下是一些原因的简单细分,您为什么要为下一个项目选择Flutter,或者如果您处于任何领导地位,则应允许开发人员使用它:

1. Dart语言

Dart语言与标准苦苦挣扎,通常有许多具有不同语言功能的不同版本(许多开发人员不知道这些区别是什么),Dart语言从头开始就被设计为构建客户端应用程序的绝佳工具。 ,并已针对开发UI进行了优化。Dart具有干净且令人难以置信的强大语法,不仅促进而且鼓励了强大的应用程序体系结构和设计,更不用说团队统一,标准化,寿命长,易于维护以及与许多现有的跨平台工具也不相关。它与其他流行的语言(例如C#,Java和TypeScript)相似,这意味着那些有一定经验的人可以轻松地立即开始使用。

2.开发人员的广泛采用

在短短的一年内,Flutter在GitHub和Stack Overflow上都比React Native(当时最流行的框架)更受欢迎。这对您的应用程序意味着意味着有更多的资源可供学习,可以使用更多熟练的开发人员来开发您的应用程序,并且技术本身的迭代速度更快(这意味着该技术将更快地成长和成熟,对比多年以来基本上保持不变的技术,例如React Native)。

xxx

在上方stackoverflow趋势图表中,我们可以看到Flutter如何脱颖而出并处于领先地位。这个趋势可能会继续,这意味着之后将会很难找到愿意并能够使用其他跨平台技术的开发人员。这通常需要很长时间(数年),但在软件开发社区中却屡屡发生。

3.非常快

Flutter应用程序可编译为本地二进制文件,这些二进制文件依赖于C / C ++内置的图形和渲染引擎,因此可生成非常快速且高性能的应用程序。 Flutter应用程序能够在大多数设备上实现稳定的60fps,在支持该功能的设备上实现令人难以置信的120fps。许多开发人员已经注意到,Flutter与其他跨平台框架相比,其性能得到了极大的提高,这是移动应用程序开发人员迅速广泛采用该技术的驱动因素。确实,在性能和流畅的呈现方面,构建真正的原生应用是不容错过的,但在跨平台框架方面,Flutter在竞争中具有明显的优势。

4.相对容易学习

虽然可以说没有一种真正的生产语言或工具包真正易于学习,但是在那些具有清晰文档和适用于大量用例的标准设计模式的人与那些具有参差不齐的文档和高度不同的方式的人之间却存在很大差异。完成应该是非常简单直接的任务。

除了性能之外,Flutter之所以获得如此广泛用的另一个原因是出色的文档和大量可供参考的高质量示例。对于有兴趣学习新框架,工具包或语言的开发人员来说,具有重大意义。对于经验丰富的程序员而言,尤其如此,他们更有可能发现语言或工具包本身的设计问题。在学习某些技术文档不完善或如何完成基本任务的示例的技术时,已经有数十年编程经验的人会很快感到沮丧。 Flutter因其清晰的文档资料以及专家和新手的支持社区而倍受赞誉,他们经常渴望分享他们的经验,并提供出色的设计和开发模式的扎实工作实例,以使他人受益。围绕技术的精英主义通常较少,这意味着易于被广泛的受众使用和采用。

5.设计精良

Flutter是基于出色的语言(Dart)和快速的高性能渲染引擎(Skia)从头开始设计的。由于选择了这些设计,因此避免了其他跨平台技术的走过的弯路和包袱。

这样便形成了一个高级框架,该框架鼓励各种技能的开发人员使用良好的设计模式和最佳实践来构建应用,而不容易因语言设计而导致标准冲突或内在的技术负担(例如不良的JavaScript,大多数开发人员都会认为这是一场噩梦)。熟悉跨平台应用程序开发的人很可能会在使用Flutter的几分钟内看到Flutter提供的明显优势,而新手也不会因此而感到沮丧,因为互联网上有很多学习的范例。

最后

Flutter从零开始构建,使开发人员能够在创纪录的时间内创建高性能应用程序,它避免了许多甚至难以用语言表达的难题,并提供了一个出色的开发平台,这个需要得到充分的赞赏。很难用语言表达经验,但是我希望本文,能对有经验的开发人员为何选择Flutter用于未来项目提供一些见解。

感谢您的阅读并祝您下一个项目顺利!