亚马逊AWS官方博客

Amplify Flutter 现已正式发布:构建美好的跨平台应用程序

AWS Amplify 由一组工具和服务组成,用于构建安全、可扩展的移动和 Web 应用程序。目前,由 Amazon Web Services (AWS) 提供的Amplify 支持 iOS、Android 和 JavaScript(Web 和 React Native),是构建应用程序最快和最简单的方法。

Flutter 是 Google 的 UI 工具包,用于从单一代码库中构建本机编译的移动、Web 和桌面应用程序,是发展最快的移动框架之一。

Amplify FlutterAWS Amplify 和 Flutter 结合,此为已投资 Flutter 生态系统且现在希望利用 AWS 强大力量的客户而设计。

2020 年 8 月,我们推出了 Amplify Flutter 开发者预览版,并请求提供反馈。我们对回应感到高兴。经过几个月的服务优化,今天我们非常高兴地宣布 Amplify Flutter 正式推出。

GA 中的新Amplify Flutter功能
GA 版本增加的三项新功能,使构建功能强大的 Flutter 应用程序变得更加轻松:

首先,我们最近添加了由 AWS AppSync和 REST APIs 提供支持的GraphQL API 以及使用 Amazon API GatewayAWS Lambda 的处理程序。

其次,Amplify DataStore 为利用共享和分布式数据提供了一种无需为离线和在线场景编写额外代码的编程模型,这使得处理分布式、跨用户数据和处理仅本地数据一样简单。

最后,我们配有的托管式 UI 是实现身份验证的绝佳方法,且与 Amazon Cognito 和其他社交身份提供商合作,例如 Facebook、Google和 Amazon。托管式 UI 是可自定义的 OAuth 2.0 流程,允许您启动登录屏幕时无需在应用程序中嵌入适用于 Cognito 的 SDK 或社交提供商。

深入了解 Amplify DataStore
在过去的两周里,我一直使用 Amplify Flutter 构建应用程序,我最喜欢的功能是 Amplify DataStore,主要是因为它为我节省了很多时间。

在 Amplify 中使用 REST 和 GraphQL API 非常棒。但是,当我创建移动应用程序时,我常考虑移动设备具有间歇性连接且无法连接到 API 终端节点时会发生什么情况。在本地存储数据并同步回云可能会变得相当复杂。Amplify DataStore 通过提供能够处理离线或在线场景的设备上持久性数据存储来解决此问题。

当我开始开发应用程序时,我使用 DataStore 作为独立的本地数据库。但是,当我将它连接到云后端时,其力量对我来说一目了然。当网络连接可用时,DataStore 使用我的 AWS AppSync API 同步数据。如果应用程序处于离线状态,它会进行本地存储在,以为连接可用时做准备。

Amplify DataStore 会自动设置数据版本,并在云中使用 AppSync 检测和解决冲突。此工具链还会根据我所提供的 GraphQL 架构生成对象定义。

写入 Amplify DataStore
写入 DataStore 非常简单。文档网站展示了一个示例,您可以使用博客网站中的架构自己尝试。

Post newPost = Post (
    title: 'New Post being saved', rating: 15, status: PostStatus.DRAFT);
await Amplify.DataStore.save(newPost);

读取 Amplify DataStore
要从 DataStore 中读取,您可以查询给定模型类型的所有记录。

try {
   List<Post> posts = await Amplify.DataStore.query(Post.classType);
 } catch (e) {
   print("Query failed: " + e);
 }

同步 Amplify DataStore
如果启用数据同步,则客户端之间可能存在不同的对象版本,且多个客户可能已对其对象副本进行了更新。DataStore 将通过应用冲突检测和解决策略来汇合不同的对象版本。默认解决方案为 Auto Merge,但其他策略包括开放式并发控制和自定义 Lambda 函数。

其他 Amplify Flutter功能
Amplify Flutter 允许您通过三种其他方式与 AWS 合作:

  • 身份验证Amplify Flutter 提供用于验证用户身份的界面,并启动案例,例如,Sign-Up (注册)、Sign-In (登陆)和 Multi-Factor Authentication (多重身份验证)。在后台,它为其他的 Amplify 类别提供必要的授权。它为 Cognito 用户池和身份池提供内置支持。
  • 存储。 Amplify Flutter 提供一个界面,为公有、受保护或私有存储桶中的应用程序管理用户内容。它启动例如上传、下载、删除对象等使用案例,并在默认情况下为 Amazon Simple Storage Service (S3) 提供内置支持。
  • 分析Amplify Flutter 使您能够在Amazon Pinpoint 中为已经身份验证或未经身份验证的用户收集跟踪数据。您可以轻松记录事件,并根据需要扩展自定义指标或属性的默认功能。

现已推出
Amplify Flutter 现已在支持 的所有区域的 GA 中推出。使用 Amplify Flutter 无需额外费用;您只需为应用程序在免费套餐之外所使用的后端服务付费;请查看定价页面了解更多详情。

请访问 Amplify Flutter 文档开始使用并了解更多。编程愉快。

— Martin