0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SFSymbolKeys: 生識別子でSF Symbolsを指定できるライブラリ を作ってみた。

Posted at

まず初めに

Xcode26 (のSwift6.2コンパイラ) から、SE-0451 の 生識別子 (Raw identifiers) が利用可能になりました。

そのプロポーザルが動機を説明する中で SF Symbols の例が挙げられてた事もあり、せっかくなのでSF Symbols名を生識別子で提供するライブラリを作ってみました。

SFSymbolKeys

作ったばかりのライブラリですが、GitHub で 公開しています。

GitHub: SFSymbolKeys

SwiftUIでの使用例

生識別子 `9.square.fill` を使って、以下のようにコードを書くことができます。

SFFSymbolKey-ok.jpeg

識別子なので、typoしたらコンパイラが指摘してくれます。

SFFSymbolKey-no-member.jpeg

@available属性を設定しているので、OSバージョン・チェックの指摘もしてくれます。

SFFSymbolKey-unavailable.jpeg

ただし、このライブラリは SwiftUI など他フレームワーク用の拡張メソッドを提供しません。以下のような拡張メソッドを自身で用意してください。

extension Image {
    init(symbolKey: SFSymbolKey) {
        self.init(systemName: symbolKey.name)
    }
}

付録: このライブラリの作り方

生識別子部分のコードは、Tools/SFSymbolKeyCodeGen の素朴なコードジェネレータで生成しています。

そして肝心の SF Symbols の名前の一覧は、SF Symbols アプリから力技のコピー&ペーストで作成しています。魔法はありませんので、私がメンテナンスを怠けても皆さん自身の手でメンテナンス可能です。

おわりに

本格的なアプリ開発だと使用するアイコンは厳選されるし、工夫して実装すれば SF Symbols名を指定するコードを散在しないようにもできるので、このライブラリの出番も少ないかな?と感じてたりします。

とはいえ、そんな工夫した方針が無いまま開発が進んだり、試作などで雑にアイコンを設定したい時もあるので、そんな場合にこのライブラリが役に立つかな?とも思ったりします。

気になった方は、お試しで使ってみてください。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?