griffin-stewie/clg
をXcode 11 (Swift 5)でビルドできるようにしました。
今週末はダークモード対応をしていたことで、Colors.xcassets を利用していきたいという気持ちが高まりました。ふだん使いの clg でダークモード対応すべく、Colors.xcassets 出力できるように対応しようとしたところ、残念なことにSwift 2.0時代で更新が途絶えてしまっていて、プロジェクトをそのまま開いてビルドするのもしんどい感じです。
clgが便利ツールであること
過去に「〇〇イベント2018夏」「〇〇イベント2019春」のようにUIがほぼ同じで、画像リソースや色リソースが大きく異なるアプリを開発していた時期がありました。
色を変えるのは簡単なので、最初の方はiOS/Androidアプリ向けにちまちま手作業でRGB値を入力していました。次第に画面が増えてくると1色変更するたびに膨大な工数がかかるようになってしまいました。作業ひとつでは時間かからないけど、如何せん変更する箇所が多すぎる。
無駄な作業を減らすべく、自然と利用しているリソースを管理して、一箇所に色リソースをまとめることにしました。この頃はまだAppColor.swift
とcolors.xml
の値をそれぞれ書き換えてスクリプトでプロジェクトディレクトリへコピーするくらいでした。AppColor.swiftはUIColorの拡張メソッドです。
2017年3月ごろ、それでも限界がきたのか clg を使って jsonからAppColor.swift
とcolors.xml
を生成するようになりました。
griffin-stewie/clg が活用できるケースとしては「〇〇イベント2018」「〇〇イベント2019」みたいにUIがほぼ同じで色リソースが異なるアプリを作るときとか。他にはjsonを一箇所直せばiOSとAndroidに同時に適用できるのが偉いと思っているのですが、やはり僕以外で使ってるのを聞いたことがない……
— さくさん (@ch3cooh) April 9, 2019
現在では「〇〇イベント」アプリの開発から手が離れて、自作アプリのiOS/Androidの開発用に利用しています。このツイートでも言ってるけれど、jsonを一箇所直せば、iOSとAndroidに同時に適用できるのが偉いと思っているのですが、僕以外に使ってるのを聞いたことがないです。
コンバート作業自体はとてもスムーズに終わった
griffin-stewie/clg
のSwift 5.0への移行作業に取り掛かるまでに、かなり気合が必要だったので手をつけてなかったけど、これ以上コンバートが苦痛な状態にしたくなかったので、三連休最後の成果として頑張りました。
Swift 5.0への移行作業で一番つらかったのは、昔のXcodeが動くMacBook Proを用意するのとXcodeをダウンロードするのにめっちゃ時間がかかったこと。
— なかざん (@Nkzn) September 23, 2019
次はダークモード対応でも使えるように Colors.xcassets を 出力できるようにしたいですね。