Amplify Flutterは、Google Flutter UIツールキットとAWSを使用して、iOS、Android、Web用のクロスプラットフォームアプリの作成を簡素化することを目的としている。昨年8月に開発者プレビュー版として発表されたAmplify Flutterが今は、一般向けに提供されている。そこには、新しいデータ、API、認証機能が含まれている。
Amplifyは、Flutterエコシステムに投資し、AWSのパワーを活用したい開発者向けに設計されている。Amplify Flutterライブラリは、既存のAWSバックエンドだけでなく、Amplifyで作成されたバックエンドでも使用できる。
Flutterは、単一のコードベースからWebアプリとモバイルアプリを作成することを目的としたFlutterベースのツールキットである。
Amplify for iOS and Androidは、認証、データ保存とデータアクセス、機械学習など、特定のユースケースを対象としたネイティブライブラリを提供する。これらは、低レベルのAWS Mobile SDKsのラッパーとして機能し、このタスクを容易にする宣言型APIを提供する。
Amplify Flutterは、拡張を可能にするプラグインの集合として設計されているとAmazonは言っている。これには、認証、ストレージ、分析のサポートが含まれる。Amplify Authカテゴリは、ユーザを認証するためのインターフェイスを提供し、他のカテゴリの認証を提供できる。DataStoreカテゴリは、オンラインモードとオフラインモードの両方で共有データと分散データの統合モデルを提供することを目的としている。Storageカテゴリは、パブリック、プロテクト、プライベートのストレージバケット内のユーザコンテンツを管理するためのサポートを提供する。
次のコードスニペットは、Amplify FlutterのStorage.uploadFile
APIを使用してファイルをS3にアップロードする方法を示している。
try {
File local = await FilePicker.getFile(type: FileType.image);
final key = 'myKey';
S3UploadFileOptions options = S3UploadFileOptions(
accessLevel: StorageAccessLevel.protected);
UploadFileResult result = await Amplify.Storage.uploadFile(
key: key, local: local, options: options);
setState(() {
_uploadFileResult = result.key;
});
} catch (error) {
print(error);
}
前述のように、GAの発表で、AmazonはAmplify Flutterに新機能を追加した。これには、GraphQLとRESTのサポート、Hosted UIによる認証、カスタマイズ可能なOAuth 2.0フローが含まれる。このOAuth 2.0フローでは、Facebook、Google、Amazonのような、対応するサードパーティSDKを埋め込まずにログイン画面を起動できる。
Amplify Flutterを使用しても、無料枠でないバックエンドサービスに支払う金額以外の追加費用は発生しない。