SF Symbol Changes in iOS 15.1

Introduction

When examining the iOS 15.2 simulators in Xcode 13.2 beta 1, I noticed that there had been a few changes to SF Symbols since iOS 15.0. After testing on real devices I discovered that these had been added in iOS 15.1. There was no Xcode release that included an iOS 15.1 simulator, so I hadn’t noticed the change until iOS 15.2.

There are now six different sets of symbols to consider:

  • SF Symbols v1.1 available in iOS/iPadOS/tvOS/Mac Catalyst 13.0, watchOS 6.0 and macOS 11.0
  • SF Symbols v2.0 available in iOS/iPadOS/tvOS/Mac Catalyst 14.0, watchOS 7.0 and macOS 11.0
  • SF Symbols v2.1 available in iOS/iPadOS/tvOS/Mac Catalyst 14.2, watchOS 7.1 and macOS 11.0
  • SF Symbols v2.2 available in iOS/iPadOS/tvOS/Mac Catalyst 14.5, watchOS 7.4 and macOS 11.3
  • SF Symbols v3.0 available in iOS/iPadOS/tvOS/Mac Catalyst 15.1, watchOS 8.0 and macOS 12.0
  • SF Symbols v3.1 available in iOS/iPadOS/tvOS 15.1, Mac Catalyst 15.0, watchOS 8.1 and macOS 12.0

An app can only use symbol names that are supported by the OS version it is running on. Symbols that were renamed are still available using their earlier names for backwards compatibility. However, Jiang Jiang (who appears to work at Apple) mentioned on Twitter that:

It is worth noticing that while aliased (old) names continue to work it is definitely better to migrate to the up-to-date names for performance reasons.

The minimum iOS deployment version of your app will determine which symbols you can use and whether you must keep using the older names (or use runtime availability checks to use the new names on later versions). In my testing, a Mac Catalyst app running on macOS 12.0.1 does not pass a runtime availability check for iOS 15.1, but it does support the new symbols.

At the time of writing, the latest version of Apple’s own SF Symbols Mac app is v3.0 (build 60) and has not been updated to include these latest changes. EDIT: v3.0 (build 63) was released around November 12th 2021.

My own Adaptivity app is a tool for iOS developers and designers, and one of its many features is a very comprehensive view to browse SF Symbols. It can view any of the SF Symbol data sets that your device supports. The screenshots in this article were taken from Adaptivity v8.2 and demonstrate the symbol changes in iOS 15.1.

For a detailed list of symbols that were added or renamed in earlier iOS versions, see my previous articles:

Changes in SF Symbols 3.1

There are relatively few changes this time:

  • New symbols 11 new symbols, but 2 are (supposedly) right-to-left localizations of existing symbols
  • Renamed symbols 2 symbols have been renamed
  • Hierarchical / Palette rendering 9 new symbols support the hierarchical and palette render modes. 2 existing symbols with incorrect layers have been fixed
  • Localized variants 4 symbols are named to suggest that they support right-to-left localizations, but 2 of them don’t actually change appearance

There are no changes to multicolor or restricted symbols.

Added Symbols

There are 11 new symbols in iOS 15.1:

bolt.ring.closed
platter.filled.top.iphone
platter.filled.bottom.iphone
platter.filled.top.and.arrow.up.iphone
platter.filled.bottom.and.arrow.down.iphone
square.3.layers.3d.down.right
square.3.layers.3d.down.left
square.3.layers.3d.down.forward
square.3.layers.3d.down.backward
text.justify.leading
text.justify.trailing

Adaptivity’s ‘Availability’ annotation (selected from the Info icon in the bottom right) adds a small 15.1+ annotation to symbols which are new in iOS 15.1. To make it easier to see which symbols are not supported in iOS 13, there is no annotation shown for symbols that were available in iOS 13 (unless they were renamed since; see below for more information).

Adaptivity also has a custom ‘Added’ collection which shows all the symbols that have been added in the data set you are viewing:

iOS 15.1 System Images ‘Added’ collection in Adaptivity v8.2 on iPhone 13 Pro in monochrome, hierarchical and palette render modes

Renamed Symbols

Two symbols have been renamed: text.justifyleft is now text.justify.left and text.justifyright is now text.justify.right.

Adaptivity makes it easy to see renamed symbols. When the ‘Availability’ annotation is enabled, a list of iOS versions is shown for symbols that have been renamed since they were first added. The information shown in the context menu includes previous names when this annotation is enabled.

Adaptivity also has a custom ‘Renamed’ collection which shows all the symbols that have been renamed in the data set you are viewing. For the iOS 15.1 data set, that contains just two symbols:

iOS 15.1 System Images ‘Renamed’ collection and context menu in Adaptivity v8.2 on iPhone 13 Pro

Hierarchical and Palette Symbols

The screenshot above in the “Added Symbols” sections shows the 9 new symbols which support hierarchical and palette render modes.

In iOS 15.0, I discovered two symbols with incorrect layer assignments that led to an inconsistent appearance in hierarchical and palette render modes compared with similarly-named symbols:

iOS 15.0 System Images with layer assignment bugs in Adaptivity v8.2 on iPhone 13 Pro

These have been fixed in iOS 15.1:

iOS 15.1 System Images with layer assignment fixes in Adaptivity v8.2 on iPhone 13 Pro

Localized Variants

Apple’s naming conventions use words such as leading, trailing, forward and backward for symbols that have right-to-left localized variants. In general (but not always), symbols with words such as left and right do not change. There are many symbols which come with both fixed left/right and localized leading/trailing versions.

Adaptivity has an optional right-to-left annotation (⇄) to identify symbols that have right-to-left localizations. There is a custom ‘Right-to-Left Localized’ collection to make them easy to find. Adaptivity can also show the image variants for right-to-left and language localizations.

The new square.3.layers.3d.down.forward and square.3.layers.3d.down.backward symbols are flipped in right-to-left variants:

iOS 15.1 System Images localized variants in Adaptivity v8.2 on iPhone 13 Pro

The new text.justify.leading andtext.justify.trailing symbols are named to suggest they ought to change appearance (especially since there are text.justify.left and text.justify.right symbols that do not change). However, in my testing, they do not change appearance:

iOS 15.1 System Images localized variants in Adaptivity v8.2 on iPhone 13 Pro

This is seen more clearly using Adaptivity’s list view (so the full symbol names are visible) and the Force Right-to-Left option in the Settings screen. This flips the entire user interface in the same way as the Right-to-Left Pseudolanguage option that can be configured in Xcode’s scheme settings when running your own app:

iOS 15.1 System Images in Left-to-Right and Right-to-Left layout in Adaptivity v8.2 on iPhone 13 Pro

Note how the forward and backward versions of square.3.layers.3d.down change in right-to-left so that the forward symbol is the same as the left symbol and the backward symbol is the same as the right symbol. The leading and trailing versions of text.justify do not change.

EDIT: Apple’s SF Symbols Mac app v3.1 (build 63) does not mark these symbols as having right-to-left variants. I still suspect this is a bug, but at least the app is consistent with observed behaviour.

Resources

WWDC 2021: 10097, What’s new in SF Symbols

WWDC 2021: 10288, Explore the SF Symbols 3 app

WWDC 2021: 10251, SF Symbols in UIKit and AppKit

WWDC 2021: 10349, SF Symbols in SwiftUI

WWDC 2020: 10207, SF Symbols 2

WWDC 2019: 206, Introducing SF Symbols

Human Interface Guidelines: SF Symbols

SF Symbols Mac app

Adaptivity

Adaptivity has many other features in addition to browsing SF Symbols. It is primarily a tool to visualize the different window sizes, layout margins, readable content guides, bar heights and Dynamic Type sizes that a modern, adaptive, iOS app uses when running on different devices and iPad multitasking sizes. There are also views for browsing System Colors, System Fonts and System Materials, and a view for exploring iPadOS Pointer Interactions. In iOS/iPadOS 15 you can also configure UISheetPresentationController options for modally-presented view controllers.

The app is a universal purchase and includes the Mac Catalyst version. On macOS 11 and later, this is “optimised for Mac” with native controls and does not scale content. If you are an iOS developer or designer, I’m sure you will find Adaptivity very useful. Testimonials, more screenshots and information on all the features is available on my web site.

Other Articles That You Might Like

I have written articles on How iPad Apps Adapt to the New 8.3" iPad Mini, How iOS Apps Adapt to the various iPhone 12 Screen Sizes, Bringing Adaptivity to Mac Catalyst, How to Switch Your iOS App and Scene Delegates for Improved Testing and the View Controller Presentation Changes in iOS 13.

The search algorithm used in Adaptivity’s System Colors and System Images views is described in A Simple, Smart Search Algorithm for iOS in Swift. I have also written about Working with Multiple Versions of Xcode and how to Hide Sensitive Information in the iOS App Switcher Snapshot Image.

If you found any of these articles helpful then please take a look at my apps in the iOS App Store to see if there’s anything that you’d like to download (especially the paid ones 😀).

If you work with a lot of Xcode projects you might like my Mac Menu Bar utility XcLauncher. It’s like having browser bookmarks for your favorite Xcode projects, workspaces, playgrounds, and Swift packages. There is more information on my website about XcLauncher’s features.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Geoff Hackworth

Geoff Hackworth

1.1K Followers

Independent and freelance software developer for iPhone, iPad and Mac