FigmaのデザインをPower Apps のキャンバスアプリに変換する方法 (Express Design)

日本マイクロソフトの向井です。
今回はMicrosoft Build 2022 で発表のあったFigmaのデザインからキャンバスアプリを作成する方法をご紹介します。
大まかな流れとしては、Figmaでデザインを作成→Power Appsに変換となります。

# 1. Figma でデザインを作成する
[Figmaのサイト](https://www.figma.com/)にアクセスします。

Create Apps from Figma UI Kit をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/00f70d20-595a-db31-5b0a-38df85c1ece1.png)

Figmaのデザイン画面が表示されます。
右側にはこのKitの使用方法が書かれています。

このページにはFigmaの使用方法に関する説明が書いてあるので、一度目を通しておきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/bdf801cc-28ef-0f54-0622-f4b583c06bcc.png)

Figmaで作成したデザインをPower Apps のキャンバスアプリに変換できること、
アプリに変換後、データソースに接続などは別途作業が必要なこと、
現在この機能はプレビュー中なことなどが書いてあります。

また、その下の小さい文字には、Figmaで作成したものをすべて正確にPower Appsのアプリに変換できるわけではないというような注意書きもあります。


## Read this first
左側のメニューからRead this firstを選択してみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/d07e75dc-751f-283b-b9ab-9700d5e6ec40.png)

拡大して読んでみたので、重要そうなことをこちらにメモします。
上に書いたことと重複する内容は割愛します。

・推奨のフォントはSegoe UI
・サポートされているコンポーネントだけを使用できる
・コンポーネントの名前は変更してはいけない
・コンポーネントレイヤーを変更してはいけない
・サポートされているフォントを使用すること
・フォントサイズの表記はFigmaはpixels、Power Apps はpoints。
1 pixel = 0.75 Points

**これらのルールを破ると、正しくPower Appsに変換できないようです。**

## step 1: Getting started
続いて、左のメニューのStep1を見てみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/c1614644-a39f-aed1-4417-6bc884130b47.png)

上部にはアプリ作成の手順（Figmaでデザイン→Power Apps に読み込み→追加編集）が書いてあります。
下部には、左のメニューからサポートされているコンポーネント、サンプルアプリを確認するように書かれています.

### サポートされているコンポーネント
ものすごく小さく表示されますが、拡大すると詳細を見られます。
Power Apps のアプリをデザインするのに使用できる部品の一覧です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/7a2a2ac9-487f-df47-bff2-020831ce4211.png)

### サンプルアプリ
Figmaでデザインされたサンプルアプリです。
後程、こちらのアプリをPower Appsに読み込んでみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/2390495a-c54f-36d4-6d34-391429fc1e98.png)


またこれら以外にも、Power Apps 内の表現でサポートされていないものの一覧も書かれています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/97a179d8-73cc-6baa-47b4-a4fd123051de.png)

## step 2: Design your app
続いてstep 2を確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/6c84f878-8e15-a7fd-3ed2-032ef9137ea5.png)

こちらにはアプリのデザインの手順が書いてあります。
こちらはかなり細かいので、実際にアプリをデザインしながら必要なところを読むのがいいと思います。
Figma でデザインをしながら説明を読めるように以下にスクリーンショットを貼っておきます。

### ①スマホ用かタブレット用かを選ぶ
デザインしたいアプリをスマホ用かタブレット用から選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/5e50471f-7efc-a7b1-0ba1-cdd6b36017ce.png)

### ②アセットパネルを開く
アセットパネルを開き、ローカルコンポーネントを展開します。さらに、スマホ用かタブレット用かを選んで展開し、使用できるコンポーネントの一覧を表示します。
スマホ用かタブレット用かでコンポーネントが分かれているので注意してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/ef70addf-f622-9c74-6b84-db9154b4adfe.png)

### ③ページにスクリーンを追加する
表示したコンポーネントの一覧から、まず、スマホ用orタブレット用のスクリーンをページにドラック＆ドロップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/0f75b35c-dafd-c974-4bb9-a640a66e0786.png)

### ④スクリーンを切り離す
（よくわかりませんでした）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/bf213e13-d0b9-d346-1776-ed2744fd24fa.png)

### ⑤スクリーンに名前をつける
スクリーンにわかりやすい名前をつけることができます。スクリーン上部をダブルクリックで変更できます。
※コンポーネントの名前は変更しないように注意
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/0d7ce11c-0b16-ef97-7a74-81f1e8ee11c8.png)

### ⑥スクロール可能な画面かスクロールできない画面かを選ぶ
Formを追加するか、画面のスクロールはできるようにするかなどを選択していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/06cda2e3-d2c8-ae74-b81c-7262daf8fe01.png)

### ⑦スクリーンを切り離し、テキストボックスを取り除く
（よくわかりませんでした）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/8f17dd0e-5e12-da7b-02de-65a5d76a5267.png)

## ⑧コンポーネントを追加していく
アプリのデザインをしていきます。
フォーム内とフォーム外で使用できるコンポーネントが違うことに注意してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/9bf91e82-82b2-8682-84f5-ea6fb273c0c5.png)

### ⑨各コンポーネントの詳細設定をする
Labelの表示非表示などを設定できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/27d742a1-d98f-a572-dbb4-435ab6a462c9.png)

### ⑩（必要があれば）複製したスクリーンをPower Appsに反映させないようにする
複製したスクリーンの名前をmsft_Ignore にすると、Power Apps側には表示されないようです。
メモやバックアップ用のスクリーンに使えそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/0724c1fd-58cb-6529-706f-47941b9a8965.png)

このような手順でアプリをデザインしていきます。
アプリのデザインが終わったらstep 3に進みます。
今回はサンプルアプリを使用して説明します。

# 2. デザインをPower Apps のキャンバスアプリに変換する
こちらは、Figma内の　「step 3: Convert into an app」の内容になりますが、実際の画面でご説明します。

まず、[make.powerapps.com](https://make.powerapps.com/)にアクセスし、Figmaからアプリを作成をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/d45bc682-9bba-150b-05c3-e09c2c7f5ac0.png)

すると、このような画面が出てきます。
こちらに必要項目を入力していきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/e83d6408-3ccf-38db-b19b-6326a8c89999.png)

アプリ名は任意の名前でOKです。

## Figmaのページやフレームへのリンク
Figmaのデザイン画面を開きます。
今回はサンプルアプリを使用します。
ページ一覧から、Sample appを探し、右クリックして、Copy link to page を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/e597451a-7434-70e4-eedf-a9f305f0bc0c.png)

先ほどのPower Appsの画面に戻って、「Figmaのページやフレームへのリンク」欄に貼り付けます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/f6c8ad25-13c8-dbf7-f25b-c4bddd8ef178.png)


## Figma の個人用アクセス トークン
Figmaのデザイン画面の左上から、Back to filesを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/68749ef8-b3b5-2dae-3417-5158963d7afe.png)

画面右上のアイコンをクリックし、Settingsを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/8e0c808c-9970-eebd-aa56-e624b8f55b0e.png)

下の方にスクロールし、Personal access tokensのCreate a new personal access token の欄に適当なトークン名を入れ、エンターキーを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/0b7da808-e770-cbc2-90f4-86371adce1db.png)

エンターキーを押すとこのようにトークンが表示されるのでコピーします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/a1c02ff9-ff68-0e82-3671-fde4823faf99.png)

今コピーしたトークンをPower Apps側にペーストします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/5e3d9df6-f0e1-4e6d-fd8f-6ff99f8e7e8c.png)

最後に形式は電話を選んで、作成ボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/5ca759ff-dace-c56e-50d5-8a73bbe7cba7.png)

## 変換完了
しばらく待つと、このようにFigmaで作成したデザインをPower Appsに読み込むことができました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/d86b0ce0-1e36-dc64-6a5f-f5baf4fa98e2.png)

ただ、Figmaで作成できるのはあくまでデザインだけなので、ロジックの部分はここから手動で作成していく必要があります。
その内容がFigma側のstep 4に書かれていましたが今回は割愛します。

# まとめ
Figmaでのデザインの作成は試したところ操作に少し癖があるように感じたので、今までPower Appsのキャンバスアプリを作成していた方やFigmaを使ったことがない方は無理にFigmaでデザインをしなくてもいいと思います。

しかしながら、Figmaのデザインは簡単にPower Appsに変換できたので、Figmaでのデザインになれている方にはこちらの機能を使ってどんどんPower Appsのアプリを作っていただきたいなと思います。