Amplify Studioは使いやすいのか



[POLアドベントカレンダー2021](https://qiita.com/advent-calendar/2021/pol) 6日目、ゲバラです。
先日発表されたAmplify Studioを触ってみます。

5日目のまーさんの記事は[こちら](https://qiita.com/takahashik0422/items/b94c4bc25314eff4a087)

https://qiita.com/takahashik0422/items/b94c4bc25314eff4a087

#Amplify Studioとは
Amplify Studioとは、Webアプリのフロントエンドを高速に開発できるツールです。これは昨年すでにリリースされているAmplify Admin UIに統合されており、フロントエンドとバックエンドどちらも運用管理行えるなかなかスーパーなツールに進化しました。

https://aws.amazon.com/jp/about-aws/whats-new/2021/12/aws-amplify-studio/

:::note warn
2021/12/06現在
まだパブリックプレビュー中なので本番環境では使わないようにしてください。
:::

#特徴1:Figma連携によるコンポーネントエクスポート機能
プロトタイプデザインツールFigmaとの連携することができ、デザインしたUIをReactのコードとしてコンポーネント出力することできます。
#特徴2:コンポーネントとデータのバインド機能
出力したコンポーネントとモデリングしてあるデータを管理画面上からバインドすることができます。

#レッツチャレンジ
基本ここをなぞってます

https://aws.amazon.com/jp/blogs/mobile/aws-amplify-studio-figma-to-fullstack-react-app-with-minimal-programming/

名前を入れてConfirm deplayment。すでに作成しているアプリケーションでも開始できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541992/becfad0f-29d9-a9a0-e8aa-2d0d14db9c78.png)

セッティング中・・・。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541992/99eef150-8231-f1cb-1aa6-cc42c0e71f33.png)

5分ほどで完了。すでにstagingのバックエンド環境ができていますね。
「Studioを起動する」から始めましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541992/ab383c94-61db-0666-4cf3-28431202174c.png)

左上のAmplify Studioにワクワクする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541992/1e6f51e6-c3c7-6d23-df79-a838172fa0d3.png)

##UI Libraryを使ってFigma連携してみる
左のUILibararyからGet statredしましょう
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541992/6b6800fe-bc39-43f9-8655-3e730c4b91a6.png)

①にあるリンクはAmplify側で用意してあるサンプルなのでこれを使う必要はありませんが、当方はあまりFigmaを使いこなせていないので、サンプルをコピーして②に共有用のURLを貼り付けます。権限の許可を求められるので許可します(ここはスクショ撮り損ねました)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541992/47ca5262-b607-fc04-a7d8-60d2d7c27deb.png)

Figma上でデザインしたコンポーネントを一つ一つ取り込むか選択していきます。Accept Allで一気に取り込んでもOK。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541992/61f1ecb7-1ecb-9895-28bf-fa41749975ff.png)

取り込み完了するとコンポーネントが一覧で見れるようになりました。便利。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541992/d14dbae8-8239-052c-955f-32f263f59b3d.png)

Configureからコンポーネントのプロパティを設定したり、実際のコードを取得することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541992/3c5aac29-d206-194c-5c1f-3627c5eb60a7.png)


##UIとデータをバインドしてみる
UIとデータをバインドしてみたいのであらかじめデータのモデルを作っておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541992/7c53721b-704c-4d5b-09ff-af8bdda14e17.png)

バインドする設定はコンポーネントのConfigureから行います。
Component propertiesのTypeとして先ほど作成したデータモデルを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541992/416d9234-7940-f0f0-a67a-d9e4c95fe92d.png)

Typeを設定した後、左にある項目からバインドしたいものを選択し、Child propertiesを設定してきます。Propには基本labelを選択します。Valueはデータモデルの項目を選択することができます。
これを選択することでバインド設定完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541992/72a4a864-64b2-2bcc-8030-1062f9fb0586.png)

便利だと思ったのが左の3点リーダからConcatenateでValueの結合をしたり、Add conditionalを選択すると条件指定することで項目の出し分けをすることができるようです。思ったよりカスタマイズ性があって使えそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541992/fee9723e-f02f-7bd4-5788-adfee5ed9946.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/541992/9e851299-43cd-5d2b-4dc9-d5ab8f40ddc7.png)

実際にデータが入っていなくても上部にあるShuffle preview dataをクリックすると、適当なデータが表示され、デザインを確認することができます。英語だけですが。

#感想
不具合あって使い物にならないかなと思っていましたが、意外と便利で使えそうな印象でした。使いこなすにはFigmaをマスターしていないと難しそうですが。こうしてコードを書く量が減り、作りたいプロダクトに集中できるのは嬉しいですね。今年はFigmaからコード生成するツールが増えたので来年はFigmaをマスターしなければいけない年になりそうです。

#7日目
7日目は10月に入社されてバリバリ活躍中の[アビスさん](https://qiita.com/Abyss)です！

https://qiita.com/Abyss/items/06b280a09498f72530b2