SFSymbols is a tiny package that provides extensions to String
and UIImage
to make using SFSymbols easy peasy. The extensions and the accompanying Enum
are all generated using the python scripts included in this package along with a list of all of the SFSymbols
names.
SFSymbols can be installed with Swift Package Manager.
The preferred way of installing SFSymbols is via the Swift Package Manager.
- In Xcode, open your project and navigate to File → Swift Packages → Add Package Dependency...
- Paste the repository URL (
https://github.com/WikipediaBrown/SFSymbols.git
) and click Next. - For Rules, select Version (Up to Next Major) and click Next.
- Click Finish.
Adding Package Dependencies to Your App
You can use the String
extension to get the name of all of the SFSymbols
available. You can add an image like this
Image(systemName: .SFSymbols.plusApp)
.resizable()
.scaledToFit()
.aspectRatio(contentMode: .fit)
.foregroundColor(.primary)
You can use the UIImage
extension to get the image of all of the SFSymbols
available. You can add an image like this
Image(uiImage: .SFSymbols.plusApp)
.resizable()
.scaledToFit()
.aspectRatio(contentMode: .fit)
.foregroundColor(.primary)
Additionally, there is an enum that is CaseIterable
that provides access to all of the strings in the String
extension and access to all of the images through an image
property.
Image(uiImage: SFSymbol.plusApp.image)
.resizable()
.scaledToFit()
.aspectRatio(contentMode: .fit)
.foregroundColor(.primary)
or
Image(systemName: SFSymbol.plusApp.string)
.resizable()
.scaledToFit()
.aspectRatio(contentMode: .fit)
.foregroundColor(.primary)
The scripts used to generate the extensions and enum are written in Python 2.7.18
. Which means you'll need Python.
Assuming you're running macOS, you should first install Homebrew and then use Homebrew to install Python by running the command brew install python
.
Get list of names of SFSymbols
by opening the SFSymbols App (you can get it from Developer) and paste it into the SFSymbols.txt file. Check out this StackOverflow post.
Run the command python3 UIImageExtension.py && python3 UIImageExtensionTests.py && python3 StringExtension.py && python3 StringExtensionTests.py && python3 Enum.py
and the python scripts will regenerate the extension and enum.
Run command+u
to run the unit tests. Test are run automatically for all pull requests. When running tests locally, be sure to be using iOS 17.2
or later. Some symbols are not included in earlier builds.
SFSymbols releases a new version on GitHub automatically when a pull request is approved from the develop
branch to the master
branch.
Send a pull request my dude... or make an issue.
Wikipedia Brown
SFSymbols is available under the MIT license. See the LICENSE file for more info.
Made with 🌲🌲🌲 in Cascadia