見出し画像

Figma APIを使って活動履歴をグラフ化した話

このnoteは2020年6月7日に開催された「なごやデザイナーLT会 Vol.3.5」で発表した資料と台本をまとめたものです。

資料だけを見たい方はこちらからどうぞ。

自己紹介

自己紹介

見知った顔の多いこの会ですが、自己紹介から。Increments株式会社で働いている綿貫佳祐です。

主にはQiita Jobsというエンジニア採用サービスを担当している他、QiitaやQiita Team……まあ、Incrementsのサービスは全部携わっています笑

GitHubの芝って見たことある?

GitHubの芝

早速本題に入って行くんですが、みなさんGitHubの「芝」って見たことありますか?

芝のスクショ

これです。正しくはContributions calendarって言うんですが、書いたコードの量や頻度が視覚化されたコンテンツです。

これが絶対の指標ってこともないんですが、日々どれくらい開発しているかをざっくり把握はできるんですね。

それで、デザイナー版の芝もあったら良いなーってずっと思ってたんですよ。多分2年くらいは思ってました笑

Figma APIって知ってる?

画像4

そしてやっとタイトルのFigma APIの話なんですが、こちらも知ってるとか使ったことある人いますか?

自分の周りだとあんまり使い込んでる人はいないかなーと思うんですが、結構色々やれるんですよ。

画像5

例えばコマンドラインからFigmaデータにコメントを入れる、とかも一応可能。

いけそうな気がする

で、APIのページを色々読んでたら、「コレ、Figmaの活動履歴で芝生やせるんじゃね?」って思ったので作ってみました。こんな感じです。

自分のサイト

概要

Figmaのデータの中の履歴

全体像をかいつまんで説明すると、Figmaのデータって有料プランなら過去のバージョン履歴が全て保存されているんですね。

created_at取得

APIを叩いて取得出来る情報のうち、保存された時間があります。

グラフ作成の流れ

なので僕のサイトに訪れるとFigma APIを叩いてデータ取得して加工してグラフ化する……とそういう仕組みです。

詳細

Figmaのデータ構造

もう少し詳細に話していきます。Figmaのデータの構造はTeam → Project → Fileと階層になっていて、さらに各Fileの中にVersion Historyが埋め込まれています。

データ取得の流れ-2

Figma APIでもこの流れに沿ってデータを取得するイメージで、Team情報のエンドポイントからAPIにアクセスするとProjectの一覧が手に入ります。この中にはProject名やidなどが格納されています。

データ取得の流れ-1

そしてidを使って各ProjectのエンドポイントからAPIにアクセス。すると今度はFile一覧が手に入る。

データ取得の流れ

後はもうお分かりかもしれませんが手に入れたFile情報からVersion Historyを取得するわけです。

流れのおさらい

自分のTeam IDさえあればProject→File→Version Historyと段階を踏むことで全ての活動履歴を取得が出来るので、あとはそれを良い感じに加工してスタイリングすれば完成って寸法です。

おわりに

実際のコード

かなり駆け足になってしまいましたが作ったものについては以上です。

自分は実装をReactでやっていますが、ぶっちゃけfetchとループ処理くらいしかしていないので言語とかフレーム問わず作れるんじゃないかなと思います。

目標はUIライブラリとしてnpmで公開することです、乞うご期待!笑

おわり

ということで発表を終わります、ありがとうございました。

最後まで読んでいただいてありがとうございます!