Meet the expanded San Francisco font family

RSS for tag

Discuss the WWDC22 Session Meet the expanded San Francisco font family

Posts under wwdc2022-110381 tag

12 Posts

Post

Replies

Boosts

Views

Activity

FamilyActivityPicker crashing when expanding "Other" category
Hi there, I'm presenting a FamilyActivityPicker inside of a sheet, and on some phones, the FamilyActivityPicker freezes and crashes when the user expands the "Other" category only. "Other" is the only category that exhibits this behavior, and it only does this on some phones, not in all cases. This issue is perfectly reproducible on those phones when using the FamilyActivityPicker for the "other" category only, but on those same phones it does not reproducible in the Native ScreenTime Picker in Settings → ScreenTime → App Limits → Add Limit. I don't have access to these phones as they are user reports, but any guidance here would be deeply appreciated. More broadly, there are several issues with the FamilyActivityPicker (categories expand on top of each other when multiple are opened, varying behavior with tapping rows vs tapping select bubbles depending on phone size, etc) that the Native ScreenTime Picker doesn't have. Grouping websites as a standalone category is preferable as well. Could we as developers just have access to that one?
3
0
1.8k
Aug ’25
DeviceActivityMonitor eventDidReachThreshold triggering every time in same second as intervalDidStart gets called
Hello, I am trying to make use of Screentime API in my app, I have issue with the DeviceActivityMonitor extension. I have schedule DeviceActivitySchedule which I set like this: let schedule = DeviceActivitySchedule( intervalStart: DateComponents(hour: 00, minute: 00), intervalEnd: DateComponents(hour: 23, minute: 59), repeats: false ) and DeviceActivityEvent which I set like this: let dateComponent = DateComponents(minute: 1) var events: [DeviceActivityEvent.Name: DeviceActivityEvent] = [ .encouraged: DeviceActivityEvent(threshold: dateComponent) ] The issue is that every time I start monitoring, by calling this piece of code from the app: do { print("Try start monitoring...") try center.startMonitoring(.daily, during: schedule, events: events) } catch { print("Error: ", error) } I catch in the extension that the event intervalDidStart is called, but in the same second I get called eventDidReachThreshold. What could be done wrong? Is event set properly? I was trying to set event with different Datecomponents (minute, hour, second), by setting different amount of time, like: let dateComponent = DateComponents(minute: 3) let dateComponent = DateComponents(second: 120) but nothing worked differently, every time, it was triggering eventDidReachThreshold right after the interval starts. If I put something unnormally high, like: let dateComponent = DateComponents(second: 120) The event eventDidReachThreshold is not triggered same time as the intervalStarts, but it is not counting time properly. Please if someone could help me, I want to be able to use events properly, with the amount of time which I set. Any help would be appreciated. Thanks in advance
3
1
1.7k
Oct ’23
DeviceMonitoringActivity - 10 minute threshold instantly breached
I'm seeing an issue where if I create and start a DeviceMonitoringActivitySchedule that begins 1 minute in the future lasts for 20 minutes has a warning time of 1 minute monitors a single app registers a threshold of 10 minutes for that app's usage the threshold is immediately breached upon the .startMonitoring call for that activity. However if I repeat the exact same experiment but with the interval beginning in the same minute we're currently in (not 1 in the future), it works as expected - the threshold is breached after 10 minutes of using the app. Is this expected behavior? If so why?
3
0
1.5k
Mar ’23
shielding behavior - apps in same group
selecting the Facebook app from the FamilyActivityPicker returns an ApplicationToken. When adding that token to a ManagedSettingsStore's shield.applications set, both Facebook and the "Facebook Messenger Kids" apps gets shielded, even though the latter was not selected from the picker. (Interestingly, the "Facebook Messenger" app does not get shielded - just the kids version) The same is true for shielding the ApplicationToken produced by selecting the Amazon app. It causes the Alexa app to be shielded. I assume this is occurring because the apps share a keychain group, bundle id substring, or some other property that the picker is using, but how can I avoid this behavior?
1
0
1.3k
Mar ’23
How to use "SFProDisplay-Bold" font in Xamarin iOS project.
I want to use the "SFProDisplay-Bold" font in iOS project but without adding the font files in the project as this font file is 2.2 MB and it increases the App size. To see what the default system font is, added the below code in our iOS project: var systemFont = UIFont.SystemFontOfSize(20, UIFontWeight.Bold).Name; Debug.WriteLine($"System: {systemFont.FamilyName}"); This above code gave output from our project as follows -> System: .AppleSystemUIFont and the systemFont is ".SFUI-Bold" . I believe that SFUI and SF Pro Display are different fonts(correct me if wrong) Need more clarity for ways on how to implement specific font "SF Pro Display".
1
0
1.6k
Mar ’23
Family sharing for a freemium app for using screen time API
Hi Team, We have implemented screen time API in our app and have applied for Family Controls Entitlement. The FC team gave the following response to the request. Thank you for follow up, we just want to clarify that Family Sharing is required for any use of Family Control entitlements, even if there are no in-app purchases. It is part of the AuthorizationCenter process, and more information can be found here  https://developer.apple.com/documentation/familycontrols/authorizationcenter and https://developer.apple.com/documentation/familycontrols. But we have implemented the code as per the above links like below and added family control capabilities Task{ do { try await AuthorizationCenter.shared.requestAuthorization(for: .child) } catch { // Handle the error here. print("Failed to authorize") } } } else { if #available(iOS 15.0, *) { AuthorizationCenter.shared.requestAuthorization { result in switch result { case .success(): print("Sucess...") case .failure(let error): print("Failed... \(error)") } } } Now the problem is our app has implemented the functionality and requesting for authorisation as per the documentation and its working fine on the development phones. Now I am not sure how to enable family sharing for freemium app as our application is not using any subscription. Does it need to be enabled in Xcode or in App Store Connect to allow family sharing.
0
0
1.5k
Feb ’23
New SF Font Widths for WatchOS
The documentation for Font.Width lists iOS 16.0+ and WatchOS 9.0+ as supporting the various new font widths. I was able to implement the new widths in an iOS app built with SwiftUI by converting UIFont to Font by writing an extension to Font. However, the same approach is not working in my WatchOS SwiftUI app. Should this work? I have not found any discussion of this specific issue anywhere.
1
1
1.3k
Dec ’22
API to use New SF Pro Condensed/Compressed/Expanded
New variants of SF Pro were introduced for iOS 16, but I do not see an update to UIFont API to use them. https://developer.apple.com/documentation/uikit/uifont Another thread on here specified that it could be done through UIFontDescriptor, but it doesn't seem like thee that is the official way. I really wish there is more information on this. I am wanting to use Expanded for my iOS update.
1
1
2.2k
Aug ’22
FamilyActivityPicker crashing when expanding "Other" category
Hi there, I'm presenting a FamilyActivityPicker inside of a sheet, and on some phones, the FamilyActivityPicker freezes and crashes when the user expands the "Other" category only. "Other" is the only category that exhibits this behavior, and it only does this on some phones, not in all cases. This issue is perfectly reproducible on those phones when using the FamilyActivityPicker for the "other" category only, but on those same phones it does not reproducible in the Native ScreenTime Picker in Settings → ScreenTime → App Limits → Add Limit. I don't have access to these phones as they are user reports, but any guidance here would be deeply appreciated. More broadly, there are several issues with the FamilyActivityPicker (categories expand on top of each other when multiple are opened, varying behavior with tapping rows vs tapping select bubbles depending on phone size, etc) that the Native ScreenTime Picker doesn't have. Grouping websites as a standalone category is preferable as well. Could we as developers just have access to that one?
Replies
3
Boosts
0
Views
1.8k
Activity
Aug ’25
DeviceActivityMonitor eventDidReachThreshold triggering every time in same second as intervalDidStart gets called
Hello, I am trying to make use of Screentime API in my app, I have issue with the DeviceActivityMonitor extension. I have schedule DeviceActivitySchedule which I set like this: let schedule = DeviceActivitySchedule( intervalStart: DateComponents(hour: 00, minute: 00), intervalEnd: DateComponents(hour: 23, minute: 59), repeats: false ) and DeviceActivityEvent which I set like this: let dateComponent = DateComponents(minute: 1) var events: [DeviceActivityEvent.Name: DeviceActivityEvent] = [ .encouraged: DeviceActivityEvent(threshold: dateComponent) ] The issue is that every time I start monitoring, by calling this piece of code from the app: do { print("Try start monitoring...") try center.startMonitoring(.daily, during: schedule, events: events) } catch { print("Error: ", error) } I catch in the extension that the event intervalDidStart is called, but in the same second I get called eventDidReachThreshold. What could be done wrong? Is event set properly? I was trying to set event with different Datecomponents (minute, hour, second), by setting different amount of time, like: let dateComponent = DateComponents(minute: 3) let dateComponent = DateComponents(second: 120) but nothing worked differently, every time, it was triggering eventDidReachThreshold right after the interval starts. If I put something unnormally high, like: let dateComponent = DateComponents(second: 120) The event eventDidReachThreshold is not triggered same time as the intervalStarts, but it is not counting time properly. Please if someone could help me, I want to be able to use events properly, with the amount of time which I set. Any help would be appreciated. Thanks in advance
Replies
3
Boosts
1
Views
1.7k
Activity
Oct ’23
DeviceMonitoringActivity - 10 minute threshold instantly breached
I'm seeing an issue where if I create and start a DeviceMonitoringActivitySchedule that begins 1 minute in the future lasts for 20 minutes has a warning time of 1 minute monitors a single app registers a threshold of 10 minutes for that app's usage the threshold is immediately breached upon the .startMonitoring call for that activity. However if I repeat the exact same experiment but with the interval beginning in the same minute we're currently in (not 1 in the future), it works as expected - the threshold is breached after 10 minutes of using the app. Is this expected behavior? If so why?
Replies
3
Boosts
0
Views
1.5k
Activity
Mar ’23
shielding behavior - apps in same group
selecting the Facebook app from the FamilyActivityPicker returns an ApplicationToken. When adding that token to a ManagedSettingsStore's shield.applications set, both Facebook and the "Facebook Messenger Kids" apps gets shielded, even though the latter was not selected from the picker. (Interestingly, the "Facebook Messenger" app does not get shielded - just the kids version) The same is true for shielding the ApplicationToken produced by selecting the Amazon app. It causes the Alexa app to be shielded. I assume this is occurring because the apps share a keychain group, bundle id substring, or some other property that the picker is using, but how can I avoid this behavior?
Replies
1
Boosts
0
Views
1.3k
Activity
Mar ’23
How to use "SFProDisplay-Bold" font in Xamarin iOS project.
I want to use the "SFProDisplay-Bold" font in iOS project but without adding the font files in the project as this font file is 2.2 MB and it increases the App size. To see what the default system font is, added the below code in our iOS project: var systemFont = UIFont.SystemFontOfSize(20, UIFontWeight.Bold).Name; Debug.WriteLine($"System: {systemFont.FamilyName}"); This above code gave output from our project as follows -> System: .AppleSystemUIFont and the systemFont is ".SFUI-Bold" . I believe that SFUI and SF Pro Display are different fonts(correct me if wrong) Need more clarity for ways on how to implement specific font "SF Pro Display".
Replies
1
Boosts
0
Views
1.6k
Activity
Mar ’23
Family sharing for a freemium app for using screen time API
Hi Team, We have implemented screen time API in our app and have applied for Family Controls Entitlement. The FC team gave the following response to the request. Thank you for follow up, we just want to clarify that Family Sharing is required for any use of Family Control entitlements, even if there are no in-app purchases. It is part of the AuthorizationCenter process, and more information can be found here  https://developer.apple.com/documentation/familycontrols/authorizationcenter and https://developer.apple.com/documentation/familycontrols. But we have implemented the code as per the above links like below and added family control capabilities Task{ do { try await AuthorizationCenter.shared.requestAuthorization(for: .child) } catch { // Handle the error here. print("Failed to authorize") } } } else { if #available(iOS 15.0, *) { AuthorizationCenter.shared.requestAuthorization { result in switch result { case .success(): print("Sucess...") case .failure(let error): print("Failed... \(error)") } } } Now the problem is our app has implemented the functionality and requesting for authorisation as per the documentation and its working fine on the development phones. Now I am not sure how to enable family sharing for freemium app as our application is not using any subscription. Does it need to be enabled in Xcode or in App Store Connect to allow family sharing.
Replies
0
Boosts
0
Views
1.5k
Activity
Feb ’23
New SF Font Widths for WatchOS
The documentation for Font.Width lists iOS 16.0+ and WatchOS 9.0+ as supporting the various new font widths. I was able to implement the new widths in an iOS app built with SwiftUI by converting UIFont to Font by writing an extension to Font. However, the same approach is not working in my WatchOS SwiftUI app. Should this work? I have not found any discussion of this specific issue anywhere.
Replies
1
Boosts
1
Views
1.3k
Activity
Dec ’22
API to use New SF Pro Condensed/Compressed/Expanded
New variants of SF Pro were introduced for iOS 16, but I do not see an update to UIFont API to use them. https://developer.apple.com/documentation/uikit/uifont Another thread on here specified that it could be done through UIFontDescriptor, but it doesn't seem like thee that is the official way. I really wish there is more information on this. I am wanting to use Expanded for my iOS update.
Replies
1
Boosts
1
Views
2.2k
Activity
Aug ’22
Downloadable new fonts?!
Are the new fonts available to be downloaded and used in other apps such as Figma or Sketch? We want to design a new UI with SF Expanded, but cannot seem to find it anywhere.
Replies
1
Boosts
1
Views
1.8k
Activity
Jun ’22
Use of the Expanded/Condensed SF Font Families in iOS 16
I just finished the video regarding the new Expanded/Condensed SF font variants. I was trying to work out how to use them in my apps, but can't seem to find them anywhere. I'd have guessed they would be in the SwiftUI's Font element as a new .design option, but I didn't see them. Has anyone found them yet, or are they not in the first beta?
Replies
2
Boosts
5
Views
1.8k
Activity
Jun ’22
Is font width (condensed, compressed, expanded) intended to work across all designs?
It's not 100% clear to me from the video whether the new condensed, compressed and expanded font widths are intended to work across all four SF designs: default, rounded, serif and monospaced, or whether they will only work for the default design.
Replies
1
Boosts
0
Views
1k
Activity
Jun ’22
There is a tiny fault in the video.
The canlender widget shown in 14:06 is in Japanese instead of Chinese.
Replies
0
Boosts
0
Views
906
Activity
Jun ’22