{"id":116346,"date":"2020-05-13T01:10:55","date_gmt":"2020-05-13T01:10:55","guid":{"rendered":"https:\/\/developer.apple.com\/news\/?id=nixcb564"},"modified":"2020-05-13T01:10:55","modified_gmt":"2020-05-13T01:10:55","slug":"how-to-make-your-app-look-great-on-every-screen","status":"publish","type":"post","link":"https:\/\/sickgaming.net\/blog\/2020\/05\/13\/how-to-make-your-app-look-great-on-every-screen\/","title":{"rendered":"How to make your app look great on every screen"},"content":{"rendered":"<div class=\"inline-article-image\"><img decoding=\"async\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/08\/how-to-make-your-app-look-great-on-every-screen.jpg\" data-hires=\"false\"><\/div>\n<p>Imagine, for a moment: You\u2019ve just spotted the perfect pair of shoes online. They\u2019re the right color, they\u2019re designed impeccably, and you can\u2019t wait to get them delivered and on your feet. Except, wait \u2014 they\u2019re only made in size 7. And sadly, while you might be able to cram your feet in and wear them on occasion, they won\u2019t be comfortable enough for daily use. <\/p>\n<p>Now, most shoe manufacturers don\u2019t offer their shoes in just one size. Instead, when they create a new shoe model, they offer a range of sizes with the same design and functionality so that the customer can enjoy the one that fits best.<\/p>\n<p>It\u2019s the same for really great apps: When developing, you want to create an interface that adapts to a range of screen sizes with the same design and functionality for all. That way, whether someone uses iPhone SE or iPad Pro to view your app, they still get to have an enjoyable and comfortable experience. <\/p>\n<p>Below, we\u2019ve collected some of the best ways you can adapt your app\u2019s interface so that it looks great, regardless of device.<\/p>\n<h3>Universal design<\/h3>\n<p>While you can design solely for specific platforms like iPhone, iPad, or Mac, consider creating a universal version of your app that supports multiple devices. This lets your customer choose how your app fits into their life, and it\u2019s the most adaptive experience you can provide. Whether you\u2019re creating apps designed for a single platform or multiple devices, however, they should support all available screen sizes and size classes for those devices.<\/p>\n<p><strong>Ready to launch<\/strong><\/p>\n<p>A great app experience starts with a universal launch screen: Designing the right one can make a world of difference in how quickly you can immerse people into your user interface. Use Xcode to create a launch screen storyboard \u2014&nbsp;they\u2019re flexible and support all device screen sizes, allowing you to use a single storyboard to manage your launch screens on every platform you support. <\/p>\n<p><a href=\"https:\/\/developer.apple.com\/news\/?id=voseytot\">Learn more about designing launch screens for seamless&nbsp;starts&nbsp;&gt;<\/a><\/p>\n<div class=\"inline-article-image\"><img decoding=\"async\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/08\/how-to-make-your-app-look-great-on-every-screen-1.jpg\" data-hires=\"false\"><\/div>\n<p><strong>Get into Auto Layout<\/strong><\/p>\n<p>When crafting your interface, Auto Layout can help you adapt to any screen size. It provides guidelines for your app that relate the positioning of one piece of content to any other content or views. This lets your content scale and reflow in the manner you intend it. Avoid using absolute screen coordinates, as those may result in off-center buttons or awkward content flow on different screen sizes.<\/p>\n<p><a href=\"https:\/\/developer.apple.com\/documentation\/uikit\/uilayoutguide\">Learn more about Auto Layout in the Developer&nbsp;Library&nbsp;&gt;<\/a> <\/p>\n<p><strong>Explore SwiftUI<\/strong> <\/p>\n<p>If your app is built for iOS 13, iPadOS 13, watchOS 6, tvOS 13, or macOS Catalina, you may want to also consider implementing SwiftUI. The declarative nature of SwiftUI ensures that your content is adaptable out of the box, and that code is also often reusable when building apps for other Apple platforms.<\/p>\n<p><strong>Master multitasking<\/strong><\/p>\n<p>If you\u2019re developing an app that supports iPad, remember that people can use it in a variety of ways: They can browse the app in full screen, put it next to another app in Split View, pull it up in Slide Over, or (if your app supports it) even view multiple windows side by side. Consider each of these size classes and how your interface can successfully adapt to provide the best experience.<\/p>\n<p><a href=\"https:\/\/developer.apple.com\/design\/human-interface-guidelines\/ios\/system-capabilities\/multitasking\/\">Get started with&nbsp;multitasking&nbsp;&gt;<\/a><\/p>\n<h3>Keep your content readable<\/h3>\n<p>It can be challenging to design for a great reading experience on all devices if you have text- or image-heavy content in your app. Let the Readable Content Guide do the heavy lifting for you: The layout guide defines an area that can easily be read without extra effort.<\/p>\n<p><a href=\"https:\/\/developer.apple.com\/documentation\/uikit\/uiview\/1622644-readablecontentguide\">Learn more about the Readable Content&nbsp;Guide&nbsp;&gt;<\/a><\/p>\n<div class=\"inline-article-image\"><img decoding=\"async\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/08\/how-to-make-your-app-look-great-on-every-screen-2.jpg\" data-hires=\"false\"><\/div>\n<p>Additionally, make sure your reading experience is accessible. Many people prefer to change their text size to something other than the default. Supporting Dynamic Type ensures your text scales to what your customer has indicated they want. It also ensures that as the text gets larger or smaller, other on-screen elements dynamically move to accommodate these changes.<\/p>\n<p><a href=\"https:\/\/developer.apple.com\/design\/human-interface-guidelines\/accessibility\/overview\/text-size-and-weight\/\">Learn more about designing with text weight and size in mind &gt;<\/a><\/p>\n<p><a href=\"https:\/\/developer.apple.com\/documentation\/uikit\/uifontmetrics\">Learn more about scaling text set in a custom&nbsp;font&nbsp;&gt;<\/a><\/p>\n<div class=\"inline-article-image\"><img decoding=\"async\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2020\/08\/how-to-make-your-app-look-great-on-every-screen-3.jpg\" data-hires=\"false\"><\/div>\n<p>Use safe areas when designing your interface to ensure your views will never over or underlap other content or hardware elements, regardless of device.<\/p>\n<p><a href=\"https:\/\/developer.apple.com\/documentation\/uikit\/uiview\/2891102-safearealayoutguide\">Learn more about safe areas and <code>safeAreaLayoutGuide<\/code>&nbsp;&gt;<\/a><\/p>\n<h3>Craft your queries effectively<\/h3>\n<p>While it\u2019s helpful \u2014&nbsp;and often critical \u2014 to know the device capabilities on which your app is currently running, be mindful to avoid checking for a known set of devices and collating behaviors based on those results. Instead, query for feature availability and provide conditional paths based on the results of that check.<\/p>\n<p>For example, when building an AR app, you can use the <a href=\"https:\/\/developer.apple.com\/documentation\/arkit\/arconfiguration\/2923553-issupported\"><code>isSupported<\/code><\/a> property of the appropriate ARConfiguration subclass to see whether a device supports a given configuration. <\/p>\n<pre class=\"code-source\"><code><span class=\"syntax-class\"><span class=\"syntax-keyword\">class<\/span> <span class=\"syntax-title\">var<\/span> <span class=\"syntax-title\">isSupported<\/span>: <span class=\"syntax-title\">Bool<\/span> <\/span>{ <span class=\"syntax-keyword\">get<\/span> }<\/code><\/pre>\n<h3>Preview your work<\/h3>\n<p>In Xcode 11, you can do a lot of your basic interface testing directly in Previews. This allows you to see how your interface handles different conditions, devices, and use cases. You can automatically see how Dynamic Type might render if your app is running on iPhone SE, for example, or view different localization options.<\/p>\n<p>While Previews are designed to work with SwiftUI, you can also use them with your existing Swift or Obj-C views to make sure your UI remains adaptable as you change your code.<\/p>\n<hr>\n<h3>Resources<\/h3>\n<p><a href=\"https:\/\/developer.apple.com\/videos\/play\/wwdc2019\/233\/\">Watch \u201cMastering Xcode&nbsp;Previews\u201d&nbsp;&gt;<\/a><\/p>\n<p><a href=\"https:\/\/developer.apple.com\/documentation\/swiftui\">Learn more about&nbsp;SwiftUI&nbsp;&gt;<\/a><\/p>\n<p><a href=\"https:\/\/developer.apple.com\/design\/human-interface-guidelines\/ios\/visual-design\/adaptivity-and-layout\/\">Learn more about designing for adaptive&nbsp;interfaces&nbsp;&gt;<\/a><\/p>\n<p><a href=\"https:\/\/developer.apple.com\/design\/human-interface-guidelines\/ios\/visual-design\/typography\/\">Learn more about using typography on all screen&nbsp;sizes&nbsp;&gt;<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Imagine, for a moment: You\u2019ve just spotted the perfect pair of shoes online. They\u2019re the right color, they\u2019re designed impeccably, and you can\u2019t wait to get them delivered and on your feet. Except, wait \u2014 they\u2019re only made in size 7. And sadly, while you might be able to cram your feet in and wear [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":116347,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[55],"tags":[],"class_list":["post-116346","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-apple-developer-news"],"_links":{"self":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/116346","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/comments?post=116346"}],"version-history":[{"count":0,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/116346\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media\/116347"}],"wp:attachment":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media?parent=116346"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/categories?post=116346"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/tags?post=116346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}