Slide 1

Slide 1 text

1 プロダクト開発とFigmaのより良い関係を求めて 2019/11/02 Takanori Oki Copyright © 2019 FOLIO, Ltd. All Rights Reserved.

Slide 2

Slide 2 text

目次 2 • Figmaって何? • Figmaの外部連携3つの機能 • 実際どうやって使う? • まとめ

Slide 3

Slide 3 text

自己紹介 3

Slide 4

Slide 4 text

自己紹介 4 • 株式会社FOLIO フロントエンジニア • 普段はReact、Nuxt.jsでアプリケーションを作ってる • 趣味でデザインをしてる(Web、紙) • Figmaとウェブフォントが好き • 好きなフォントは源柔ゴシック、新ゴ、Futura

Slide 5

Slide 5 text

株式会社FOLIO 5 • 投資サービスを運営している会社 • フロントエンドはReact / Redux / Flow / CSS Modules • バックエンドはScalaでマイクロサービス • LINE Financial株式会社と共同で「LINEスマート投資」を運営

Slide 6

Slide 6 text

Figmaって何? 6

Slide 7

Slide 7 text

「Figma デザイン」で検索! 7 Figmaって何?

Slide 8

Slide 8 text

8 Figmaって何? • Webベースのデザインツール(ほぼスケッチ) • オンラインで共同編集 • プロトタイピング • バージョン管理 • コンポーネント管理(Organizationプランが必要) • やり方工夫すれば紙のデザインもできる

Slide 9

Slide 9 text

やり方工夫すれば紙のデザインもできる (僕の名刺はFigmaでデザインしました) 9 Figmaって何?

Slide 10

Slide 10 text

Web 10 Figmaって何?

Slide 11

Slide 11 text

11 Figmaって何? Linkable Discoverable Safe

Slide 12

Slide 12 text

12 FOLIOがFigmaを導入した理由 • 関係者の数が多く社内外の人にデザインを共有する場面が多い • 一度リンクを共有すれば常に最新のデザインが確認できる • Team Libraryを使ってデザインを統一したい • Sketchでもできるけど管理がめんどくさい • Abstractでのコンフリクト解決がつらい • マージしたくない

Slide 13

Slide 13 text

Figmaの外部連携機能 13

Slide 14

Slide 14 text

REST APIs Plugins Live Embed 14 Figmaの外部連携機能

Slide 15

Slide 15 text

REST APIs 15

Slide 16

Slide 16 text

16 REST APIs 概要 • 無料で使えるFigmaのWeb API • 基本Read Only • Nodeやコメント、ユーザ情報などを取得できる • 画像の書き出しはできる • Nodeの追加や削除などはできない • OAuth 2ログインがサポートされてる

Slide 17

Slide 17 text

17 REST APIsのメリット • 開発がしやすい • ごく普通のAPIなので取り扱いが楽 • 便利なTypeScript wrapperがある • https://github.com/jongold/figma-js • 安全 • 読み取りしかできないのでデザインデータを破壊するリスクがない • OAuth 2ログインできる

Slide 18

Slide 18 text

スペルチェッカー Reactコンポーネント生成 スタイルガイド生成 18 REST APIsのユースケース例

Slide 19

Slide 19 text

Plugins 19

Slide 20

Slide 20 text

Pluginsの概要 20 • Figmaアプリ内で使える拡張機能 • TypeScriptとHTML/CSSで開発できる • 普通のWebアプリ開発とほとんど変わらないので、APIを公開してる
 様々なサービスと連携できる • Nodeの追加削除やコメントなど、ほぼすべての機能にアクセスできる • 一般公開できる(審査が必要) • もちろん公開しなくても使える

Slide 21

Slide 21 text

Pluginsの仕組み 21 postMessage Sandbox JavaScript Code • Browser APIにアクセスできない • Figmaの機能にアクセスできる iframe UI • Browser APIにアクセスできる • Figmaの機能にアクセスできない

Slide 22

Slide 22 text

Figmaのアプリから使えるので わかりやすい 公開して使ってもらうことができる 22 Pluginsのメリット

Slide 23

Slide 23 text

可能性は無限大 23 Pluginsのユースケース カラーパレット チケット自動生成 ダミーテキスト コメント機能の拡張 アクセシビリティ 独自のSlack連携

Slide 24

Slide 24 text

サンプルコード 24

Slide 25

Slide 25 text

公式サンプル https://github.com/figma/plugin-samples 25 Plugins

Slide 26

Slide 26 text

Live Embed 26

Slide 27

Slide 27 text

Live Embedの概要 27 • Figmaをiframeで埋め込む • メリット • iframeなので変更が同期される • デメリット • iframeなので読み込みに時間がかかる、1ページにつき1つが限界 • iframeが展開できる環境じゃないと使えない

Slide 28

Slide 28 text

JIRAチケットなどに添付する JIRAやTrelloにはLive Embed用拡張機能がある 28 Live Embedのユースケース

Slide 29

Slide 29 text

実際のユースケース 29

Slide 30

Slide 30 text

WIP 30

Slide 31

Slide 31 text

31 プロダクト開発で困りがちなこと • デザインのJIRAチケットに貼ってあるスクショが古い • ページごとに手作業でチケット作るのめんどくさい • 外部の人にURL共有するのめんどくさい • etc...

Slide 32

Slide 32 text

不毛なタスクを 技術で撲滅したい! 32 プロダクト開発で困りがちなこと

Slide 33

Slide 33 text

1つの業務に必要な プロセス・知識を ツールの中に押し込めてしまう 33 ツール開発で考えたい視点

Slide 34

Slide 34 text

誰でもこのボタン押したらいける!って感じにする 34 ツール開発で考えたい視点

Slide 35

Slide 35 text

組織の中でFigmaと周辺機能を 活用するために考えること 35

Slide 36

Slide 36 text

使う人を意識する 36 活用するために考えること

Slide 37

Slide 37 text

コミュニケーションが発生する場所で
 無駄なタスクや摩擦が起こりやすい 37 活用するために考えること そこをPluginやAPIを使ったツールで
 改善していく

Slide 38

Slide 38 text

38 FOLIOの場合 実装 コンプラチェック Slackで共有 デザインデータ

Slide 39

Slide 39 text

まとめ 39

Slide 40

Slide 40 text

40 まとめ PluginやWeb APIを活用して 煩雑な作業を効率化しよう! 組織内でうまく使われるように 他職種を巻き込もう!

Slide 41

Slide 41 text

おわり! 41