Upgrade to Pro — share decks privately, control downloads, hide ads and more …

デザインシステム上の画像リソースを
自動エクスポートする / Automate image export from Figma to iOS and Android using figma-export

Yuto Yazaki
September 08, 2022

デザインシステム上の画像リソースを
自動エクスポートする / Automate image export from Figma to iOS and Android using figma-export

Yuto Yazaki

September 08, 2022
Tweet

More Decks by Yuto Yazaki

Other Decks in Programming

Transcript

  1. 3

  2. 今までの画像リソースの管理 6 • プロダクトデザイナーがFigmaでデザインを作成 • エンジニアが画像ファイルに書き出し • Xcode / Android

    Studio へ取り込む Figma上の画像やアイコン達は日々増えていく ※今回はiOSをベースにお話します ↑この部分、地味に考えることが多い...
  3. 3. TemplateなのかOriginalなのか 10 • 単色のアイコンは UIImage.RenderingMode.alwaysTemplate で描画 • アプリ側で任意の色を当てる •

    複数色のアイコンは UIImage.RenderingMode.alwaysOriginal で描画 • 画像をそのまま表示する Templateで描画すると 塗りつぶされる Originalで描画すると 画像がそのまま表示される 1つのリソースで ライト/ダークモード両対応 ライト/ダークモードで 2種類のリソースを用意する
  4. figma-exportとは 14 • コマンドラインツール • https://github.com/RedMadRobot/figma-export • Figmaのcolor, typography, icon,

    imageを書き出して、 Xcode / Android Studioへ取り込むツール • 命名規則や書き出しフォーマットのルールに則って、 Figmaのデザインデータを用意する
  5. figma-export.ymlの設定 16 figma: lightFileId: {figma_file_id} common: icons: figmaFrameName: Icons nameValidateRegexp:

    '^(Lv1_Icon_)(.*)' nameReplaceRegexp: 'icon_$2' useSingleFile: true darkModeSuffix: '-dark' ~~中略~~ ios: xcodeprojPath: 'path/to/.xcodeproj' target: 'target_name' xcassetsPath: 'path/to/.xcassets' ~~中略~~ icons: format: svg assetsFolder: nameStyle: snake_case renderMode: template renderModeOriginalSuffix: '-original' FigmaのファイルIDを指定 Xcodeの出力先を指定 Figmaのframe名と componentの命名規則を定義
  6. figma-exportを実行 17 • Figmaのアクセストークンを環境変数に入れて • figma-export icons -i figma-export.yml を実行

    yuto.yazaki: figma-export-action$ export FIGMA_PERSONAL_TOKEN=********* yuto.yazaki: figma-export-action$ figma-export icons -i figma-export.yml 2022-09-07T14:21:41+0900 info com.redmadrobot.figma-export : Using FigmaExport 0.35.2 to export icons to Xcode project. 2022-09-07T14:21:41+0900 info com.redmadrobot.figma-export : Fetching icons info from Figma. Please wait... 2022-09-07T14:21:42+0900 info com.redmadrobot.figma-export : Fetching vector images... 2022-09-07T14:21:44+0900 info com.redmadrobot.figma-export : Processing icons... 2022-09-07T14:21:44+0900 info com.redmadrobot.figma-export : Downloading remote files... 2022-09-07T14:21:45+0900 info com.redmadrobot.figma-export.file-downloader : Downloaded 1/4 2022-09-07T14:21:46+0900 info com.redmadrobot.figma-export.file-downloader : Downloaded 2/4 2022-09-07T14:21:46+0900 info com.redmadrobot.figma-export.file-downloader : Downloaded 3/4 2022-09-07T14:21:46+0900 info com.redmadrobot.figma-export.file-downloader : Downloaded 4/4 2022-09-07T14:21:46+0900 info com.redmadrobot.figma-export : Writting files to Xcode project... 2022-09-07T14:21:47+0900 info com.redmadrobot.figma-export : Done! これでXcodeプロジェクトのxcassetsへ画像が書き出される!