使用Figma创建的设计与React应用程序进行集成【入门】

首先

这次我们将解释如何使用AWS Amplify Studio将在Figma中创建的设计与React应用程序进行集成。

「我从来没有碰过AWS!连React也没碰过呢!」即使是那些没有接触过这些的人,也可以轻松地阅读和理解,希望你能看一下。

目标成果物 – mù guǒ wù

    • Figmaで作成したカードコンポーネントのデザインをReactアプリ上で表示させる

 

    Figmaで作成したボタンコンポーネントでクリックイベントを試す
スクリーンショット 2022-07-23 13.00.13.jpg
スクリーンショット 2022-07-23 13.16.37.jpg
スクリーンショット 2022-07-23 13.30.33.jpg

这篇文章要做的事情

    • AWS Amplify Studioの解説

 

    • Figmaでのデザイン作成とコードの自動生成方法の解説

 

    Reactアプリとの連携

这篇文章针对的对象

    • AWSの初心者だけどFigmaで作成したデザインをReactアプリと連携してみたい人

 

    将来的に流行りそうな技術をサクッと試してみたい人

AWS Amplify Studio(亚马逊云服务 Amplify Studio)

AWS Amplify Studio是什么

我引用了公式文件。

Amplify Studio会自动将在Figma上设计的稿件转换成人类可读的React组件代码。此外,Amplify Studio还允许开发者将生成的组件直观地连接到应用程序的后端数据。

通过使用Amplify Studio,在设计师使用Figama创建的设计中,自动将其转换为React代码,开发者可以利用生成的代码在React应用程序中实现Figama创建的设计界面。

使用AWS Amplify Studio,实现未来和利益。

我认为在实际业务中的全面应用还需要一些时间,但我推测未来的应用开发可能会按照以下步骤进行。

    • デザイナーがFigmaでデザインを作成

 

    • デザインをAmplify Studioを使ってReactコンポーネントのコードを生成しエンジニアに共有

 

    エンジニアは共有されたコードをアプリに反映

这一结果使得工程师们可以减少在用户界面实现上所花费的成本,从而能够专注于功能和逻辑方面的开发。

我們將從下一章開始,實際上使用Figma和Amplify Studio來開發React應用程式。

启动AWS Amplify Studio

请先创建一个AWS账户并进行操作。(即使是AWS初学者,也可以轻松跟随步骤进行)

我们将按照官方文档的参考进行实施步骤。

 

连接到Amplify

首先我們要訪問官方文件。

 

点击公式文件中的“使用 Amplify Hosting 进行部署”。

スクリーンショット 2022-07-23 8.34.33.jpg

在打开的屏幕上点击“连接到GitHub”,与GitHub进行合作。

请您在继续之前先创建一个GitHub账户。

スクリーンショット 2022-07-23 8.36.32.jpg

部署

一旦完成GitHub的链接后,此页面将打开,然后输入应用程序的名称(任意)。

当输入完成后,点击创建新角色。

スクリーンショット 2022-07-23 8.38.41.jpg

由于项目已自动选择,因此直接点击右下角的下一步:访问权限。

スクリーンショット 2022-07-23 8.40.56.jpg

请点击标签并继续到下一步。

スクリーンショット 2022-07-23 8.42.39.jpg

在标签添加页面上,您无需输入任何信息即可进入下一步:确认。

スクリーンショット 2022-07-23 8.43.28.jpg

最后会出现确认页面,请点击创建角色。

スクリーンショット 2022-07-23 8.45.11.jpg

由于通过这个步骤已经创建了角色,现在返回到应用程序部署界面并点击更新按钮。

因此,現在可以選擇剛剛創建的角色,請保存選擇並點擊部署。

スクリーンショット 2022-07-23 8.49.03.jpg
スクリーンショット 2022-07-23 9.05.42.jpg

通过这个操作,应用部署已经完成了。

スクリーンショット 2022-07-23 9.07.11.jpg

启动AWS Amplify Studio

接下来,切换到后端环境标签,并点击启动工作室。

对于还未构建的人们,请点击显示的 “开始” 按钮后进行操作。

スクリーンショット 2022-07-23 9.10.27.jpg

您可以确认AWS Amplify Studio的界面已经显示出来了。

スクリーンショット 2022-07-23 9.12.03.jpg

通过左侧菜单选择“数据”,您可以确认已创建了“主页数据”。

请直接点击右上方的「保存并部署」按钮。

スクリーンショット 2022-07-23 9.16.50.jpg

出现正在部署的画面,请稍等片刻。

スクリーンショット 2022-07-23 9.19.37.jpg

AWS Amplify Studio和Figma的整合配合。

首先,我们将开始将之前准备的AWS Amplify Studio和Figma进行协作。

从左侧菜单选择UI库,然后点击开始。

スクリーンショット 2022-07-23 9.22.04.jpg
スクリーンショット 2022-07-23 9.52.13.jpg

点击①以复制AWS Amplify UI的模板套件。

请注意,尚未注册 Figma 账户的人,请提前创建一个账户(免费)。

スクリーンショット 2022-07-23 9.52.54.jpg

然后,您可以启动Figma应用程序并确认模板已加载。

スクリーンショット 2022-07-23 9.57.13.jpg

点击Figma右上方的Share按钮,然后点击Copylink来复制链接。

将复制的链接粘贴到刚才的②中,并点击“继续”。

スクリーンショット 2022-07-23 10.02.31.jpg

通过以上步骤,Figma和Amplify Studio已经成功连接。

使用Figma进行设计并在Amplify Studio生成代码。

创建一个卡片组件

首先,点击Figma中的以下部分,创建一个300×200(可选)的画框。

我们将在这个300×200的框架上创建卡片组件。

スクリーンショット 2022-07-23 10.18.13.jpg

我会随意地搜索图像,并将其放在框架的顶部。(卡片的图像部分)

我們目前的圖片是固定的,但之後可以動態更改設定。

スクリーンショット 2022-07-23 10.20.47.jpg

请在标题和正文中填入内容。

スクリーンショット 2022-07-23 10.22.21.jpg

然后选择创建的Frame,右键点击并选择”创建组件”。

スクリーンショット 2022-07-23 10.23.39.jpg

用这个方法,你可以在Figma上创建卡片组件。

我們需要點擊名稱部分兩下,然後將其更改為「FigmaCard」。

这个组件也适用于React应用程序。

スクリーンショット 2022-07-23 10.25.44.jpg

将创建的组件反映到AWS Amplify Studio中。

为了将当前创建的组件反映到AWS Amplify Studio中,返回到屏幕上,并点击Sync with Figma。

スクリーンショット 2022-07-23 10.36.38.jpg

然后,您可以确认FigmaCard组件已成功创建并显示如下。

スクリーンショット 2022-07-23 10.38.08.jpg

点击右上角的”Accept”按钮,导入创建的FigmaCard组件,然后点击”Save Component”按钮。

你可以确认Components中已经包含了FigmaCard。

スクリーンショット 2022-07-23 10.40.11.jpg

准备将数据放入组件中。

我们要为刚刚创建的FigmaCard组件准备放置的数据。

点击左侧菜单中的”Content”,然后点击”自动生成种子数据”。

スクリーンショット 2022-07-23 11.13.31.jpg

我会创建5个数据片段。

スクリーンショット 2022-07-23 11.14.12.jpg

可以确认已经创建了5条数据。

スクリーンショット 2022-07-23 11.14.46.jpg

通過点击数据表中的行,我们可以将任意的数据输入到地址、图片URL和价格这些字段中。

补充说明,image_url中所放置的图片URL是从Google获取的。

スクリーンショット 2022-07-23 11.18.22.jpg

我还将其他4个数据输入如下。

スクリーンショット 2022-07-23 11.20.45.jpg

数据的准备就完成了。

将准备好的数据与FigmaCard组件进行关联

接下来,我们将把刚刚创建的数据反映到FigmaCard组件中。

回到UI Library的菜单,选择FigmaCard01,然后点击Configure。

スクリーンショット 2022-07-23 11.22.56.jpg

点击Add prop,将Name设为home,Type设为Home。

スクリーンショット 2022-07-23 10.58.30.jpg

当在组件中点击图片时,会出现一个名为”Child properties”的选项,点击”Set prop”,然后将”Prop”设为”src”,”Value”设为”home.image_url”。

通过这个操作,你可以将之前在Content中创建的image_url数据与它关联起来。

スクリーンショット 2022-07-23 10.59.57.jpg

我们同样要设置标题和正文的部分为子属性Child properties。

スクリーンショット 2022-07-23 11.01.43.jpg
スクリーンショット 2022-07-23 11.03.03.jpg

只需一种选择,将上述句子以中文为母语进行改述:
确认设置完整后,可以看到之前输入的数据已经反映在FigmaCard组件上。

スクリーンショット 2022-07-23 11.29.08.jpg

接下来,我们将创建一个Figma组件的集合,并插入5个数据。

スクリーンショット 2022-07-23 11.33.44.jpg

创建收藏时,可以确认将显示出五个组件。

スクリーンショット 2022-07-23 11.34.11.jpg

在这个系列中

    • TypeをGridに設定

 

    カラムを3に設定

关于填充(padding),由于我的环境安装了它会导致错误,所以暂时不安装继续进行。

スクリーンショット 2022-07-23 17.52.46.jpg

确认从获取组件代码中生成代码,并完成创建。

スクリーンショット 2022-07-23 11.40.53.jpg

创建一个React项目,并嵌入此代码。

React应用和Amplify Studio的集成。

搭建React的环境

创建一个React项目。

这次我创建了一个名为aws-amplify-studio-test的项目。

npx create-react-app aws-amplify-studio-test

如果能够创建,可以使用以下命令启动应用程序。

npm start
スクリーンショット 2022-07-23 11.51.52.jpg

我們將把剛才創建的組件放入這個畫面中。

本地环境的设置

首先安装amplify-cli。

npm install -g @aws-amplify/cli

与React应用的集成

如果你已经准备好了,就打开之前的React应用程序,然后输入之前通过“Get component code”确认过的命令来进行连接。

スクリーンショット 2022-07-23 11.40.53.jpg

首先,执行最高级的命令,执行amplify pull。

amplify pull --appId xxxxxxx xxxxxxxxx

然后转到如下画面,点击“是”。

スクリーンショット 2022-07-23 11.58.59.jpg

当 React 应用在终端上提出问题时,请按照下面的方式回答。

スクリーンショット 2022-07-23 12.00.20.jpg

在此之后,当我们查看React应用程序时,将会创建一个名为src/ui-components的目录,表示协作已经完成。

在React应用程序中显示创建的组件。

首先,在刚才的模态框上,点击“初始项目设置”选项卡。

我会按照一种顺序执行命令。

npm install -g @aws-amplify/cli
npm install aws-amplify @aws-amplify/ui-react
スクリーンショット 2022-07-23 12.47.37.jpg

当执行命令后,像步骤2一样使用AmplifyProvider来包装应用程序。

import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";

import Amplify from "aws-amplify";
import "@aws-amplify/ui-react/styles.css";
import { AmplifyProvider } from "@aws-amplify/ui-react";
import awsconfig from "./aws-exports";
Amplify.configure(awsconfig);

const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
  <>
    <AmplifyProvider>
      <React.StrictMode>
        <App />
      </React.StrictMode>
    </AmplifyProvider>
  </>
);

// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();

最后,在APP.js中加载并显示FigmaCard组件。

通过写下以下2~3个描述,可以读取它。

スクリーンショット 2022-07-23 11.40.53.jpg
import logo from "./logo.svg";
import "./App.css";
import { FigmaCard01Collection } from "./ui-components";

function App() {
  return (
    <div className="App">
      <FigmaCard01Collection />
    </div>
  );
}
export default App;

我会启动本地环境。

npm start

当你启动时,可以确认之前创建的组件正在显示。
(应该调整图片尺寸就好了…)

スクリーンショット 2022-07-23 12.56.46.jpg

创建一个按钮组件

接下来,在Figma中创建一个按钮组件,尝试触发点击事件。

设计制作与AWS Amplify Studio的集成与先前相同,因此简要介绍如下。

首先在Figma上创建一个新的按钮设计,然后通过右键点击创建组件。

スクリーンショット 2022-07-23 13.31.56.jpg

然后,您需要在Amplify Studio中点击以下按钮来进行设计协作。

スクリーンショット 2022-07-23 13.32.30.jpg

一旦合作完成后,您需要在Configure中设置如下的label和onClick属性。

在onClick事件中,设置了点击时要执行的动作。

我创建了一个点击事件,当点击时会跳转到Qiita的首页。

スクリーンショット 2022-07-23 13.34.44.jpg

完成以上步骤后,点击”Get component code”并输入之前的命令,将修改内容与React应用程序进行集成。

amplify pull --appId xxxxxxxxxxxx

将App.js进行如下修改。

import logo from "./logo.svg";
import "./App.css";
import { Frame9 } from "./ui-components";

function App() {
  return (
    <div className="App">
      <Frame9 />
    </div>
  );
}

export default App;

当你启动本地环境,你可以确认按钮已显示。

npm start
スクリーンショット 2022-07-23 13.38.13.jpg

点击时,您还可以确认是否转到Qiita的首页。

我来看一下按钮组件的内部内容。

当查看创建的按钮组件(Frame9)的文件时,可以确认它通过props接收label和onClcik。

只显示相关部分

  const { Button, button, overrides, ...rest } = props;
  const OnClick = useNavigateAction({
    target: "_blank",
    type: "url",
    url: "https://qiita.com/",
  });
 return (
   <Text
        children="ボタン"
        onClick={() => {
          OnClick();
        }}
        {...getOverrideProps(overrides, "\u30DC\u30BF\u30F3")}
      ></Text>
   

我试着将 onClick 的部分更改为直接编写的代码,以显示一个警告处理。

 const OnClick = () => {
    alert("クリックしました");
  };

点击按钮后,确认显示了警告提示。

スクリーンショット 2022-07-23 13.42.41.jpg

最后

你觉得怎么样呢?

本次我们使用AWS Amplify Studio,介绍了将Figma的设计与React应用程序中的组件进行协作的步骤。

由於在邏輯方面的結合等方面仍然存在困難,因此我認為將其引入到正式的專案還需要一段時間,但我感受到了其巨大的潛力。

我期待着能在实际工作中进行全面引入的那一天。

如果方便的话,我很高兴您能阅读我撰写的其他各种文章。

 

广告
将在 10 秒后关闭
bannerAds