Press "Enter" to skip to content

Challenge: Large Text

Dynamic Type allows people to choose the size of textual content displayed on the screen. You can use this feature to help people who prefer larger text to enhance their readability experience. Additionally, you can do something similar for those who prefer smaller text, allowing more information to be presented on screen. When designing apps to support Dynamic Type, it’s important to keep the adaptability of your interface in mind: This allows people to have a great experience with your app, no matter their preferred text size.

Begin the challenge

We’ve prepared a sample app for you in which some UI Elements are defying our layout and wreaking havoc with text throughout the app. These elements are causing text to become truncated, go off screen, and sometimes even forcing other text elements to be hidden. With the help of an astounding magic tap, however, you can modify the elements on the screen. UI Elements react to your Magic Tap by asking how they should change their behavior, and will update based on your choices. Explore various scenarios, helping to get the UI Elements in line and make your text readable once more.

Download the Large Text Challenge sample app

As you go through these exercises, here are a few good questions to ask:

Should this text be truncated or should it wrap at the boundary?
Are there images that are growing too large in size?
Are we able to scroll to view all text that’s being presented?

These sorts of questions are also great starting points when considering how Dynamic Type may behave in your own app. Once you’ve completed the challenge, we encourage you to explore this project in Xcode and view how we support Dynamic Type in each scenario. We then encourage you to look at your own app — can you apply these concepts to your own project?

Resources

WWDC17

Building Apps with Dynamic Type

Scaling Fonts Automatically

Read the WWDC21 Challenges Terms and Conditions

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *