Google Flutter 评测——为什么移动应用开发者喜欢Flutter 发布时间:2022-08-29   点击浏览:782次

为什么应用开发者喜欢Flutter?因为Flutter很棒。

Flutter迎合了企业(通过提供合理的开发成本)和开发人员(通过提供出色的可用性和速度)。这就是一些大公司转向Flutter的原因,例如Google Ads、阿里巴巴、Reflectly等等。

谷歌在构建Flutter方面做得很好,他们继续让这个框架变得更好。

在这篇文章中,我将简要介绍Flutter及其全新的优势,并讨论为什么这个框架值得使用。另外,我将讨论可能阻碍大公司采用Flutter的原因。

但首先要做的事情。

Flutter的要点是什么?

以下是您可能已经知道的有关Flutter的内容:

它是一个开源、跨平台的工具包

应用程序是用Dart编程语言编写的

它有自己的图形引擎(Skia)

它正式支持三个平台:iOS、Android和Web(测试版)

非官方——它也支持桌面

Google于2018年2月底推出了Flutter的第一个版本。截至2020年4月,1.12版本可用。

Flutter有什么特别之处?

Flutter结合了原生应用的质量和跨平台开发的灵活性。

实际上,许多跨平台工具让您只需编写一次代码即可在iOS和Android上使用。然而,并非所有人都可以像原生应用一样呈现相同的外观。

但这正是Flutter所做的:Flutter不是在原生UI组件(如React Native和Xamarin)之上的包装器,而是从头开始绘制UI。

Flutter保持了应用程序的原生体验和感觉,您不必担心它在任何平台上的性能。

此外,由于Flutter是一个开源框架,任何开发人员都可以在GitHub上对其进行更改并发送合并请求。如果你看看Flutter的受欢迎程度——90.4K GitHub星数、12k分叉和18,445次提交——你就会明白开发人员喜欢Flutter并为让它变得更好做出贡献。

颤振如何工作?

Flutter不直接编译到iOS或Android应用程序。应用程序基于渲染引擎(基于C++构建)和Flutter(基于Dart构建)的组合启动。以这种方式生成的所有文件都附加到特定平台的每个应用程序和SDK程序集软件。

这就像游戏开发:游戏不分配其框架,功能由游戏引擎执行。Flutter软件也是如此——所有基于Flutter SDK的应用程序都将部分原生框架替换为Flutter元素。

尽管它会影响最终应用程序的大小,但性能仍然相当不错——渲染速度高达120 FPS。

由于ARM处理器的原生编译、简单的渲染以及一组集成的小部件和工具,Flutter使开发过程更加简单。

此外,它还提供了一些非常美味的功能,例如Hot Reload。

以下是它的工作原理:

当您单击Hot Reload按钮时,代码中的所有更改都会立即显示在小工具、模拟器和模拟器中。该应用程序从您点击热重载之前的位置继续工作:代码更新,但继续执行。

为什么为跨平台应用选择Flutter?

新的Flutter版本将不断推出更多高级功能。但是已经有很多增强的功能完美地解释了为什么Flutter如此受欢迎。

首先,与流行的看法相反,使用Flutter进行跨平台开发并不会使软件变得更糟。

Flutter带有适用于Android和iOS界面的所有原生小部件,例如Material Design和Cupertino。此外,该框架可以改变单独元素的行为,为应用程序的用户创建类似的用户体验。

其次,Flutter使得在dev模式下实现离散文件编译成为可能。JiT编译加速了开发和软件调试。

第三,Flutter允许灵活且可扩展的后端。

它支持Firebase、SQLite等插件(pub.dev将帮助您找到所需的插件)。Firebase使应用程序的基础架构具有可扩展性、无服务器和冗余性。

因此,如果您正在开发需要实时数据库或云功能的应用程序,Flutter将为您提供支持。

最后一个:Flutter非常好学。

从一开始,Google开发人员就设定了降低进入门槛的目标。他们仔细制定了开发人员可以使用的文档和资源。它甚至有一些特殊的部分,您可以根据您的专业来开始学习该框架:

面向Android开发者的Flutter

适用于iOS开发者的Flutter

面向React Native开发者的Flutter

Flutter for Xamarin.Forms开发人员

面向Web开发人员的Flutter

由于Flutter的详细文档,即使您只有使用Unity图形工具制作Android游戏的经验,您也将了解如何在Dart中编写代码。

Flutter 1.12(最新版本)及其优势

让我们看看Flutter在其最新的1.12版本中引入了哪些热门特性:

iOS深色模式

从现在开始,Flutter支持iOS 13的外观和感觉,包括Cupertino小部件中完整的暗模式支持。这不仅仅是换掉背景,而是调整其余颜色以使其成为一个很好的匹配。

添加到应用程序支持

另一个重大改进是Add-to-App更新,用于将Flutter集成到现有的iOS/Android应用程序中。

新版Flutter支持在应用中添加一个全屏Flutter实例,以及:

Java、Kotlin、Objective-C和Swift中的稳定API集成

支持在Flutter模块中使用插件

通过Android AAR和iOS框架的其他集成机制

测试版网络支持

新的Flutter master、dev和beta通道为web提供了改进的支持。想要一些例子吗?

这是Rivet,这是一个使用Flutter和Firebase创建其应用程序的Web版本的教育项目。

新版本的框架引入了Dart 2.7。

此更新增强了使用Dart 2.5运行的体验,即安全字符串如何处理能力和扩展过程。这有助于开发人员在变量获得零值并解析字符串中的整数时防止错误。

以下是最新Flutter版本的其他一些功能:

macOS桌面支持(alpha)

多设备调试

黄金形象测试

Android构建改进

更新的DartPad

这很好,但并非没有问题:是什么阻碍了开发人员?

Flutter真的很酷:易于上手,易于使用,并且由一家大型科技公司提供。然而,这就是为什么您的高级开发人员可能不会像您一样乐观的原因。

Dart的(低)受欢迎程度

与适用于Android的Java/Kotlin或适用于iOS的Swift/Objective-C不同,Dart的流行度还不高。而且它是极不可能的。

Dart并不难学,而且有大量的教程(比如这个),但一些开发者仍然坚持使用Java和其他熟悉的工具。

同时,你不能使用Flutter而不使用Dart:即使是Flutter的杀手级功能——Hot Reload——如果没有Dart也无法工作。

不支持所有设备

您不能为iPhone 5s之前的32位iOS设备制作应用程序。Windows桌面也是如此:你不能在32位笔记本电脑上运行Flutter。

而且Flutter开发人员没有修复它的计划,因为“这将涉及大量工作”。

因此,如果您想使用Flutter进行编码,则必须拥有一台x64位设备或升级您现在使用的设备。

图书馆数量有限

虽然有很多Flutter库,例如fl_chart(用于在Flutter中绘制图形)、path_provider(用于在Android/iOS上定位文件)、flutter_sliding_tutorial等等,但数量仍然有限。

这不难解释:Flutter是一个相对较新的框架,开发人员没有足够的时间来开发与原生语言一样多的库。

尽管如此,最重要的库已经存在,而且新的库一直在出现。

Flutter应用程序体积更大

与本地开发的应用程序相比。Flutter的团队测量了最小的应用程序大小(没有Material组件,只有一个Center小部件,使用flutter build apk --split-per-abi构建),捆绑和压缩后,ARM为4.3 MB,ARM 64为4.6 MB。

现在的基本应用程序在Android中约为4MB,在iOS中约为10MB。

很少经过验证的专业知识

Flutter可能受到开发者的喜爱,但大公司并没有急于停止制作原生(或React Native)应用程序而转向Flutter。

对于大多数公司来说,最大的问题是Flutter的新颖性。Dart比Java或C#更新,而Flutter本身是全新的。

当然,有很多Flutter开源应用程序,包括Google Ads或Hamilton等大型应用程序(在此处查看完整列表),但数量不多。

没有人愿意成为采用全新框架的人,几个月后就不得不切换到原生开发。

但更重要的是,Flutter是你一个人走的路:

没有多少已确认的最佳实践(至少在大型项目中)

总是有机会你是第一个面临这个特殊问题的人

希望有人能帮助你——你必须小心翼翼地迈出每一步,并准备好面对后果

在哪里使用颤振

首先,当你有有限的时间和金钱来验证商业模式时,最好将Flutter用于MVP初创公司。

Flutter应用更便宜:

与两个本机应用程序的成本相比

开发团队规模缩小40%

线性过程

您可以花更多时间在应用程序的功能上

通过选择Flutter项目,您可以减少开发时间。与原生相比,Flutter开发花费的时间并不多。

这是一个例子。假设您正在为两个平台制作类似Instagram的应用程序。iOS开发大约需要700小时,Android也需要700小时。

使用Flutter,您将覆盖两个平台并节省时间:700h Android + 700h iOS与700h Flutter。

您可以节省大量时间花在其他事情上,例如完善功能。

总结

如果你在有限的时间和有限的预算下构建应用程序,Flutter绝对值得一试。

它就像看起来一样好,并且随着每次新的更新,Google开发人员都会添加更多甚至用于跨平台开发的工具。

当然,对于C#和Java爱好者来说,这个框架可能看起来不寻常,但这并不意味着它会迫使你走出舒适区。掌握了细微的语法差异后,您很快就会发现UI开发比原生开发快几倍。

如果你成功了,如果Flutter继续存在,它可以为你带来一些令人兴奋的移动开发体验和未来的机会。