SF Symbols 3 for iOS: What’s New
Learn how to use the new features on SF Symbols 3, which allows you to customize colors, shading, accessibility and localization, as well as add custom symbols more easily. By Chuck Krutsinger .
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Contents
SF Symbols 3 for iOS: What’s New
20 mins
- Getting Started
- Getting Acquainted With TubeStatus
- Viewing Symbols in the SF Symbols 3 App
- Rendering Modes
- Symbol Localization
- Adding a Symbol to a Button
- Using Hierarchical Rendering
- Using Palette Rendering
- Understanding Symbol Variants
- Using Symbol Variants
- Using Font Weights
- Customizing a Symbol
- Using a Custom Symbol
- Connecting to the TransportAPI
- Understanding Restrictions on Using SF Symbols
- Where to Go From Here?
Connecting to the TransportAPI
Up to now, you’ve done everything with debug data that allowed you to see all the possible status symbols. Time to try this out with some real-time status data from TransportAPI. For that, you’ll need to register and get an API key to use this real-time service.
Go to the TransportAPI Developer Portal. Fill out the form, check the reCAPTCHA checkbox, and click Sign up at the bottom of the form. A confirmation screen will ask you to check your email.
You’ll receive two emails. The first contains details on how to activate your account. The second confirms that you’ve successfully created a new Application Key.
Follow the instructions in the first email to activate your account. Then, sign in to your new account in the Developer Portal. The landing page shows you the credentials — App ID and App Key — that have just been created. Keep this tab open, as you’ll use these values shortly.
Now, it’s time to connect the Transport API to your app.
In Xcode, open Debug.xcconfig. Here, you’ll find TRANSPORT_API_SERVICE_APP_ID
and TRANSPORT_API_SERVICE_APP_KEY
with dummy values. Set each to the values provided by the TransportAPI Developer Portal.
Build and run your app using the TubeStatus scheme. Depending on the time of day in London, UK, this may result in either mostly Good Service or Service Closed statuses. Your mileage may vary!
Understanding Restrictions on Using SF Symbols
You need to be aware of some limitations when using SF Symbols. SF Symbols are considered system-provided images as defined in the Xcode and Apple SDK license agreements. Here are some of the key points:
- You may not use the symbols in your app icons, logos or trademarks.
- Certain symbols aren’t allowed to be exported, modified or used for any purpose other than Apple-specific technologies.
- SF Symbols 3 shows you any additional use restrictions in the info tab.
The full text of the license agreements is on Apple’s site. You should be familiar with these agreements if you’re publishing apps — don’t rely solely on this tutorial!
Where to Go From Here?
You can download the completed project files by clicking Download Materials at the top or bottom of the tutorial.
You’ve covered a lot of ground in this tutorial and you’ve seen that using SF Symbols is simple. You’ve also seen that the SF Symbols 3 app provides ways to easily find and use the right symbol you need. Now, you can get busy using them in all your apps. Remember, SF Symbols are available for iPadOS, tvOS, watchOS and macOS too.
To go even deeper with SF Symbols, check out these additional sources of information:
- WWDC21 Talks:
- What’s New in SF Symbols
- Explore the SF Symbols 3 app
- SF Symbols in SwiftUI
- SF Symbols in UIKit and AppKit
- Create custom symbols
- The relevant Apple Human Interface Guidelines are also helpful.
- What’s New in SF Symbols
- Explore the SF Symbols 3 app
- SF Symbols in SwiftUI
- SF Symbols in UIKit and AppKit
- Create custom symbols
We hope you enjoyed this tutorial, and if you have any questions or comments, please join the forum discussion below!