悪あがきプログラマー

悪あがきを続けていきたい技術と書評なブログです。トレタでiOSエンジニアやってます。

xcassets_exporterというgemを作りました。デザイナさんとの画像素材やりとりの話

xcassets_exporterというgemを作りました。
xcassets_exporter | RubyGems.org | your community gem host

ソースはこちら。 github.com

既にあるだろうし、実際にあったのですがうまく動かなかったので書きました。

xcassets_exporter

中身は見てもらえれば分かる通り全くたいしたことしてません。READMEにある通りxcassetsの余計なものを取り除いてexportするものです。

Input

Images.xcassets
|-TopScreen
| |-newButton.imageset
| | |-newButton.png
| | |-newButton@2x.png
| | |-newButton@3x.png
| | |-Contents.json
| |-contentView
| | |-header.imageset
| | | |-header.png
| | | |-header@2x.png
| | | |-header@3x.png
| | | |-Contents.json

Output

Images.xcassets
|-TopScreen
| |-newButton.png
| |-newButton@2x.png
| |-newButton@3x.png
| |-contentView
| | |-header.png
| | |-header@2x.png
| | |-header@3x.png

デザイナさんとの素材やりとり

デザイナさんとの画像素材のやりとりをどうするか悩んでいて、一つのパターンとしてはiOS側の画像素材をマスターとして、そこに追加や修正してもらうというのがあると思います。

ここでデザイナさんにXcodeを使ってもらって追加や修正をしてもらっても構わないのですが、個人的にアプリ内の素材名と実際のpngファイルなどの名前にズレが出るのはあまり好ましくないと思っています。

Xcodeはこの辺をContents.jsonでいい感じにしてくれるのですがちょっとやり過ぎかなと思ってます。Navigatorのgroupingにしても独自の世界を作り過ぎじゃないかなと思ってたり。

ということで今のところはこのgemでexportしたディレクトリを渡して、その中で修正してもらってディレクトリごと返してもらうということをやっています。受け取った側はxcassetsの特定のディレクトリごと消してドラッグアンドドロップし直すとxcassetsとファイル名に差異が出ずにきれいな状態を保てます。

この方法だと1点だけ問題があってxcassetsのSlicingが使えなくなります。Contents.jsonを生成し直してしまうので。ここはまだ課題として残っているのですが、現状多用しているわけではないですし、画像素材を変える場合はSliceの指定もし直すだろうと思って今はこの運用にしています。

みなさんどうやってます?

この辺他社さんではどうやってるのかとても気になるところです。もっといい方法あるよーとか、うちではこんな方法でやってるとかあればTwitterなりブコメなりで是非教えていただけると嬉しいです!

y_koh (@y_koh) | Twitter