3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

React NativeでSVGを扱う

Posted at

はじめに

React Nativeでは、htmlのようにsvgファイルを素の状態で利用することができません。
react-native-svgというライブラリを使用する必要があり、React Nativeで扱えるように変換する必要があります。
変換にはいくつか方法がありますが、下記のような種類があります。

各方法のメリット・デメリット

react-native-svg-transformerでsvgファイルをそのまま使う

svgファイルを直接importする方法です。
大量のsvgファイルを扱う場合に、設定を書くだけで利用できます。

  • メリット
    • 変換の手順を踏まず、svgファイルを直接読み込める。
    • 設定を書けば、propsによるfillやstrokeの色指定等可能
  • デメリット

CLI - @svgr/cliでコンポーネントファイルに変換

svgファイルをCLIでreact-native-svgに変換したファイルをimportする方法です。
変換後のファイルがどうなっているか確認が容易です。

  • メリット
    • 変換後のファイルを確認、調整可能
    • 設定を書けば、propsによるfillやstrokeの色指定等可能
  • デメリット
    • オプションが一部しかconfigファイルに書けないため、細かい設定、調整をしたい場合にコマンドが長くなりがち
    • svgファイルの構成が統一されていない場合、設定での調整が難しい

GUI - SVG Playgroundでコンポーネントファイルに変換

GUIでsvgファイルを変換、調整可能な方法です。
ローカルのsvgファイルをドラッグアンドドロップして読み込めます。

  • メリット
    • 各ファイルに対して個別の設定、調整が可能
    • CLIや細かい設定での調整が苦手でも扱いやすい
  • デメリット
    • 一つひとつのファイルに対して手動変換を行うので、svgファイルの数が増えれば増えるほどしんどい

最初からreact-native-svgで書く

通常、svgエディタを使用してsvgを作成、その後React Native用に変換という手順をすっ飛ばし、コードで書いちゃうマンの方法です。
自作のグラフを作成する場合などに有効な方法です。

  • メリット
    • svgファイルとはなんだったのか
  • デメリット
    • しんどい。しんどくない?

さいごに

react-native-svgではまだサポートされていないsvgの機能があります。
変換後の見え方に違和感がある場合は、cliやguiで変換するとサポートされていない機能についてコメントされるので確認してみてください。

他にも良い方法やおかしな点がある場合には、コメント頂けるとありがたいです。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?