Symbols

develop

Swift package for accessing SF Symbols in a type safe manner.
ptrkstr/Symbols


Swift Package Information

Code Coverage

Swift package for accessing SF Symbols in a type safe manner.

Features

  • ๐Ÿ’ซ Contains all SF Symbols - 1.0, 2.0, 2.1, 3.0, 3.1
  • ๐Ÿ  Supports all platforms: ๐Ÿ“ฑ iOS, ๐Ÿ’ป macOS, ๐Ÿ“บ tvOS, โŒš๏ธ watchOS.
  • ๐Ÿ’ฏ 100% Test Coverage, every SF Symbol String extension is tested.
  • ๐Ÿ‘ท Easy to maintain for future SF Symbol releases (see Maintenance section).
  • โœ… Availability checks i.e. @available(iOS 15.0, macOS 12.0, tvOS 15.0, watchOS 8.0, *).
  • ๐Ÿงต String extension which means you can use all the existing UIImage/NSImage initialisers.
  • ๐Ÿ”ค Camelcased allowing better code completion

Usage

import Symbols
// Swift >= 5.5 
UIImage(systemName: .Symbols.magazineFill) // magazine.fill
NSImage(systemSymbolName: .Symbols.magazineFill, accessibilityDescription: nil) // magazine.fill
// Swift < 5.5
UIImage(systemName: String.Symbols.magazine) // magazine.fill
NSImage(systemSymbolName: String.Symbols.magazine, accessibilityDescription: nil) // magazine.fill
// Leading numbers prefixed with underscore
UIImage(systemName: .Symbols._0CircleFill) // 0.circle.fill
NSImage(systemSymbolName: .Symbols._0CircleFill, accessibilityDescription: nil) // 0.circle.fill

Installation

SPM

Add the following to your project:

https://github.com/ptrkstr/Symbols

Maintenance

All terminal commands must be ran from the directory of this repo.

Update raw.txt

  1. Enter the following into terminal but don't press enter yet

    pbpaste > ./Generator/Sources/Generator/Resources/raw.txt
    
  2. Open SF Symbols

  3. Select all, right click, select "Copy X Names"

  4. Press enter in terminal

Update name_availability.plist

yes | cp /Applications/SF\ Symbols.app/Contents/Resources/name_availability.plist ./Generator/Sources/Generator/Resources

Generate

cd Generator; swift run; cd ..

Aren't there already packages like this?

Yep! But for one reason or another, they didn't fulfil my needs (as of 2021/11/05).

TODO

  • Show symbol in code completion

Description

  • Swift Tools 5.3.0
View More Packages from this Author

Dependencies

  • None
Last updated: Fri Oct 18 2024 03:13:14 GMT-0900 (Hawaii-Aleutian Daylight Time)