使用 Amplify 和 Flutter 构建的移动应用程序调用 Step Functions 工作流

在本系列的第一部分中,我们使用 AWS Step functions 低代码可视化编辑器为简单的公寓预订场景构建了一个 Step Functions 工作流。

在本系列的第二部分中,我们使用 CDK 作为 IaC,Appsync 和 python 构建了相同的工作流,同时从 Lambda 函数调用了 Step Functions 执行。

在本系列的第三部分中,我们使用 SAM 作为 IaC,Appsync 和 python 构建了相同的工作流,同时从 Lambda 函数调用了 Step Functions 执行。

在本文中,我们将从使用 Amplify 和 Flutter 构建的移动应用程序调用上面创建的 Step Functions 工作流。

预览

alt text

解决方案架构

alt text

先决条件

为了能够成功地完成本教程,您需要检查这些先决条件。

注意

这不是一个 Flutter 教程,而是关于如何从 Flutter 应用程序调用 Step Functions 的教程。因此,我将假设您已经知道如何使用 Flutter。如果您不知道,没关系。您可以从 这里 开始。

设置全栈项目

创建一个新的 Flutter 应用程序

flutter create amplified_todo

将 Amplify 添加到您的应用程序

转到 pub.dev 并搜索 amplify flutter,然后复制包和版本 alt text

在您的根目录中,搜索 pubspec.yaml 文件,并将 amplify 包添加到其中。

amplify_flutter: ^0.6.6

由于我们将访问在本系列第 3 部分或第 4 部分中创建的 GraphQl API,因此我们还需要安装 amplify api 库。

amplify_api: ^0.6.6

因此,我的 pubspec.yaml dev_dependencies 现在具有此结构。

dev_dependencies:
  flutter_test:
    sdk: flutter

  # The "flutter_lints" package below contains a set of recommended lints to
  # encourage good coding practices. The lint set provided by the package is
  # activated in the `analysis_options.yaml` file located at the root of your
  # package. See that file for information about deactivating specific lint
  # rules and activating additional ones.
  flutter_lints: ^2.0.0
  amplify_flutter: ^0.6.0
  amplify_api: ^0.6.0

通过运行以下命令安装依赖项。根据您的开发环境,您可以通过 IDE 执行此步骤(或者它甚至可能为您自动执行此步骤)

flutter pub get

更新目标 Android SDK 版本

从项目根目录,导航到 android/app/ 目录,并使用您选择的文本编辑器修改 build.gradle,将目标 Android SDK 版本更新为 21 或更高版本

minSdkVersion 21

如果您使用的是 Flutter 2.10 或更高版本,则需要确保您的应用程序支持最新的 Kotlin 版本。这通常是 1.5.31 或更高版本。

您可以通过在应用程序的 android/build.gradle 文件中更新 Kotlin 版本来完成此操作

buildscript {
    ext.kotlin_version = '1.5.31'
    ...
}

从 Appsync 获取 Amplify 配置

更新 main.dart

打开您的 main.dart 文件并初始化 Amplify 和 Amplify API。

GitHub

查看 Github