使用Flutter进行移动开发的优缺点



Flutter是Google创建的一种新的开源框架,可帮助开发具有一个代码库的本机Android和iOS应用程序。 它不只是一个框架,还因为它是一个完整的软件开发工具包,其中包含构建跨平台应用程序所需的一切。 这篇Flutter评论将探讨该工具的优缺点。

优势优势


1.高性能


许多因素都会影响应用程序的性能,包括CPU使用率,每秒帧数,平均响应时间,每秒请求数等等。 Flutter提供了稳定的60fps,这是当代屏幕显示平滑清晰图像的速率。

开发人员尝试将运动保持在此水平,因为人眼可以识别此帧速率中的任何延迟。 与React Native和Xamarin相比,该框架的启动时间为220毫秒,速度为58fps。

2.可访问性和国际化


倡导包容性和多样性,因此Google提供了整合的机会来制作可被广泛用户访问的应用程序。 通常,当您需要使应用程序在不同的地区和语言中运行时,您希望为本地化的内容准备好代码,这些内容通常是在以后创建的。 此过程称为国际化。

用于移动开发的Flutter原生提供基于Dart intl包的小部件,这使此过程更加简单。 现在,它支持24种语言,还支持度量单位,布局选项,货币和日期。

3.立即更新


Flutter的架构上刻有热重载功能,无需插件即可立即进行更新。 通过热重装,您可以实时查看更新。 如果您在运行代码时遇到错误,则该框架允许您立即对其进行修复并继续运行而不必重新启动它。

返回到需要花费几分钟时间进行部署的常规编程可能是一个问题。 热重装可提高您的生产率,允许进行实验而不会造成长时间的延迟,并有助于快速迭代。

4.学习曲线温和


如果学习Dart很简单,那么熟悉此工具将更容易。 许多没有编码知识的人都可以使用该框架开发原型和应用程序。 另外,您不需要任何移动开发经验即可使用它。

此外,Google因开发结构合理且详细的文档而受到欢迎,这是React Native遇到的问题。 您可以阅读这些文档以及视频课程和Codelabs的实践课程。 在Udacity和Udemy上提供课程,您甚至可以加入Facebook社区。

5.用于快速UI编码的自定义和现成的小部件


该工具使用现成的小部件。 使用这些构建块,该工具可以帮助您创建用户界面。 尽管许多方法利用不同的对象(例如控制器,视图和布局),但是此框架具有统一且一致的对象模型。 该工具中的每个对象都是一个小部件,包括字体,按钮和填充。 您可以将小部件组合为表单布局,并且可以决定在任何自定义级别使用小部件。

该框架中的小部件排列在树中,这有助于渲染。 但是它们会导致整个结构过于复杂。 大型应用程序可能需要多达十层代码才能形成一个基本对象。 因此,需要事先对结构进行适当的规划。

缺点


1. iOS问题


由于Google开发了用于移动开发的Flutter,因此开发人员不必担心其iOS实施。 由于Google对快速修复错误有直接的兴趣,因此在该框架上创建Android应用程序既愉快又快速。 该工具的最新更新包括完美的iOS外观。

在框架上创建了iPhone设置,以允许使用Cupertino小部件。 但是这些和其他设计功能后来又更新,并且基于iOS 10功能,即使iOS 11已经发布了一段时间。 因此,尚不清楚在工具离开测试阶段后,更新是否将继续以与Android版本相同的速度继续发布。

2.大量文件


开发人员要竭尽全力来减小应用程序的大小。 用户的电话存储空间受到限制,最好发布一个应用程序,以防止用户喜欢的图像和歌曲将其删除。 为了最大程度地减少代码的大小,程序员通常避免使用动画,压缩图像并减少程序包和库的数量。

在Hello world应用达到6.7MB之后,该框架使开发人员大为失望。 即使将其降至4.7MB,它也仍然远远大于550KB的Kotlin和539KB的本机Java。

3.飞镖


Dart用于Flutter的开发,既有优点也有缺点。 它是一种编程语言,既面向对象又快速。 但是,它不像C#,Java,Objective-C和JavaScript这样的编程语言出色。

在Dart的学习过程中不会遇到很多新手开发人员,因此为您的团队招募新开发人员可能是具有挑战性的。 这是跨平台方法时要牢记的重要因素。

4.没有第三方库


第三方软件包和库在自动进行开发人员软件开发以及减轻从一开始就对所有程序进行编程的要求方面都发挥着重要作用。 这些库通常是开源的,经过预测试的并且易于使用。 对于大多数流行和较旧的技术,获取所需的软件包很容易。

但是,由于Flutter用于移动开发是新的,因此要找到这样的免费软件包和库并不容易。 它的免费软件包的官方资源仍在改善,其工具列表仍在增长。 因此,您需要等待,然后再决定将其用于长期开发。

如果您正在寻找一种具有温和学习曲线,高性能,可访问性和国际化,现成的小部件以及即时更新的移动应用程序开发工具,那么Flutter就是您的理想之选。 但是,请注意其缺点,以便您知道自己的位置。

Source: https://habr.com/ru/post/zh-CN455020/


All Articles