Tag: iOS
165 posts
Some animations can be a lot for some people. They may opt to reduce motion in Settings. You can know by checking isReduceMotionEnabled. You’ll immediately see that the system’s animations are much more subtle. The weather app is a great example.

Today I want to share something I use a lot. You can convert any article into a “podcast” by enabling Speak Screen in Accessibility Settings, switching to Safari’s Reader Mode and swiping down with two fingers from the top of the screen. I think it is a good example of how if we all knew more about how to use the assistive tech available in iOS, we would find ourselves using more of them, more often, exemplifying quite well that accessibility benefits everyone.

There are a ton of customisation options in the accessibility settings in iOS. When doing things the Apple way, this options should, in most cases, just work for you. If not, you can find flags to check for all these options in UIAccessibility.
Consider setting a higher number of lines in your labels for large content size categories. Even to 0 (it means unlimited). That way you ensure the user will have access to the same amount of content regardless of the text size configured.
A very special one for me today! The recording of my talk is now available! If you've been following , you'll find lots of the slides familiar. I would love to hear what you think about it! https://x.com/NSSpain/status/1574801556775620614?s=20&t=Aog7ojR4E4eG4M3hd-cn3w

For other UI elements that could also benefit from being scaled when using Dynamic Type, you can use UIFontMetrics's scaledValue(for:). Some good examples are progress bar components, which tend to be quite slim. https://developer.apple.com/documentation/uikit/uifontmetrics/scaledvalue(for:)

If you have any web views in your app (Terms and Conditions and Privacy Policy, I'm looking at you), you can also support Dynamic Type for them. You can set an Apple system font with the same styles available for native development in your CSS.
You should really try to support Dynamic Type. If you can’t for some reason, and you want to fall back to the Large Content Viewer, you can do so. I’d limit it to “sticky” bars. Maybe you have a custom tab bar, navigation bar, or similar? Check the UILargeContentViewerItem protocol. Most UIKit components conform to it already. You'll just need to set showsLargeContentViewer to true and add a UILargeContentViewerInteraction to your component. https://developer.apple.com/documentation/uikit/uilargecontentvieweritem

You may have noticed that navigation/tool/tab bars don't scale with large Dynamic Type sizes. It would take too much space from the screen leaving very little real estate for the actual content. A tap and hold will show the Large Content Viewer.

What is the ideal distance between labels? It depends on styles for both of them and the dynamic type size, right? You wouldn't want to have the same distance for small and large text sizes. We can configure a standard distance between baselines.

Ever wondered what the ideal width is for labels so the text is readable? Well, it depends. But readableContentGuide has you covered. You can configure the optimal width independently of Dynamic Type size or Size Classes. https://developer.apple.com/documentation/uikit/uiview/readablecontentguide

If you are displaying something in two or more columns, you may want to change that to as little as one column when using some of the largest Dynamic Type settings to keep the text readable.
Showing 61-72 of 165 posts