什么是 Flutter?

Flutter 是由 Google 开发和提供支持的开源框架。前端和全栈开发人员使用 Flutter 为具备单一代码库的多个平台构建应用程序的用户界面(UI)。

在 2018 年推出时,Flutter 主要支持移动应用程序开发。Flutter 目前支持在六个平台上进行应用程序开发:iOS、Android、Web、Windows、MacOS 和 Linux。

Flutter 如何帮助应用程序开发?

Flutter 简化了为它支持的六个平台上的应用程序创建一致、具有吸引力的 UI 的过程。

因为 Flutter 是一个跨平台的开发框架,所以我们先把它和原生开发做个对比。然后,我们可以突出显示 Flutter 独有的功能。

原生应用程序开发与跨平台应用程序开发的比较

为一个特定平台(例如 iOS)编写应用程序称为原生应用程序开发。反之,跨平台应用程序开发则是使用单个代码库为多个平台构建应用程序。

原生应用程序开发

由于开发人员在原生应用程序开发中为特定平台编写代码,因此他们可以完全访问本机设备功能。与跨平台应用程序开发相比,这通常会带来更高的性能和速度。

另一方面,如果您想在多个平台上启动应用程序,原生应用程序开发需要更多的代码和更多的开发人员。除了这些费用之外,原生应用程序开发还可能使在不同平台上同时启动并获得一致的用户体验变得更加困难。这时就需要像 Flutter 这样的跨平台应用程序开发框架。

跨平台应用程序开发

跨平台应用程序开发允许开发人员使用一种编程语言和一个代码库来构建适用于多个平台的应用程序。如果您要为多个平台发布应用程序,那么相较于原生应用程序开发,跨平台应用程序开发的成本更低、耗时更少。

此流程还允许开发人员为跨平台的用户创建更一致的体验。

与原生应用程序开发相比,这种方法可能存在一些缺点,包括对原生设备功能的访问受限。但是,Flutter 具有使跨平台应用程序开发更加顺畅和高性能的特性。

Flutter 的优势

以下是 Flutter 作为跨平台开发框架脱颖而出的一些方面:

  • 接近原生的性能。Flutter 使用编程语言 Dart 并编译成机器码。主机设备能理解此代码,从而确保快速有效的性能。
  • 快速、一致且可自定义的渲染。Flutter 不依赖于特定平台的渲染工具,而是使用 Google 的开源 Skia 图形库来渲染 UI。这为用户提供了一致的视觉效果,无论他们使用什么平台来访问应用程序。 
  • 开发人员友好的工具。 Google 在构建 Flutter 时强调易用性。通过热重载等工具,开发人员可以在不丢失状态的情况下预览代码更改的外观。小部件检查器等其他工具可以轻松可视化和解决 UI 布局问题。

Flutter 使用什么编程语言?

Flutter 使用同样由 Google 开发的开源编程语言 Dart。Dart 针对构建 UI 进行了优化,而且 Flutter 利用了 Dart 的多项优势。

例如,Flutter 中使用一项 Dart 特性是可靠的 null 安全性。Dart 可靠的 null 安全性使得检测称为 null 错误的常见 bug 变得更加容易。此功能减少了开发人员花在代码维护上的时间,让他们有更多时间专注于构建他们的应用程序。

Flutter 中有哪些小部件?

在 Flutter 中,开发人员使用小部件来构建 UI 布局。这意味着用户在屏幕上看到的一切,从窗口和面板到按钮和文本,都是由小部件组成的。

Flutter 小部件的设计使开发人员可以轻松自定义它们。Flutter 通过组合方法实现了这一点。这意味着大多数小部件都由较小的小部件组成,并且最基本的小部件具有特定用途。这使开发人员可以组合或编辑小部件以创建新的小部件。

Flutter 使用自己的图形引擎渲染小部件,而不是依赖平台的内置小部件。这样,用户将在跨平台的 Flutter 应用程序中体验到类似的外观和风格。这种方法还为开发人员提供了灵活性,因为某些 Flutter 小部件可以执行特定于平台的小部件无法执行的功能。

Flutter 还使社区开发的小部件易于使用。Flutter 的架构支持拥有多个小部件库,Flutter 鼓励社区构建和维护新的小部件库。

Flutter 小部件的类型

自下载时起,Flutter 就带有一个广泛的小部件目录。该目录有 14 个类别,包括样式、Cupertino(iOS 风格的小部件)和 Material Components(遵循 Google 的材料设计指南的小部件)。

Flutter 还附带布局和主题,可帮助开发人员立即进行构建。

Flutter 如何获得支持?

Flutter 得到了 Google 以及 RedditDiscordSlackStack OverflowGitter 上活跃的开源社区的支持。自 2018 年发布以来,Google 一直在更新 Flutter,包括 2022 年的 Flutter 3 更新,将稳定支持扩展到了 macOS 和 Linux。

为了让 Flutter 更易于学习,Google 在 Flutter 的网站上编写了大量的文档和教程。为了与 Flutter 用户互动,Google 还举办了全球活动、推广了社区项目并赞助了开发人员挑战赛。近期活动可以在 Flutter 的网站上找到。

Flutter 的社区创建了数以千计的第三方软件包和优秀工具来简化开发人员体验。这些库可在 pub.dev 获得。

AWS 如何支持 Flutter?

Flutter 可帮助您构建用户看到的应用程序部分。但是应用程序开发需要许多用户看不到的功能,例如身份验证、文件存储和分析。这时就需要使用 AWS Amplify 和 Amplify Flutter。

AWS Amplify 是一个用于构建安全、可扩展的移动和 Web 应用程序的框架。AWS Amplify 支持 iOS、Android、Web、React Native 和 Flutter,让您可以快速轻松地构建由 AWS 提供支持的应用程序。

Amplify Flutter 是一组工具和库,可让您为 Flutter 应用程序配置、构建和部署后端。您可以使用 Amplify Flutter 将您的 Flutter 应用程序连接到 AWS 并解决常见的后端需求。

使用 Amplify Flutter 作为您的后端解决方案

Amplify Flutter 允许您使用 AWS 为您的 Flutter 应用程序添加常见的后端功能:

  • 分析。 Amplify Flutter 允许您在 Amazon Pinpoint 中收集用户的跟踪数据。您可以轻松记录事件并根据需要自定义指标和属性。
  • API。 Amplify Flutter 具有强大的 API 功能。GraphQL API 可帮助您在后端检索数据,它由 AWS AppSync 提供支持。REST API 和处理程序使用 Amazon API GatewayAWS Lambda 来帮助您向后端发出请求。
  • 身份验证。 Amplify Flutter 允许您对用户进行身份验证并实施注册和登录表单以及多重身份验证。它在后台为其他 Amplify 类别提供必要的授权。Amplify Flutter 从您开始使用时就支持 Cognito 用户池和身份池。
  • 数据存储。Amplify Flutter 让您可以使用分布式共享数据,而无需为离线和在线场景编写额外的代码。这使得处理分布式、跨用户数据就像处理本地数据一样简单。Amplify DataStore 自动版本化数据并使用 AppSync 在云中实施冲突检测和解决。
  • 存储。 Amplify Flutter 允许您上传、下载和删除存储中的对象。Amplify Flutter 内置了对 Amazon Simple Storage Service (Amazon S3) 的支持。

了解更多有关 Amplify Flutter 的信息。

通过 AWS 使用 Flutter 的后续步骤

查看其他与产品相关的资源
了解有关开发人员工具的更多信息 
注册免费账户

立即享受 AWS 免费套餐。 

注册 
开始在控制台中构建

在 AWS 管理控制台中,使用 AWS 开始构建。

登录