README.ko.mdโข13 kB
<div align="center">
<img src="docs/images/figma-flutter-mcp.png" alt="ํ
๋ง ์ค์ ์์" style="max-width: 100%; height: auto;">
<br>
<h1>Figma to Flutter MCP ์๋ฒ</h1>
<h3>Figma์ ํ๋ถํ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ฉ ์์ด์ ํธ์์ ํ์ฉํ์ธ์.<br/>Flutter ๋ฐฉ์์ผ๋ก ๋์์ธ์ ๊ตฌํํ์ธ์!</h3>
<a href="https://npmcharts.com/compare/figma-flutter-mcp?interval=30">
<img alt="์ฃผ๊ฐ ๋ค์ด๋ก๋" src="https://img.shields.io/npm/dm/figma-flutter-mcp.svg">
</a>
<a href="https://github.com/mhmzdev/figma-flutter-mcp/blob/main/LICENSE">
<img alt="MIT ๋ผ์ด์ ์ค" src="https://img.shields.io/github/license/mhmzdev/figma-flutter-mcp" />
</a>
<a href="https://twitter.com/mhmzdev">
<img alt="Twitter" src="https://img.shields.io/twitter/url?url=https%3A%2F%2Fx.com%2Fmhmzdev&label=%40mhmzdev" />
</a>
</div>
<br>
Cursor(์ปค์) ๋๋ ๊ธฐํ AI ๊ธฐ๋ฐ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ [MCP ์๋ฒ](https://modelcontextprotocol.io/)๋ฅผ ํตํด Figma์ ํ๋ถํ ํ์ผ, ๋ฐ์ดํฐ, ์ปดํฌ๋ํธ ๋ฑ์ ํ์ฉํ์ธ์.
## ๐ ๋ชฉ์ฐจ
- [๐ฆ Observable Flutter #70](#-observable-flutter-70)
- [๐ฅ ์งง์ ๋น๋์ค ๋ฐ๋ชจ](#-์งง์-๋น๋์ค-๋ฐ๋ชจ)
- [๐ ์์ํ๊ธฐ](#-์์ํ๊ธฐ)
- [๐ ์๋ ๋ฐฉ์](#-์๋-๋ฐฉ์--์์ธํ-๋ณด๊ธฐ)
- [๐ ๏ธ ์ฌ์ฉ๋ฒ](#-์ฌ์ฉ๋ฒ)
- [๐ Figma API ํค](#-figma-api-ํค)
- [๐น Cursor์์ MCP ์ค์ ](#-cursor์์-mcp-์ค์ )
- [๐ ๋ก์ปฌ ํ
์คํธ ๋น ๋ฅธ ์์](#-๋ก์ปฌ-ํ
์คํธ-๋น ๋ฅธ-์์)
- [๐งฑ ๊ธฐ๋ณธ ์ํฌํ๋ก์ฐ](#-๊ธฐ๋ณธ-์ํฌํ๋ก์ฐ)
- [๐ค AI ์ฝ๋ฉ ์์ด์ ํธ ๋์๋ง](#-ai-์ฝ๋ฉ-์์ด์ ํธ-๋์๋ง)
- [โ ๏ธ SVG ์์
์ด ํ๋ฉด ์์ฑ์์ ์๋ํ์ง ์๋ ๊ฒฝ์ฐ](#-svg-์์
์ด-ํ๋ฉด-์์ฑ์์-์๋ํ์ง-์๋-๊ฒฝ์ฐ)
- [๐งฐ MCP ๋๊ตฌ](#-mcp-๋๊ตฌ)
- [โ ๏ธ ๊ณ ์ง์ฌํญ](#-๊ณ ์ง์ฌํญ)
- [๐๐ผ ๊ฐ์ฌ์ ๋ง](#-๊ฐ์ฌ์-๋ง)
- [๐งฑ ๊ธฐํ ํ๋ ์์ํฌ](#-๊ธฐํ-ํ๋ ์์ํฌ)
- [๐ ๋ผ์ด์ ์ค](#-๋ผ์ด์ ์ค)
- [๐โโ๏ธ ์์ฑ์](#-์์ฑ์)
- [Muhammad Hamza](#muhammad-hamza)
## ๐ฆ Observable Flutter #70
ํฅ์๋ ์ค๋ช
๊ณผ ๋ฐ๋ชจ์ ํจ๊ป Observable Flutter์ ์๊ฐ๋์์ต๋๋ค:
<a href="https://www.youtube.com/live/d7qrvytOxSA?si=ESY8hPJpQm_OY4Ye">
<img src="https://i.ytimg.com/vi/d7qrvytOxSA/hq720.jpg?sqp=-oaymwEnCNAFEJQDSFryq4qpAxkIARUAAIhCGAHYAQHiAQoIGBACGAY4AUAB&rs=AOn4CLAtjlrlbNDcV_MQ-_MHJN3KAgwpKw" alt="Observable Flutter Figma to Flutter MCP" style="max-width: 100%; height: 300px;">
</a>
## ๐ฅ ์งง์ ๋น๋์ค ๋ฐ๋ชจ
Figma Flutter MCP์ ๊ฑฐ์ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ค์ Figma ๋์์ธ์ผ๋ก ์์ฐํ์ต๋๋ค.
- ์์ด: https://youtu.be/lJlfOfpl2sI
- ์ฐ๋ฅด๋/ํ๋: https://youtu.be/mepPWpIZ61M
## ๐ [์์ํ๊ธฐ](docs/getting-started.md)
์์ธํ ์์ ๊ฐ์ด๋๋ [getting started](docs/getting-started.md) ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ๊ฑฐ๋, ๋น ๋ฅด๊ฒ ํ์ธํ๋ ค๋ฉด [๋ฐ๋ชจ ์์](https://youtu.be/lJlfOfpl2sI)์ ๋ณด์ธ์. ์ฒซ ๋ฆด๋ฆฌ์ค์ด๋ฏ๋ก ๊ฐ์ ์ ์ฌ์ง๊ฐ ๋ง์ต๋๋ค. ๋ฌด์์ ๊ฐ์ ํ๊ฑฐ๋ ์์
ํ ์ ์๋์ง ๋ณด๋ ค๋ฉด [issues](https://github.com/mhmzdev/figma-flutter-mcp/issues)๋ฅผ ํ์ธํด ์ฃผ์ธ์.
## ๐ ์๋ ๋ฐฉ์ | [์์ธํ ๋ณด๊ธฐ](docs/figma-flutter-mcp.md)
1. [์ปดํฌ๋ํธ/์์ ฏ](src/extractors/components/)
- โ
Figma ๋
ธ๋ ๋ฐ์ดํฐ ์ถ์ถ: ๋ ์ด์์, ์คํ์ผ, ํฌ๊ธฐ, ์์, ํ
์คํธ ์ฝํ
์ธ ๋ฑ
- โ
๊ตฌ์กฐ ๋ถ์: ์์ ์์, ์ค์ฒฉ ์ปดํฌ๋ํธ, ์๊ฐ์ ์ค์๋
- โ
๊ฐ์ด๋ ์ ๊ณต: Flutter ์์ ฏ ๋ฐ ๊ตฌํ ํจํด ์ ์
- โ ์ค์ Flutter ์ฝ๋ ํ์ผ์ ์์ฑํ์ง ์์
2. [์คํฌ๋ฆฐ](src/extractors/screens/)
- โ
์คํฌ๋ฆฐ ๋ฉํ๋ฐ์ดํฐ ์ถ์ถ: ๊ธฐ๊ธฐ ์ ํ, ๋ฐฉํฅ, ํฌ๊ธฐ
- โ
์น์
์๋ณ: ํค๋, ํธํฐ, ๋ด๋น๊ฒ์ด์
, ์ฝํ
์ธ ์์ญ
- โ
๋ด๋น๊ฒ์ด์
๋ถ์: ํญ ๋ฐ, ์ฑ ๋ฐ, ๋๋ก์ด, ๋ด๋น๊ฒ์ด์
์์
- โ
Scaffold ๊ตฌ์ฑ ๊ฐ์ด๋: Flutter ์คํฌ๋ฆฐ ๊ตฌ์กฐ ์ ์
- โ ์ค์ Flutter ์คํฌ๋ฆฐ์ ์์ฑํ์ง ์์
์ด ๋๊ตฌ๋ AI๊ฐ Flutter ์ฝ๋๋ฅผ ์์ฑํ๋๋ก ๋๋ ์ญํ ์
๋๋ค. ์ฆ, ํ๋กฌํํธ๋ฅผ ๋ ์ ์์ฑํ ์๋ก ๋ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
## ๐ ๏ธ ์ฌ์ฉ๋ฒ
๋ค์ ๋จ๊ณ๋ ์ต์ํ์ ์ฌ์ฉ ๋ฐ ์ค์ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค:
### ๐ Figma API ํค
์ด ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด Figma ์ก์ธ์ค ํ ํฐ์ด ํ์ํฉ๋๋ค. Figma API ์ก์ธ์ค ํ ํฐ ์์ฑ ๋ฐฉ๋ฒ์ [์ฌ๊ธฐ](https://help.figma.com/hc/en-us/articles/8085703771159-Manage-personal-access-tokens)์์ ํ์ธํ ์ ์์ต๋๋ค.
### ๐น Cursor์์ MCP ์ค์
FIGMA API KEY๊ฐ ์ค๋น๋๋ฉด, Cursor์์ MCP๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํฉ๋๋ค:
1. CMD + Shift + P (Windows๋ Ctrl)
2. "Open MCP Settings" ์
๋ ฅ
3. "Add new MCP" ํด๋ฆญ
4. ์๋ JSON ๊ฐ์ฒด๋ฅผ ๋ถ์ฌ๋ฃ๊ธฐ
#### MacOS/Linux
```
{
"mcpServers": {
"Figma Flutter MCP": {
"command": "npx",
"args": ["-y", "figma-flutter-mcp", "--figma-api-key=YOUR-API-KEY", "--stdio"]
}
}
}
```
#### Windows
```
{
"mcpServers": {
"Figma Flutter MCP": {
"command": "cmd",
"args": ["/c", "npx", "-y", "figma-flutter-mcp", "--figma-api-key=YOUR-API-KEY", "--stdio"]
}
}
}
```
> ์ฐธ๊ณ : ์ด MCP๋ฅผ `npm` ํจํค์ง๋ก ์ค์นํ๋ค๋ฉด ์ต์ ๋ฒ์ ์ ์ ์งํ์ธ์. ๋๋๋ก ์ด์ ๋ฒ์ ์ด ์บ์๋์ด "๋๊ตฌ ํธ์ถ์ ์ฌ์ฉํ ์ ์์" ๋๋ "Figma API ํค ์ค์ ์ด ์๋ํ์ง ์์" ๊ฐ์ ์ค๋ฅ๊ฐ ๊ณ์ ๋ฐ์ํ ์ ์์ต๋๋ค.
### ๐ ๋ก์ปฌ ํ
์คํธ ๋น ๋ฅธ ์์
๋ก์ปฌ ์ค์ ์, ์ฌ๋ฌ๋ถ์ ๋ก์ปฌ ์๋ฒ์ ๋ฒ์ ์ด ๋๊ธฐํ๋์ด ์๋์ง ํ์ธํ์ธ์. ๊ฐ๋ `npm i`๊ฐ ์ ์ญ์ผ๋ก ์๋ฒ๋ฅผ ์ค์นํ์ฌ ๋ก์ปฌ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฎ์ด์จ ์
๋ฐ์ดํธ๊ฐ ๋ฐ์๋์ง ์์ ์ ์์ต๋๋ค.
#### 0. ์ ํ ์กฐ๊ฑด(Prerequisites)
- Node.js 18+
- Figma API ํค(์ก์ธ์ค ํ ํฐ)
- MCP๋ฅผ ์ง์ํ๋ Cursor AI IDE
- Flutter SDK
#### 1. ๋ ํฌ์งํ ๋ฆฌ ํด๋ก
```
# ํ๋ก์ ํธ ํด๋ก ๋๋ ๋ค์ด๋ก๋
git clone <your-repo-url> figma-flutter-mcp
cd figma-flutter-mcp
# ์์กด์ฑ ์ค์น
npm install
```
#### 2. ์ค์
`.env`๋ฅผ ์ฌ์ฉํด ๋ค์ํ ๊ฐ์ ์ค์ ํ ์ ์์ต๋๋ค. [.env.example](.env.example)๋ฅผ ์ฐธ๊ณ ํ์ธ์.
#### MacOS/Linux
```
{
"mcpServers": {
"figma-flutter-mcp": {
"command": "node",
"args": [
"/Path/to/figma-flutter-mcp/dist/server.mjs",
"--figma-api-key=YOUR_API_KEY",
"--stdio"
]
}
}
}
```
#### Windows
```
{
"mcpServers": {
"figma-flutter-mcp": {
"command": "node",
"args": [
"/Path/to/figma-flutter-mcp/dist/server.mjs",
"--figma-api-key=YOUR_API_KEY",
"--stdio"
]
}
}
}
```
> ์ฐธ๊ณ : ์ JSON์ ํ์ฌ ํ๋ก์ ํธ์์๋ง ์ฌ์ฉํ๋ ค๋ฉด `.cursor-mcp/config.json`์ ์ค์ ํ์ธ์. ๋จ, API_KEY๊ฐ ํฌํจ๋๋ฏ๋ก ๋ฐ๋์ `.gitignore`์ ์ถ๊ฐํ์ฌ ๋ฒ์ ์ ํฌํจ๋์ง ์๋๋ก ํ์ธ์.
#### 3. ๋น๋ & ์คํ
```
# ๊ฐ๋ฐ ๋ชจ๋(์๋ ์ฌ์์)
npm run dev
# ํ๋ก๋์
๋ชจ๋
npm run build
```
์ด์ MCP ์ค์ ์์ ์๋ฒ๊ฐ ์คํ ์ค์ธ์ง, ๋๊ตฌ๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ์ง ํ์ธํ ์ ์์ต๋๋ค.
## ๐งฑ ๊ธฐ๋ณธ ์ํฌํ๋ก์ฐ
### ๐ค AI ์ฝ๋ฉ ์์ด์ ํธ ๋์๋ง
๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ์ํด ์ฌ์ฉ ์ค์ธ AI ์ฝ๋ฉ ์์ด์ ํธ์ ๋ง์ถฐ ๋ค์ ํ์ผ์ ๋ช ๊ฐ์ง ์ง์นจ์ ์ค์ ํ ์ ์์ต๋๋ค:
- Cursor: `.cursor/rules/fluttering.mdc`
- Claude: `CLAUDE.md`
- Gemini CLI: `GEMINI.md`
์ด๋ ๊ฒ ํ๋ฉด AI ์์ด์ ํธ๊ฐ MCP ์ถ๋ ฅ๋ฌผ์ ํ์ฉํด Flutter ์ฝ๋๊ฐ ํ๋ก์ ํธ ์๊ตฌ ์ฌํญ๊ณผ ๊ตฌ์กฐ์ ๋ง๋๋ก ๋ณด์ฅํฉ๋๋ค. ์ ๊ฐ ํ
์คํธ์ ์ฌ์ฉํ [Cursor ๊ท์น ์์](docs/cursor_rules_example.md)๋ ์ฐธ๊ณ ํด ๋ณด์ธ์.
1. **ํ
๋ง & ํ์ดํฌ๊ทธ๋ํผ ์ค์ **: ๊ฐ์ฅ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ Figma์ ํ
๋ง ์์๊ณผ ํ์ดํฌ๊ทธ๋ํผ ์ํ์ด ์๋ ๋ ๊ฐ์ ํ๋ ์์ ๋๋ ๊ฒ์
๋๋ค. ์์:


- Figma ๋ฐ์คํฌํฑ: ํ๋ ์ ์ ํ ํ CMD + L
- Figma ์น: ํ๋ ์ ์ ํ ํ URL ๋ณต์ฌ
> ๐ก ํํธ: ์ ํจํ URL์๋ FILE ID์ NODE ID ํ๋ผ๋ฏธํฐ๊ฐ ํฌํจ๋ฉ๋๋ค.
```
"<figma_link>์์ Flutter ํ
๋ง๋ฅผ ์ค์ ํ์ธ์. Colors์ Typography๋ฅผ ํฌํจํฉ๋๋ค."
```
2. **์์ ฏ ์์ฑ**: ๊ฐ์ฅ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ Figma์ COMPONENTS๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค. ์์:

์ด ์์๋ 8๊ฐ์ ๋ณํ(variants)์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ณํ์ ์ฌ์ฉํ ์ง ์ฌ๋ถ๋ฅผ ํ๋กฌํํธ๋ก ์ง์ ํ ์ ์์ต๋๋ค.
```
"์ด ์์ ฏ์ Flutter๋ก ์์ฑํ์ธ์ <figma_link>. ์ง๊ธ์ 2๊ฐ์ ๋ณํ๋ง ์ค์ ํ๊ณ , ์ฝ๋ ๊ฐ๋
์ฑ์ ์ํด ํ์ผ์ ๋ ์์ ๋จ์๋ก ๋๋ ์ฃผ์ธ์."
```
๋ง์ฝ Figma์ COMPONENTS๊ฐ ์๋ค๋ฉด, FRAME์ ์ฌ์ฉํด๋ ๋ฉ๋๋ค. ์ด ํ๋ ์์ ์์ ฏ์ผ๋ก ๋ง๋ค๊ณ ์ถ๋ค๊ณ ์๋ ค์ฃผ๋ฉด ๋๋จธ์ง๋ ๋๊ตฌ๊ฐ ์ฒ๋ฆฌํฉ๋๋ค.
3. **์ ์ฒด ์คํฌ๋ฆฐ ์์ฑ**: IMAGE ASSETS๊ฐ ์์ผ๋ฉด `assets/`์ ๋ด๋ณด๋ด๊ณ `pubspec.yaml`์ ์ถ๊ฐํฉ๋๋ค.
```
"์ด Figma ๋งํฌ๋ก ์ ์ฒด ์คํฌ๋ฆฐ์ ์์ฑํ์ธ์ <figma_link>. ์ฝ๋ ๊ฐ๋
์ฑ์ ์ํด ํ์ผ์ ๋ ์์ ๋จ์๋ก ๋๋ ์ฃผ์ธ์."
```
4. **์์
๋ด๋ณด๋ด๊ธฐ**:
- ์ด๋ฏธ์ง ์์
: ์คํฌ๋ฆฐ ์์ฑ ์ ์๋์ผ๋ก ์๋ํฉ๋๋ค.
```
"Figma์์ ์ด ์ด๋ฏธ์ง ์์
์ ๋ด๋ณด๋ด์ธ์ <figma_link>"
```
- SVG ์์
: ์๋์ผ๋ก ์๋ํ์ง ์์ต๋๋ค. ์๋ ๋ด์ฉ์ ์ฐธ๊ณ ํ์ธ์.
```
"Figma์์ ์ด๊ฒ์ SVG ์์
์ผ๋ก ๋ด๋ณด๋ด์ธ์: <figma_link>"
```
#### โ ๏ธ SVG ์์
์ด ํ๋ฉด ์์ฑ์์ ์๋ํ์ง ์๋ ๊ฒฝ์ฐ
Figma์์ ๋ฒกํฐ์๋ ์์ด์ฝ๊ณผ ํ ๋๊ตฌ๋ก ๋ง๋ ๋ํ์ด ํฌํจ๋์ด ์์ด ๋๋ ๋ด๋ณด๋ด๊ธฐ ์ ์๋ํ์ง ์์ ๋
ธ๋๋ฅผ ํจ๊ป ๋ด๋ณด๋ผ ์ ์์ต๋๋ค. SVG๋ ๋ณ๋๋ก ๋ด๋ณด๋ด๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ์ด ๊ณผ์ ์ ์ฌ์ ํ `assets/svg/` ๋๋ ํ ๋ฆฌ์ ์์
์ ์ ์ฅํ๊ณ `pubspec.yaml`์ ์
๋ฐ์ดํธํด ์ฃผ๊ธฐ ๋๋ฌธ์ ๋ง์ ์๊ฐ์ ์ ์ฝํด ์ค๋๋ค.
## ๐งฐ MCP ๋๊ตฌ
์์
๊ด๋ จ:
- `export_flutter_assets`: ์คํฌ๋ฆฐ ์์ฑ๊ณผ ํจ๊ป ์ฌ์ฉํ๋ ๊ฐ๋ณ ์ด๋ฏธ์ง ์์
๋๊ตฌ
- `export_svg_flutter_assets`: SVG ์์
๋ด๋ณด๋ด๊ธฐ ์ ์ฉ ๋๊ตฌ
์์ ฏ ๊ด๋ จ:
- `analyze_figma_component`: Figma์ type=COMPONENT ๋๋ ์ฌ์ฉ์ ์ง์ FRAME ๋ถ์
- `list_component_variants`: Figma์ type=COMPONENT_SET(์์ ฏ ๋ณํ) ๋ชฉ๋ก
- `inspect_component_structure`: ์ค์ฒฉ๋ COMPONENTS ๋๋ FRAMES ๊ตฌ์กฐ ๋ณด๊ธฐ
์คํฌ๋ฆฐ ๊ด๋ จ:
- `analyze_full_screen`: type=FRAME ์ ์ฒด ์คํฌ๋ฆฐ ๋ถ์ ๋ฐ ์์
(์ด๋ฏธ์ง) ๋ด๋ณด๋ด๊ธฐ
- `inspect_screen_structure`: ๋ ์ด์์ ๋ฐ ํ๋ฉด ๊ตฌํ์ ํ์ํ ์ ๋ณด ํ์ธ
## โ ๏ธ ๊ณ ์ง์ฌํญ
- **Figma ๋์์ธ**: Figma API๋ก ๋
ธ๋์ ์์ธ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์, ์๋ ๋ ์ด์์, ํ๋ ์ ์ฌ์ฉ(๊ทธ๋ฃน๋ณด๋ค), ์ ๋ฐ์ ์ผ๊ด๋ ์ ๋ ฌ ๋ฑ ๋์์ธ ํ์ง์ด ์ข์์๋ก ๊ฒฐ๊ณผ๊ฐ ์ข์์ง๋๋ค.
- **์ฌ์ฉ ์ฌ๋ก**: ํ์ฌ ๋จ๊ณ์์๋ ํ์ฅ ๊ฐ๋ฅํ ์ฑ ๊ฐ๋ฐ๋ณด๋ค๋ MVP, ์๊ท๋ชจ ์คํ, ์ค๋ช
์ฉ ์์
์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
- **๋ ์ดํธ ๋ฆฌ๋ฐ**: ๊ณผ๋ํ ์ฌ์ฉ์ Figma ๋ ์ดํธ ๋ฆฌ๋ฐ(์: HTTP 429)์ ์ ๋ฐํ ์ ์์ต๋๋ค. ์๋ฒ์๋ ๋ฐฑ์คํ๊ฐ ํฌํจ๋ ์ฌ์๋๊ฐ ์์ง๋ง, Figma ์ ํ์ ์ฐํํ์ง๋ ์์ต๋๋ค. ๋ ์ดํธ ๋ฆฌ๋ฐ์ ๋ง๋๋ฉด ๋ช ๋ถ ๊ธฐ๋ค๋ฆฐ ๋ค ์์ฒญ ๋น๋๋ฅผ ์ค์ด์ธ์.
## ๐๐ผ ๊ฐ์ฌ์ ๋ง
[Graham Lipsman](https://x.com/glipsman)์ [Figma Context MCP](https://github.com/GLips/Figma-Context-MCP)์์ ์๊ฐ์ ๋ฐ์ ๋ค์ ๊ธฐ๋ฅ์ ๋ช
ํํ ์ ๊ณตํ๋ Figma to Flutter MCP๋ฅผ ๊ฐ๋ฐํ๊ฒ ๋์์ต๋๋ค:
- ์์
๋ด๋ณด๋ด๊ธฐ
- ์์ ๋ฐ ํ
๋ง ์ค์
- ์์ ฏ ํธ๋ฆฌ ๋ฐ ์ ์ฒด ํ๋ฉด ๋น๋ฉ
๋ ๋ง์ ๊ธฐ๋ฅ์ด ๊ณง ์ถ๊ฐ๋ ์์ ์
๋๋ค...
## ๐งฑ ๊ธฐํ ํ๋ ์์ํฌ
React, Angular, React Native, Vue ๋๋ ๊ธฐํ ํ๋ ์์ํฌ์ฉ์ผ๋ก ๊ฐ๋ฐํ๊ณ ์ถ๋ค๋ฉด, ์์ธํ ๋ฌธ์์ธ [Figma Framework MCP](docs/figma-framework-mcp.md)๋ฅผ ์ฐธ๊ณ ํด ์์ํ ์ ์์ต๋๋ค. ํด๋น ํ๋ ์์ํฌ๋ณ Figma MCP ์๋ฒ๋ฅผ ์งํ ์ค์ธ ๋ถ๋ค์ ์ฌ๊ธฐ์ ์ ๋ฆฌํด ๋ ์์ ์
๋๋ค.
- ...
- ...
## ๐ ๋ผ์ด์ ์ค
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ ์ค๋ฅผ ๋ฐ๋ฆ
๋๋ค. ์์ธํ ๋ด์ฉ์ [LICENSE](LICENSE.md) ํ์ผ์ ํ์ธํ์ธ์.
## ๐โโ๏ธ ์์ฑ์
#### Muhammad Hamza
[](https://www.linkedin.com/in/mhmzdev)
์ GitHub ํ๋กํ์ ํ๋ก์ฐํ์ฌ ์ต์ ํ๋ก์ ํธ ์
๋ฐ์ดํธ๋ฅผ ๋ฐ์๋ณด์ธ์:
[](https://github.com/mhmzdev)
๋ ํฌ๊ฐ ๋ง์์ ๋์
จ๋ค๋ฉด โญ๋ก ์์ ๋ถํ๋๋ฆฝ๋๋ค!
Copyright (c) 2025 MUHAMMAD HAMZA
---
๋์์ธ๊ณผ ์ฝ๋๋ฅผ ์๋ ๋ชจ๋ ๋์์ด๋์ ๊ฐ๋ฐ์๋ฅผ ์ํด โค๏ธ๋ก ๋ง๋ค์์ต๋๋ค.