developer.apple.com.rss.xml - sfeed_tests - sfeed tests and RSS and Atom files
(HTM) git clone git://git.codemadness.org/sfeed_tests
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
developer.apple.com.rss.xml (599025B)
---
1 <?xml version="1.0" encoding="UTF-8"?>
2 <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
3 <channel>
4 <atom:link href="https://developer.apple.com/news/rss/news.rss" rel="self" type="application/rss+xml" />
5 <title>News - Apple Developer</title>
6 <link>https://developer.apple.com/news/</link>
7 <description></description>
8 <language>en</language>
9 <lastBuildDate>Wed, 03 Feb 2021 16:54:46 PST</lastBuildDate>
10 <generator>Custom</generator>
11 <copyright>Copyright 2021, Apple Inc.</copyright>
12
13 <item>
14 <title>New and updated Apple design resources now available</title>
15 <link>https://developer.apple.com/news/?id=kn2a8g2q</link>
16 <guid>https://developer.apple.com/news/?id=kn2a8g2q</guid>
17 <description><p>Designing apps for Apple platforms just got easier. Now you can quickly lay out your app for macOS&nbsp;Big&nbsp;Sur or tvOS&nbsp;14 using new design templates, components, guides, and more. All major macOS and tvOS components, such as buttons, segmented controls, alerts, menus, and other controls, are included. In addition, the updated iOS&nbsp;14 and iPadOS&nbsp;14 design resources for Sketch have been rebuilt to support color variables, and include numerous minor improvements and bug&nbsp;fixes.</p>
18 <p><a href="https://developer.apple.com/design/resources/"><span class="icon icon-after icon-chevronright nowrap">View resources</span></a></p></description>
19 <pubDate>Wed, 03 Feb 2021 16:54:46 PST</pubDate>
20 </item>
21 <item>
22 <title>Take advantage of new advertising attribution technologies</title>
23 <link>https://developer.apple.com/news/?id=wajvzt18</link>
24 <guid>https://developer.apple.com/news/?id=wajvzt18</guid>
25 <description><p><strong>SKAdNetwork 2.2.</strong> This update supports view-through attribution for advertisement formats such as video, audio, and interactive advertisements. This allows you to display your choice of advertising formats and measure which creatives are most effective, while preserving user privacy.</p>
26 <p><strong>Private Click Measurement.</strong> iOS&nbsp;14.5 and iPadOS&nbsp;14.5 bring Private Click Measurement to apps, in addition to the web. Advertising networks can now measure the effectiveness of advertisement clicks within iOS or iPadOS apps that navigate to a website. This information can be used to understand which advertisements drive conversions (such as purchases or signups) — while maintaining user privacy.</p>
27 <p>Get started by building and testing your apps with the beta versions of Xcode&nbsp;12.5, iOS&nbsp;14.5, and iPadOS&nbsp;14.5.</p>
28 <p><a href="https://developer.apple.com/documentation/storekit/skadnetwork">Learn more <span class="icon icon-after icon-chevronright nowrap">about SKAdNetwork</span></a></p>
29 <p><a href="https://webkit.org/blog/11529/introducing-private-click-measurement-pcm/">Learn more about Private <span class="icon icon-after icon-chevronright nowrap">Click Measurement</span></a></p>
30 <p><a href="https://developer.apple.com/download/">Download the <span class="icon icon-after icon-chevronright nowrap">latest betas</span></a></p></description>
31 <pubDate>Mon, 01 Feb 2021 16:48:25 PST</pubDate>
32 </item>
33 <item>
34 <title>App Store Review Guideline updates now available</title>
35 <link>https://developer.apple.com/news/?id=3ozbk628</link>
36 <guid>https://developer.apple.com/news/?id=3ozbk628</guid>
37 <description><p>The App&nbsp;Store is a safe and trusted place for customers to discover and download apps, and a great opportunity for developers. The App&nbsp;Store Review Guideline changes and clarifications support new features in upcoming OS releases, better protect customers, and help your apps go through the review process as smoothly as possible. Review the updates below. Please note that all new apps and app updates submitted to the App&nbsp;Store must follow the revised guideline 5.1.2(i) by early spring 2021.</p><ul>
38 <li>1.4.3: Clarified the prohibition of promoting certain substances: “Apps that encourage consumption of tobacco and vape products, illegal drugs, or excessive amounts of alcohol are not permitted on the App&nbsp;Store. Apps that encourage minors to consume any of these substances will be rejected. Facilitating the sale of controlled substances (except for licensed pharmacies), marijuana, or tobacco is not allowed.”</li>
39 </ul><ul>
40 <li>2.3: Clarified the information that must accurately reflect the app’s core experience: “Customers should know what they’re getting when they download or buy your app, so make sure all your app metadata, including privacy information, your app description, screenshots, and previews accurately reflect the app’s core experience and remember to keep them up-to-date with new versions.”</li>
41 </ul><ul>
42 <li>2.3.7: Clarified what metadata shouldn’t include: “Choose a unique app name, assign keywords that accurately describe your app, and don’t try to pack any of your metadata with trademarked terms, popular app names, pricing information, or other irrelevant phrases just to game the system. App names must be limited to 30 characters. Metadata such as app names, subtitles, screenshots, and previews should not include prices, terms, or descriptions that are not specific to the metadata type. App subtitles are a great way to provide additional context for your app; they must follow our standard metadata rules and should not include inappropriate content, reference other apps, or make unverifiable product claims. Apple may modify inappropriate keywords at any time or take other appropriate steps to prevent abuse.”</li>
43 </ul><ul>
44 <li>2.4.5(viii): Removed Rosetta as an example: “Apps should run on the currently shipping OS and may not use deprecated or optionally installed technologies (e.g., Java).”</li>
45 </ul><ul>
46 <li>3.1.1: Clarified that these items must be sold through in-app purchase: “Gift cards, certificates, vouchers, and coupons which can be redeemed for digital goods or services can only be sold in your app using in-app purchase.”</li>
47 </ul><ul>
48 <li>3.1.1: Clarified how apps can enable customers to “tip” developers: “Apps may use in-app purchase currencies to enable customers to “tip” the developer or digital content providers in the app.”</li>
49 </ul><ul>
50 <li>3.1.1: Deleted: “Remember to assign the correct purchasability type or your app will be rejected.”</li>
51 </ul><ul>
52 <li>3.1.2(a): Clarified how certain games can offer a subscription across third-party apps and services: “Games offered in a streaming game service subscription may offer a single subscription that is shared across third-party apps and services; however, they must be downloaded directly from the App&nbsp;Store, must be designed to avoid duplicate payment by a subscriber, and should not disadvantage non-subscriber customers.”</li>
53 </ul><ul>
54 <li>3.1.3(c): Clarified what enterprise users can access and what purchase methods they can use: “Enterprise Services: If your app is only sold directly by you to organizations or groups for their employees or students (for example professional databases and classroom management tools), you may allow enterprise users to access previously-purchased content or subscriptions. Consumer, single user, or family sales must use in-app purchase.”</li>
55 </ul><ul>
56 <li>3.1.3(d): Changed terminology from “person-to-person experiences” to “person-to-person services” to clarify that services provided by one individual to another are in scope: “If your app enables the purchase of realtime person-to-person services between two individuals (for example tutoring students, medical consultations, real estate tours, or fitness training), you may use purchase methods other than in-app purchase to collect those payments. One-to-few and one-to-many realtime services must use in-app purchase.”</li>
57 </ul><ul>
58 <li>3.2.1(viii): Clarified who can create apps for these services. Removed option to use a public API: “Apps used for financial trading, investing, or money management should come from the financial institution performing such services.”</li>
59 </ul><ul>
60 <li>3.2.2(ix): Removed duplicative section regarding forcing users to perform actions, which is fully covered by 3.2.2(vi); renumbered former 3.2.2(x).</li>
61 </ul><ul>
62 <li>4.2.3(iii): Clarified the information that certain apps need to disclose: “If your app needs to download additional resources in order to function on initial launch, disclose the size of the download and prompt users before doing so.”</li>
63 </ul><ul>
64 <li>5.1.1(ix): Clarified that gambling is a heavily-regulated field in scope: “Apps that provide services in highly-regulated fields (such as banking and financial services, healthcare, gambling and air travel) or that require sensitive user information should be submitted by a legal entity that provides the services, and not by an individual developer.”</li>
65 </ul><ul>
66 <li>5.1.2(i): Added: “You must receive explicit permission from users via the App Tracking Transparency APIs to track their activity. Learn more about <a href="https://developer.apple.com/app-store/user-privacy-and-data-use/">tracking</a>.”</li>
67 </ul><ul>
68 <li>After You Submit: Reordered the paragraph describing appeals for clarity.</li>
69 </ul><p><a href="https://developer.apple.com/app-store/review/guidelines/">Read the App&nbsp;Store <span class="icon icon-after icon-chevronright nowrap">Review Guidelines</span></a> </p></description>
70 <pubDate>Mon, 01 Feb 2021 11:11:42 PST</pubDate>
71 </item>
72 <item>
73 <title>Developer Spotlight: MySwimPro</title>
74 <link>https://developer.apple.com/news/?id=kzbg2f2x</link>
75 <guid>https://developer.apple.com/news/?id=kzbg2f2x</guid>
76 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/87768535-B93B-4082-8A75-CB1F75F0E425/2048.jpeg" data-hires="false" alt=""></div><p>Sometimes a good idea hits you like a splash of cold water.</p>
77 <p>Fares Ksebati cocreated <em>MySwimPro</em> in 2015 to provide a deep pool of aquatic workout videos for like-minded athletes. The app syncs with Apple Health to keep your swimming and workout data secure. With 2021 being an Olympic year, he and cofounder Adam Oxner are poised to make even bigger waves: “Swimming gets a lot of public notoriety every four years,” says Ksebati. </p>
78 <p>We spoke to Ksebati, a three-time U.S. Masters swimming champion, about the power of incremental change and what every entrepreneur should know before diving into app development.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/539371B3-8210-4AF2-B681-31A0F4BD4BD6/2048.jpeg" data-hires="false" alt="No pool? MySwimPro has hundreds of dryland videos to help swimmers stay in shape."><p class="typography-caption">No pool? MySwimPro has hundreds of dryland videos to help swimmers stay in shape.</p></div><p><strong>How did you start creating apps?</strong>
79 Before launching MySwimPro in 2015, I worked at four different startups and was always coaching swimming on the side. At the time, there was really nothing that addressed swimmers, so that’s when the light-bulb moment happened. </p>
80 <p>If you work on something you understand intimately, it’s a lot easier because you have that intuition, that unique lens. I’m a swimmer and a coach, but above all I’m a swimming nerd. I not only understand it but I care about it.</p>
81 <p><strong>How is the MySwimPro team structured these days?</strong>
82 Our HQ is technically in Ann Arbor, but we have team members across the United States and a few countries like Turkey and Ukraine. The app is in nine languages, and we were able to do most of that in-house because we speak almost a dozen languages on our team, which is really unique.</p>
83 <p><strong>What do you do as a team to stay motivated?</strong>
84 Go to the pool! I literally went for a swim two hours ago. Because we’re a fitness brand, it’s part of our culture to take a break in the middle of the day. I want everybody to feel comfortable doing that, even if they’re not swimming.</p>
85 <p><strong>What’s been the most challenging time for your team, and how did you get through it?</strong>
86 Back in March, when pools were closing, we thought, “OK, this could be two or three years, but we can’t sit around and do nothing.” So we took action very quickly, creating 200 dryland videos and eight training programs. We went to my brother’s house and rearranged his living room into an at-home fitness facility.</p>
87 <p><strong>What do you know now that you wish you’d known when you started?</strong>
88 That it's really important to be consistent, that it takes time to develop, and that if you can just be a little bit better every single day, the compounding impact is absolutely insane. We’ve been at this for five years, which is more than 1,800 days, and we’re trying to be at least 1 percent better each day.</p><hr><p><em>Originally published on the App Store.</em></p><p><a href="https://apps.apple.com/us/app/myswimpro-1-swim-workout-app/id994386450" class="icon icon-after icon-chevronright">Learn more about MySwimPro on the App Store</a></p><p><a href="https://developer.apple.com/app-store/small-business-program/" class="icon icon-after icon-chevronright">Learn more about the App Store Small Business Program</a></p></description>
89 <pubDate>Fri, 29 Jan 2021 04:00:27 PST</pubDate>
90 </item>
91 <item>
92 <title>AppTrackingTransparency requirement update</title>
93 <link>https://developer.apple.com/news/?id=8rm6injj</link>
94 <guid>https://developer.apple.com/news/?id=8rm6injj</guid>
95 <description><p>Late last year, to give you additional time to prepare, we had temporarily deferred the requirement to use AppTrackingTransparency when requesting permission to track users and access device advertising identifiers. This requirement now goes into effect starting with the upcoming beta update, and will roll out to everyone in early spring with an upcoming release of iOS&nbsp;14, iPadOS&nbsp;14, and tvOS&nbsp;14. We encourage you to verify your app’s implementation of AppTrackingTransparency as soon as possible. Without the user’s permission, you will not be allowed to track them and the device’s advertising identifier value will be all zeros.</p>
96 <p>In an upcoming release of iOS and iPadOS, we will enhance SKAdNetwork and add Private Click Measurement support for apps, allowing advertising networks to better attribute advertisements that display within apps on these platforms. Private Click Measurement enables the measurement of ad campaigns that direct users to websites while preserving user privacy. Additional details are coming&nbsp;soon.</p>
97 <p><a href="https://developer.apple.com/app-store/user-privacy-and-data-use/">Learn more about user privacy and <span class="icon icon-after icon-chevronright nowrap">data use</span></a></p></description>
98 <pubDate>Thu, 28 Jan 2021 20:37:32 PST</pubDate>
99 </item>
100 <item>
101 <title>Identity Pinning: How to configure server certificates for your app</title>
102 <link>https://developer.apple.com/news/?id=g9ejcf8y</link>
103 <guid>https://developer.apple.com/news/?id=g9ejcf8y</guid>
104 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/B482D0A4-3389-4A58-8420-427E84A64CD0/2048.jpeg" data-hires="false" alt=""></div><p>If your app sends or receives data over the network, it’s critical to preserve the privacy and integrity of a person’s information and protect it from data breaches and attacks. You should use the Transport Layer Security (TLS) protocol to protect content in transit and authenticate the server receiving the data.</p>
105 <p>When you connect through TLS, the server provides a certificate or certificate chain to establish its identity. You can further limit the set of server certificates your app trusts by pinning their public-key identities in your app. Here’s how to get started.</p><h3>When to use pinning</h3><p>By default, when your app connects to a secure TLS network, the system evaluates server trustworthiness by default. Most apps can meet their security requirements by relying on this behavior; however, certain apps may need to further limit the set of trusted certificates.</p>
106 <p>For example, your app may need to meet regulatory requirements that determine which specific Certificate Authorities (CAs) can be trusted. While Apple platforms ensure by default that only trustworthy CAs are involved, your app can use identity pinning to further limit the set of CAs to those associated with a particular government or organization.</p>
107 <p>Pinning cannot loosen the trust requirements of your app — it can only tighten them. You still always need to meet the system’s default trust requirements when using public-key certificates involved in a TLS network connection.</p><hr><p><em>Note: When you’ve configured your app to expect a specific set of public keys for a given server, it will refuse to connect to that server unless those public keys are involved. As a result, if the server deploys new certificates that alter the public keys, your app will refuse to connect. At that point, you’ll need to update your app with a pinning configuration that reflects the new set of public keys.</em></p><hr><h3>Think long term</h3><p>If you want to use identity pinning in your app, consider creating a long-term strategy that accounts for both planned and unplanned events so that you can prevent pinning failures.</p>
108 <p>Your app can proactively provide a great experience by pinning the public keys of CAs, instead of servers. This way, you can deploy server certificates that contain new public keys signed by the same CA without the need for pinning configuration updates.</p>
109 <p>You can also consider pinning more than one public key, especially when pinning server identities. This way, your app will still be able to connect to configured servers even if they revoke or rotate certificates.</p>
110 <p>Additionally, plan to provide a fallback experience in your app if it’s unable to connect to a server in the event of a pinning failure. First, think of ways your app experience may be impacted, and come up with mitigating solutions for any negative side effects. Can the app still function without making that connection, and can you provide someone with a temporary recovery path?</p>
111 <p>You’ll also want to plan for an eventual recovery path. One way you can address pinning failures is through a new pinning configuration, delivered via app update. Consider whether that’s an option given the use cases of your app.</p>
112 <p>We highly recommend simulating various events and potential failure points when testing your app by acquiring additional public-key certificates for this purpose and varying the configuration of your server accordingly.</p><h3>How to pin CA public keys</h3><p>A pinned CA public key must appear in a certificate chain either in an intermediate or root certificate. Pinned keys are always associated with a domain name, and the app will refuse to connect to that domain unless the pinning requirement is met.</p>
113 <p>As an example, to require the presence of a specific CA public key when connecting to the <code>example.org</code> domain name, you can add the following entries to the <code>Info.plist</code> file of your app.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/9F9C623B-1CA9-4A49-A5AA-71C265A73B2D/2048.jpeg" data-hires="false" alt="NSAppTransportSecurity
114
115 NSPinnedDomains
116
117 example.org
118
119 NSIncludesSubdomains
120
121 NSPinnedCAIdentities
122
123
124 SPKI-SHA256-BASE64
125 r/mIkG3eEpVdm+u/ko/cwxzOMo1bk4TyHIlByibiA5E=
126
127
128
129
130 "></div><pre class="code-source"><code><span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>NSAppTransportSecurity<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
131 <span class="syntax-tag">&lt;<span class="syntax-name">dict</span>&gt;</span>
132 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>NSPinnedDomains<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
133 <span class="syntax-tag">&lt;<span class="syntax-name">dict</span>&gt;</span>
134 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>example.org<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
135 <span class="syntax-tag">&lt;<span class="syntax-name">dict</span>&gt;</span>
136 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>NSIncludesSubdomains<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
137 <span class="syntax-tag">&lt;<span class="syntax-name">true</span>/&gt;</span>
138 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>NSPinnedCAIdentities<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
139 <span class="syntax-tag">&lt;<span class="syntax-name">array</span>&gt;</span>
140 <span class="syntax-tag">&lt;<span class="syntax-name">dict</span>&gt;</span>
141 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>SPKI-SHA256-BASE64<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
142 <span class="syntax-tag">&lt;<span class="syntax-name">string</span>&gt;</span>r/mIkG3eEpVdm+u/ko/cwxzOMo1bk4TyHIlByibiA5E=<span class="syntax-tag">&lt;/<span class="syntax-name">string</span>&gt;</span>
143 <span class="syntax-tag">&lt;/<span class="syntax-name">dict</span>&gt;</span>
144 <span class="syntax-tag">&lt;/<span class="syntax-name">array</span>&gt;</span>
145 <span class="syntax-tag">&lt;/<span class="syntax-name">dict</span>&gt;</span>
146 <span class="syntax-tag">&lt;/<span class="syntax-name">dict</span>&gt;</span>
147 <span class="syntax-tag">&lt;/<span class="syntax-name">dict</span>&gt;</span></code></pre><p>In this example, the pinned public key is associated with <code>example.org</code> and also subdomains such as <code>math.example.org</code> and <code>history.example.org</code>, but it won’t be associated with <code>advanced.math.example.org</code>, or <code>ancient.history.example.org</code>.</p>
148 <p>The public key is expressed as the Base64-encoded SHA-256 digest of an X.509 certificate’s DER-encoded ASN.1 Subject Public Key Info structure. Assuming the following PEM-encoded public-key certificate, stored in file <code>ca.pem</code>, you can calculate its SPKI-SHA256-BASE64 value with the <code>openssl</code> command.</p><pre class="code-source"><code>-----BEGIN CERTIFICATE-----
149 MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
150 MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
151 d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
152 QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
153 MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
154 b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
155 9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
156 CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
157 nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
158 43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
159 T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
160 gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
161 BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
162 TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
163 DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
164 hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
165 06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
166 PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
167 YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
168 CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
169 -----END CERTIFICATE-----
170
171 $ cat ca.pem | openssl x509 -inform pem -noout -outform pem -pubkey | openssl pkey -pubin -inform pem -outform der | openssl dgst -sha256 -binary | openssl enc -base64</code></pre><p>To introduce redundancy into your pinning configuration, you can associate multiple public keys with a domain name. </p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/E44F6BA7-FBD3-45CB-A7D1-915B94D53DF3/2048.jpeg" data-hires="false" alt="Screenshot of NSPinnedLeafIdentities: App Transport Security Settings — Dictionary — 1 item
172 NSPinned Domains — Dictionary — 2 items
173 example.org — Dictionary — 2 items
174 example.net — Dictionary — 1 item
175 NSPinnedLeafIdentities — Array — 2 items
176 Item 0 — Dictionary — 1 item
177 SPKI-SHA256-BASE64 — String — i9HalScvf6T/skE3/A7QOq5n5cTYs8UHNOEFCnkguSI=
178 Item 1 — Dictionary — 1 item
179 SPKI-SHA256-BASE64 — String — i9HalScvf6T/skE3/A7QOq5n5cTYs8UHNOEFCnkguSI="></div><pre class="code-source"><code><span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>NSAppTransportSecurity<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
180 <span class="syntax-tag">&lt;<span class="syntax-name">dict</span>&gt;</span>
181 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>NSPinnedDomains<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
182 <span class="syntax-tag">&lt;<span class="syntax-name">dict</span>&gt;</span>
183 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>example.org<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
184 <span class="syntax-tag">&lt;<span class="syntax-name">dict</span>&gt;</span>
185 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>NSIncludesSubdomains<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
186 <span class="syntax-tag">&lt;<span class="syntax-name">true</span>/&gt;</span>
187 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>NSPinnedCAIdentities<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
188 <span class="syntax-tag">&lt;<span class="syntax-name">array</span>&gt;</span>
189 <span class="syntax-tag">&lt;<span class="syntax-name">dict</span>&gt;</span>
190 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>SPKI-SHA256-BASE64<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
191 <span class="syntax-tag">&lt;<span class="syntax-name">string</span>&gt;</span>r/mIkG3eEpVdm+u/ko/cwxzOMo1bk4TyHIlByibiA5E=<span class="syntax-tag">&lt;/<span class="syntax-name">string</span>&gt;</span>
192 <span class="syntax-tag">&lt;/<span class="syntax-name">dict</span>&gt;</span>
193 <span class="syntax-tag">&lt;/<span class="syntax-name">array</span>&gt;</span>
194 <span class="syntax-tag">&lt;/<span class="syntax-name">dict</span>&gt;</span>
195 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>example.net<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
196 <span class="syntax-tag">&lt;<span class="syntax-name">dict</span>&gt;</span>
197 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>NSPinnedLeafIdentities<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
198 <span class="syntax-tag">&lt;<span class="syntax-name">array</span>&gt;</span>
199 <span class="syntax-tag">&lt;<span class="syntax-name">dict</span>&gt;</span>
200 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>SPKI-SHA256-BASE64<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
201 <span class="syntax-tag">&lt;<span class="syntax-name">string</span>&gt;</span>i9HaIScvf6T/skE3/A7QOq5n5cTYs8UHNOEFCnkguSI=<span class="syntax-tag">&lt;/<span class="syntax-name">string</span>&gt;</span>
202 <span class="syntax-tag">&lt;/<span class="syntax-name">dict</span>&gt;</span>
203 <span class="syntax-tag">&lt;<span class="syntax-name">dict</span>&gt;</span>
204 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>SPKI-SHA256-BASE64<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
205 <span class="syntax-tag">&lt;<span class="syntax-name">string</span>&gt;</span>i9HaIScvf6T/skE3/A7QOq5n5cTYs8UHNOEFCnkguSI=<span class="syntax-tag">&lt;/<span class="syntax-name">string</span>&gt;</span>
206 <span class="syntax-tag">&lt;/<span class="syntax-name">dict</span>&gt;</span>
207 <span class="syntax-tag">&lt;/<span class="syntax-name">array</span>&gt;</span>
208 <span class="syntax-tag">&lt;/<span class="syntax-name">dict</span>&gt;</span>
209 <span class="syntax-tag">&lt;/<span class="syntax-name">dict</span>&gt;</span>
210 <span class="syntax-tag">&lt;/<span class="syntax-name">dict</span>&gt;</span></code></pre><p>For example, to pin multiple public keys for the <code>example.net</code> server certificate, you would add individual entries as items in an array to the <code>Info.plist</code> file of your app. To satisfy the pinning requirement for a connection to <code>example.net</code>, the server certificate must include one of those keys.</p><h3>Resources</h3><p><a href="https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity" class="icon icon-after icon-chevronright">Learn more about NSAppTransportSecurity</a></p></description>
211 <pubDate>Thu, 14 Jan 2021 16:29:31 PST</pubDate>
212 </item>
213 <item>
214 <title>Meet App Clip Codes</title>
215 <link>https://developer.apple.com/news/?id=g9qbtdvu</link>
216 <guid>https://developer.apple.com/news/?id=g9qbtdvu</guid>
217 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/4367279B-E1C6-44AF-B86E-E0142DCECE66/2048.jpeg" data-hires="false" alt="App Clips icon on blue background"></div><p>App Clip Codes are customizable Apple-designed markers built to launch your App Clip. When someone scans your App Clip Code, it will bring up your App Clip or, if the person already has your app installed, will directly launch into a specific part of your app. Each code has a distinct design: It’s immediately recognizable, unique to each App Clip, and provides people with a secure and reliable way to trigger your experience. Codes can even incorporate an NFC tag, allowing people to open an App Clip by simply holding their iPhone nearby without needing to scan it through the Camera app.</p>
218 <p>You can easily make App Clip Codes and customize them to match your company’s brand or internal designs. Here’s how you can create new codes and pick the right code for the experience you want to provide to your customers.</p><h3>Plan for your App Clip experience</h3><p>To create new App Clip Codes, use the App Clip Code Generator. When you make a new code, you can choose its colors, assign a custom URL that resolves for your app, and decide whether to create a code that supports NFC (Near Field Communication).</p><p><strong>Single vs multiple App Clip Codes</strong>
219 If you’ve created a single App Clip for your app, you can make a single App Clip Code so that everyone who scans the code gets the same information. For example, if you own a restaurant, placing the same App Clip Code at every table can bring up an App Clip with your digital menu and payment options. Every instance of the single code delivers the same experience.</p>
220 <p>You can also duplicate the same App Clip Code for use on items like hardware packaging: For instance, if you have a product that requires an in-app setup experience, you can add the same App Clip Code to your packaging to bring your customers directly to the setup experience or interactive instruction manual. As with the restaurant example, you’re always bringing customers to the same experience within your app, so you only need to create a single unique App Clip Code and duplicate it across your material. </p>
221 <p>If you offer multiple App Clips or advanced App Clip experiences, you can create unique codes for each experience. For example, if you have an app for your restaurant and want to offer an App Clip for ordering takeout on your advertising as well as a different App Clip for people ordering at your restaurant's outdoor tables, you can create discrete App Clip Codes for each that invoke different parts of the app.</p><p><strong>Should you use NFC?</strong>
222 People can interact with App Clip Codes in two ways: Scan Only or NFC. Scanned codes work when someone uses the Barcode reader or the Camera app on iPhone or iPad to view the code, which then delivers a customized URL they can tap on that brings them into the app. In contrast, NFC-integrated codes let people simply hold their device near an App Clip Code to invoke the App Clip.</p>
223 <p>While you have the flexibility to choose either type to best suit your needs, we recommend using an NFC-integrated App Clip Code whenever someone can easily physically access your App Clip Code. Examples include: </p>
224 <ul>
225 <li>On a restaurant tabletop</li>
226 <li>Near point-of-sale hardware systems </li>
227 <li>In a storefront window</li>
228 <li>On easily-accessible signage</li>
229 <li>On a gift card, coupon, or other offer</li>
230 </ul>
231 <p>If you integrate an NFC tag with your App Clip code, be sure to use a Type 5 NFC tag at least 35mm in diameter (or equivalent) to ensure the best experience.</p><p><a href="https://developer.apple.com/design/human-interface-guidelines/ios/user-interaction/near-field-communication/" class="icon icon-after icon-chevronright">Learn more about designing for NFC</a></p><p>If your code is displayed digitally or in an area where NFC doesn’t make sense, use the Scan Only version. Examples include:</p>
232 <ul>
233 <li>On distant posters or street advertising</li>
234 <li>On signage behind a counter or otherwise out of reach</li>
235 <li>In digital materials such as an email or social media images</li>
236 </ul><p><strong>Customize the look of your App Clip Code</strong>
237 To make your App Clip Code stand out, you can customize the foreground and background color and create something consistent with your app or company’s brand. App Store Connect provides both default App Clip Code colors and an option for selecting your own colors. Note that if you choose the latter option, Apple will automatically generate the third color in the App Clip Code to ensure sufficient contrast for an accurate scanning experience.</p><h3>Create your App Clip Code</h3><p>Once you’re ready to make your own App Clip Codes, you can get started in App Store Connect or through Apple’s command line tools. App Clip Codes are easy to create, letting you get your App Clip experiences up and running and helping people quickly access the right parts of your app at the right moment.</p><h3>Resources</h3><p><a href="" class="icon icon-after icon-chevronright"></a></p><p><a href="https://developer.apple.com/design/human-interface-guidelines/app-clips/overview/app-clip-codes/" class="icon icon-after icon-chevronright">Learn more about designing App Clip Codes</a></p>
238 <section class="grid activity">
239 <section class="row">
240 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
241 <a href="https://developer.apple.com/wwdc20/10174" class="activity-image-link">
242 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3575/3575_wide_250x141_2x.jpg" data-hires="false" alt="">
243 </a>
244 </section>
245 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
246 <ul class="activity-tags">
247 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
248 </ul>
249 <a href="https://developer.apple.com/wwdc20/10174">
250 <h4 class="no-margin-bottom activity-title">Explore App Clips</h4>
251 </a>
252
253 <p class="activity-description">Help people experience the right parts of your app at the exact moment they need them. We’ll explain how to design and build an App Clip — a small part of your app that focuses on a specific task — and make it easily discoverable. Learn how to focus your App Clip on short and fast...</p>
254 </section>
255 </section>
256 </section>
257 <section class="grid activity">
258 <section class="row">
259 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
260 <a href="https://developer.apple.com/wwdc20/10146" class="activity-image-link">
261 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3576/3576_wide_250x141_2x.jpg" data-hires="false" alt="">
262 </a>
263 </section>
264 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
265 <ul class="activity-tags">
266 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
267 </ul>
268 <a href="https://developer.apple.com/wwdc20/10146">
269 <h4 class="no-margin-bottom activity-title">Configure and link your App Clips</h4>
270 </a>
271
272 <p class="activity-description">App Clips are small parts of an app that offer a streamlined, direct experience and help people get what they need at the right time. Learn how you can invoke an App Clip through real-world experiences like App Clip Codes, NFC, and QR codes, or have them appear digitally through apps like Maps or...</p>
273 </section>
274 </section>
275 </section></description>
276 <pubDate>Wed, 13 Jan 2021 09:00:14 PST</pubDate>
277 </item>
278 <item>
279 <title>Design and implement macOS document icons</title>
280 <link>https://developer.apple.com/news/?id=5i6jlf4d</link>
281 <guid>https://developer.apple.com/news/?id=5i6jlf4d</guid>
282 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/19215656-71F6-410E-A1AD-042664BC6DC7/2048.jpeg" data-hires="false" alt="MacOS 11 document icon grid"></div><p>A good document icon aids in the identification of your file on the Desktop, in a Finder window, or in an open dialog, especially when previews aren’t available. These icons may be displayed on screen as small as 16pt or large enough to showcase every glorious design detail. </p>
283 <p>Depending on the file type and personal preference, document icons can also display document previews. If someone has chosen not to show document extensions in System Preferences, these icons can additionally provide additional context in deciphering their file type and native program.</p>
284 <p>With macOS Big Sur, you can customize and control how your app’s document icons display across the system. We’ll show you how to design a great icon, integrate it into your Xcode project, and assign document types and type identifiers.</p><h3>Design a document icon for your app</h3><p>By default, if you don’t specify a document icon for a file type in your app, macOS will automatically create one for you by compositing your app’s icon together with the correct extension name. This is a common pattern for imported document types or non-proprietary file formats that your application can open such as MP3, JPG or PNG. </p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/BE2C4F59-844E-4080-9189-709E29E90884/2048.jpeg" data-hires="false" alt="Both the Music and Preview apps use system-generated document icons for document types like JPG and MP3."><p class="typography-caption">Both the Music and Preview apps use system-generated document icons for document types like JPG and MP3.</p></div><p>You can additionally create a custom document icon if your app supports multiple file types and you’d like to visually distinguish between them. For example, a drawing application may open a jpg file, a project file, a library of drawing components, a plugin or a color swatch. </p>
285 <p>When creating a custom icon, we recommend keeping its design simple. Try to depict what your icon represents as closely as possible and with as few details as possible. Additionally, think of other document types that your document may commonly be next to, and use distinct shapes and colors that are identifiable even at smaller sizes. </p>
286 <p>If you plan to create multiple custom icons for different file types, it’s important to make each design distinct and understandable to help people know what to expect when they open them.</p><p><strong>The elements of a custom document icon</strong>
287 Beginning with macOS Big Sur, you can generate a new custom document icon with a set of images and a text string.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/81D11BBA-390E-4620-8962-C8FA9CE064BF/2048.jpeg" data-hires="false" alt="Breaking down document icon composition"></div><p>To create a new custom document icon, you can provide a background fill, center image, or text string. Each of these three elements is optional, allowing you to use just one element or any combination of the three to customize your icon. From there, macOS will automatically layer, position, and mask these elements, then composite them into a page icon with a right corner fold.</p><hr><p><em>You can download Sketch and Photoshop templates on Apple Design Resources to assist in the generation of the image assets in all their required sizes.</em> </p><p><a href="https://developer.apple.com/design/resources/" class="icon icon-after icon-chevronright">Apple Design Resources</a></p><hr><p><strong>Fill in the background</strong>
288 The background image allows you to customize the background of your icon. The art should fill the entire drawing area, as shown below, and the system will automatically mask it to the document shape in all sizes.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/12728B64-9A6C-4DE3-92B1-2444AA8299A5/2048.jpeg" data-hires="false" alt="Document icon background"></div><p>Background images can not only be used to change the background of your document, but you can also use them to create custom designs that fill the entire page.</p><p>The background image should be drawn in the following sizes:</p>
289 <ul>
290 <li>512x512</li>
291 <li>512x512@2x</li>
292 <li>256x256</li>
293 <li>256x256@2x</li>
294 <li>128x128</li>
295 <li>128x128@2x</li>
296 <li>32x32</li>
297 <li>32x32@2x</li>
298 <li>16x16</li>
299 <li>16x16@2x</li>
300 </ul><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/C18161D1-D5AD-4AF7-A25F-32BDCD817FE1/2048.jpeg" data-hires="false" alt="The Xcode Project icon and the Rich Text Format icons use nothing but the background fill element to create a custom look and feel."><p class="typography-caption">The Xcode Project icon and the Rich Text Format icons use nothing but the background fill element to create a custom look and feel.</p></div><p><strong>Add a center image</strong>
301 The center image is always half the size of the document canvas. For example, the center image displays at 16pt on a 32pt icon size.</p>
302 <p>The bulk of the artwork for the center image should be drawn at ~80% of the canvas size. For example, on the 256x256 version, the drawing should be inside a 205x205 area, as shown in the image below. Curves and points can extend into the margin to adjust for optical alignment.</p>
303 <p>The shape of the artwork should be simple to make it easily identifiable in smaller sizes. The rendering, however, can be as simple or as rich as you’d like.</p>
304 <p>The center image can be specified in the following sizes:</p>
305 <ul>
306 <li>256x256</li>
307 <li>256x256@2x</li>
308 <li>128x128</li>
309 <li>128x128@2x</li>
310 <li>32x32</li>
311 <li>32x32@2x</li>
312 <li>16x16</li>
313 <li>16x16@2x</li>
314 </ul><p><strong>Add some textual context</strong>
315 The icon’s text string will often be your document’s extension, but can also be something more descriptive. For example, "SCENE" is more descriptive — and easier for someone to understand — than "scn."</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/0D3C54DA-BBF1-4426-B527-6057E0B03F05/2048.jpeg" data-hires="false" alt="The Swift and Metal document icons both use text strings to clearly identify their document types."><p class="typography-caption">The Swift and Metal document icons both use text strings to clearly identify their document types.</p></div><p>The system will capitalize and scale the text to fit inside the icon, so it’s important to keep the length of your string as short of possible to prevent it from getting too small. The text will also automatically change its color to remain legible against flat colored backgrounds.</p><h3>Build document icons in your app</h3><p>To create your document icon types, you’ll need to integrate these elements into your Xcode project.</p>
316 <p><strong>Bring images into the asset catalog</strong>
317 First, add your background fill image and/or center image into the Asset Catalog as Generic Icons.</p>
318 <ol>
319 <li>In Xcode, click the <strong>+ button</strong> within your Asset Catalog.</li>
320 <li>Choose <strong>macOS &gt; macOS Generic Icon.</strong></li>
321 <li>Drag your assets into their respective size slots. </li>
322 </ol>
323 <p>If your assets are named using the format <em>icon_[size]x[size][@resolution].png</em> (e.g. <em>icon_32x32@2x.png</em> or <em>icon_32x32.png</em>), they can all be dragged at once and will automatically be assigned to their appropriate size slots.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/AB0758F1-9BA5-4A0E-95F5-92990816F9E9/2048.jpeg" data-hires="false" alt="Asset Catalog with an image set of center images."></div><p><strong>Configure the Document Type Identifier</strong>
324 Click the Imported/Exported Type Identifier disclosure triangle to add a new Document Type Identifier or open an existing one.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/677209B2-A9EB-4055-B4BA-4C28A00C2155/2048.jpeg" data-hires="false" alt="Example: Document Type configuration"></div><ul>
325 <li><strong>Icon Image</strong> (optional): Select a Center Image from your app’s Asset Catalog.</li>
326 <li><strong>Icon Fill</strong> (optional): Select a Background Fill Image from your app’s Asset Catalog</li>
327 <li><strong>Icon Text </strong> (optional): Input the text you want displayed on the bottom of the document icon. This can be the same as the extension or something more descriptive. For example, the <em>scn</em> extension can use <em>scene</em> as its text.</li>
328 <li><strong>Legacy Icon</strong> (optional): This is either an .icns file or a Generic Icon in your Asset Catalog which will be used if you deploy your application to macOS 10.15 and below or in macOS 11 if Icon Image, Icon Fill and Icon Text are left blank. If you don’t provide a legacy icon, macOS 10.15 and earlier will create one for you by compositing your app’s icon inside the old style document sheet. If a Legacy Icon was specified in the Document Type section, it will override this.</li>
329 </ul><p><a href="https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_declare/understand_utis_declare.html" class="icon icon-after icon-chevronright">Declaring New Uniform Type Identifiers</a></p><p><strong>Configure your document icons</strong></p>
330 <p>Here’s how to indicate whether you want to display a legacy document icon, a custom icon, a programmatic option.</p>
331 <ol>
332 <li>In Xcode’s Project navigator, <strong>select</strong> the project file.</li>
333 <li>Select your <strong>app's target</strong> from the target list.</li>
334 <li>Choose the <strong>Info</strong> tab.</li>
335 </ol>
336 <p>Click the Document Type disclosure triangle to add a new Document Type or open an existing one.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/A918864B-DE93-4B24-B0D8-9A147C27145E/2048.jpeg" data-hires="false" alt="Document type configuration panel"></div><p>You’ll have two options here for iconography:</p>
337 <ul>
338 <li><strong>Legacy Icon</strong> (optional): This is either an .icns file or a Generic Icon in your Asset Catalog. macOS uses legacy icons if you deploy your app to macOS 10.15 or earlier, or if you want a custom icon on macOS 11. If you don’t provide a legacy icon, macOS 10.15 and earlier will create one for you by compositing your app’s icon inside the old style document sheet. If you’ve specified a Legacy Icon in the Document Type Identifier, the one in the Document Type will override it.</li>
339 <li><strong>Use system generated icons</strong>: Check this box if you’ve defined an Icon Fill, Image or Text in the Document Type Identifier for use in macOS 11 and above, or you want the system to use your App’s icon and extension name as your icon. If you leave this box unchecked, macOS will use your Legacy Icon for that document type even when running macOS 11 and above.</li>
340 </ul><p><a href="https://developer.apple.com/documentation/appkit/documents_data_and_pasteboard/developing_a_document-based_app" class="icon icon-after icon-chevronright">Developing a Document-Based App</a></p><p><strong>Validate your app document icons</strong></p>
341 <p>You can test your new document icons in your app by building and running your app. Here’s what you need to do.</p><ol>
342 <li><strong>Remove</strong> all other versions of your app from your test system and empty the Trash.</li>
343 <li><strong>Open</strong> your app project in Xcode</li>
344 <li><strong>Build and run</strong> your app</li>
345 <li><strong>Gather</strong> test assets by creating a new folder and adding one of each document type. </li>
346 <li><strong>Open</strong> the test asset folder in Finder.</li>
347 <li>In Finder, go to <strong>View &gt; Show View Options</strong> to open the “View Options” window for your test asset folder.</li>
348 <li>Make sure that “Show icon preview” is unchecked. </li>
349 </ol><h3>Bring some life into your documents</h3><p>Document icons in macOS Big Sur are an excellent way to further refine your app’s design on Mac and help people identify the correct file at a glance. For more support on creating these icons, be sure to check out the Apple Design Resources and developer documentation.</p><p><em>Updated on January 11, 2021 to provide more information about legacy icons.</em></p><h3>Resources</h3><p><a href="https://developer.apple.com/design/human-interface-guidelines/macos/icons-and-images/document-icons/" class="icon icon-after icon-chevronright">Learn more about designing document icons</a></p><p><a href="https://developer.apple.com/design/resources/" class="icon icon-after icon-chevronright">Apple Design Resources</a></p><p><a href="https://developer.apple.com/documentation/appkit/documents_data_and_pasteboard/developing_a_document-based_app" class="icon icon-after icon-chevronright">Developing a Document-Based App</a></p><p><a href="https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html" class="icon icon-after icon-chevronright">Uniform Type Identifier Concepts</a></p><p><a href="https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_declare/understand_utis_declare.html" class="icon icon-after icon-chevronright">Declaring New Uniform Type Identifiers</a></p><p><a href="https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/understanding_utis/understand_utis.tasks/understand_utis_tasks.html#//apple_ref/doc/uid/TP40001319-CH203-BABHCIAC" class="icon icon-after icon-chevronright">Adopting Uniform Type Identifiers</a></p><p><a href="https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_intro/understand_utis_intro.html" class="icon icon-after icon-chevronright">Introduction to Uniform Type Identifiers</a></p></description>
350 <pubDate>Mon, 11 Jan 2021 09:30:21 PST</pubDate>
351 </item>
352 <item>
353 <title>How to convert existing web extensions for Safari</title>
354 <link>https://developer.apple.com/news/?id=qiz0arxc</link>
355 <guid>https://developer.apple.com/news/?id=qiz0arxc</guid>
356 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/B2224639-456F-44E9-B977-1A086E51CBE7/2048.jpeg" data-hires="false" alt="Web extension icon"></div><p>When you create a Safari Web Extension, you can help people get common online tasks done more quickly and efficiently — all while using the same extension model and APIs found in extensions for Google Chrome, Mozilla Firefox, and Microsoft Edge browsers.</p>
357 <p>If you have an existing web extension you’d like to prepare for distribution in the Mac App Store, it’s easy to to get started with the converter tool in Xcode 12. Here’s how to go about it.</p>
358 <section class="grid activity">
359 <section class="row">
360 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
361 <a href="https://developer.apple.com/wwdc20/10665" class="activity-image-link">
362 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3409/3409_wide_250x141_2x.jpg" data-hires="false" alt="">
363 </a>
364 </section>
365 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
366 <ul class="activity-tags">
367 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
368 </ul>
369 <a href="https://developer.apple.com/wwdc20/10665">
370 <h4 class="no-margin-bottom activity-title">Meet Safari Web Extensions</h4>
371 </a>
372
373 <p class="activity-description">When you create a Safari Web Extension, you can help people get common online tasks done more quickly and efficiently. We’ll show you how to build a new Safari Web Extension and host it on the App Store, as well as how to use the safari-web-extension-converter tool to migrate existing extensions...</p>
374 </section>
375 </section>
376 </section><p><a href="https://developer.apple.com/documentation/safariservices/safari_web_extensions" class="icon icon-after icon-chevronright">Learn more about Safari Web Extensions</a></p><h3>Convert an extension</h3><p>Before getting started, make sure you’ve installed the latest versions of Xcode 12, Command Line Tools, and Safari 14. When ready, you can then run the following command in the Terminal app:</p><pre class="code-source"><code>xcrun safari-web-extension-converter /path/to/my/extension/</code></pre><p>The converter tool will search for your extension’s manifest at <code>./path/to/my/extension/manifest.json</code> and generate a default configuration for your Xcode project. If the configuration appears correct, type <code>yes</code> at the prompt and press the <strong>Return</strong> key. If not, type <code>no</code> and you can enter the converter tool’s interactive mode to customize the configuration.</p><hr><p><em><strong>Note: Verify your keys</strong></em>
377 <em>During the conversion process, <code>safari-web-extension-converter</code> will look through your manifest for any keys that aren’t supported by your installed version of Safari. If Xcode finds any issues, the app will display a warning message. If you receive this, consider whether the affected keys are critical for your extension to function. You may still be able to leave these keys in place and have everything run smoothly, but be sure to test your extension to confirm.</em></p><hr><h3>Adjust a converted extension in Xcode</h3><p>Safari Web Extensions require a container app so that you can easily distribute your extension on the Mac App Store. As part of the conversion process, Xcode automatically creates and opens a container app project that contains your extension files. From here, you can test your extension, make any necessary code changes, update your extension’s icon, and upload your container app for distribution through the Mac App Store.</p><p><strong>Test, test, and test again</strong>
378 While inside your Xcode project, you can build and run your extension by either pressing <strong>Command-R</strong> or the <strong>Play</strong> button in the upper left portion of the screen. </p>
379 <p>Your container app has a button to open Safari Extensions preferences. Select this button to open Safari and enable your extension in the browser.</p>
380 <p>Note: If this is your first time testing an extension through Xcode, you’ll need to enable support for unsigned extensions in Safari. To do so, follow these steps:</p><ol>
381 <li>Open <strong>Safari</strong>.</li>
382 <li>Select <strong>Safari &gt; Preferences</strong>.</li>
383 <li>Navigate to the <strong>Advanced</strong> tab.</li>
384 <li>Check the <strong>”Show Develop menu in menu bar”</strong> checkbox.</li>
385 <li>Navigate to the Develop menu and select <strong>”Allow Unsigned Extensions.”</strong> You may have to enter your admin password to make changes.</li>
386 </ol><p><strong>Make any code changes</strong>
387 By default, your Xcode project references your extension’s existing content as well as native Swift or Objective-C code to create the container app. After testing, you can make any needed changes to this project; any alterations you make will automatically show up as part of your Safari Web Extension the next time you build your Xcode project.</p><p><strong>Update your icon</strong>
388 Xcode will use any extension icons listed in your manifest as your app icon, which will also display on your Mac App Store listing. Because Safari Web Extension icons are typically smaller, however, you may want to update to a higher-resolution version of this image for the best look. </p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/470BE20D-F527-460D-9F83-01EE7A0BF2F2/2048.jpeg" data-hires="false" alt="icon upload in Xcode screenshot"></div><p>To change your icons, select the Assets.xcassets folder in the Xcode sidebar, then drag the new icons into the appropriately-sized image wells.</p><p><strong>Add any additional files to your Xcode project</strong>
389 If you need to add additional resources or code files to your extension after conversion — for example, images used by your user interface or other dependencies missed during conversion — you will also need to manually include these files in your Xcode project.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/C9A3F8B1-F8D0-4D38-8946-E36996C3F100/2048.jpeg" data-hires="false" alt="Add files screen in Xcode"></div><p>To do so, select any additional files in Finder and drag them into the <strong>Resources</strong> folder within your Xcode project, located in the left sidebar. Uncheck <strong>’Copy items if needed’</strong> in the file dialog to make sure these files automatically associate with your app.</p><h3>Distribute your extension</h3><p>When you’re ready to share your extension, sign in with your Apple Developer account to App Store Connect and upload the container app to for distribution. Remember to review the App Store guidelines before submitting to the Mac App Store; Apple reviews all extensions and extension updates to verify they work reliably.</p><p><a href="https://developer.apple.com/app-store/review/guidelines/#extensions" class="icon icon-after icon-chevronright">Learn more about submitting extensions to the Mac App Store</a></p></description>
390 <pubDate>Tue, 05 Jan 2021 09:00:38 PST</pubDate>
391 </item>
392 <item>
393 <title>Prepare for Strong Customer Authentication transactions in the European Economic&nbsp;Area</title>
394 <link>https://developer.apple.com/news/?id=vbm17srg</link>
395 <guid>https://developer.apple.com/news/?id=vbm17srg</guid>
396 <description><p>Online purchase flows for users in the European Economic Area may be impacted by the European Union’s upcoming Strong Customer Authentication requirements. The App&nbsp;Store and Apple&nbsp;Pay will support Strong Customer Authentication. We recommend that you verify your app’s implementation of StoreKit and Apple&nbsp;Pay to make sure purchases are handled correctly.</p>
397 <p><a href="https://developer.apple.com/support/psd2/"><span class="icon icon-after icon-chevronright nowrap">Learn more</span></a></p></description>
398 <pubDate>Mon, 21 Dec 2020 16:26:24 PST</pubDate>
399 </item>
400 <item>
401 <title>App Clip Codes now available</title>
402 <link>https://developer.apple.com/news/?id=4c7j45dp</link>
403 <guid>https://developer.apple.com/news/?id=4c7j45dp</guid>
404 <description><p>Easily discoverable and quick to launch at the moment it’s needed, an App&nbsp;Clip is a small part of your app that lets users start and finish an experience in seconds. While you can offer users several ways to discover your App&nbsp;Clip, the best way is with an App&nbsp;Clip&nbsp;Code. Visually beautiful and distinct, each App&nbsp;Clip&nbsp;Code encodes a URL and can incorporate an NFC tag. Users can hold their iPhone near the code or scan it with the camera to open your App&nbsp;Clip and quickly complete a task, before downloading your app.</p>
405 <p>Codes can now be created in <a href="https://help.apple.com/app-store-connect/#/dev5b665db74">App&nbsp;Store Connect</a> or with the new command line <a href="https://developer.apple.com/documentation/app_clips/creating_app_clip_codes/creating_app_clip_codes_with_the_app_clip_code_generator">App&nbsp;Clip Code Generator</a>, which provides the flexibility to build your own batch generation process.</p>
406 <p><a href="https://developer.apple.com/design/human-interface-guidelines/app-clips/overview/app-clip-codes/">Learn <span class="icon icon-after icon-chevronright nowrap">about App&nbsp;Clip&nbsp;Codes</span></a></p></description>
407 <pubDate>Mon, 14 Dec 2020 16:10:59 PST</pubDate>
408 </item>
409 <item>
410 <title>App privacy labels now live on the App&nbsp;Store</title>
411 <link>https://developer.apple.com/news/?id=3wann9gh</link>
412 <guid>https://developer.apple.com/news/?id=3wann9gh</guid>
413 <description><p>The App&nbsp;Store now helps users better understand an app’s privacy practices before they download the app on any Apple platform. On each app’s product page, users can learn about some of the data types an app may collect, and whether that data is linked to them or used to track them. As a reminder, your app’s privacy information is required to submit new apps and app updates to the App Store, and some data is optional to disclose if it meets specific criteria, such as certain data from health research apps and regulated financial services. You may update your answers at any time without resubmitting your app or going through App&nbsp;Review.</p>
414 <p><a href="https://developer.apple.com/app-store/app-privacy-details/">Learn more about the details you’ll need <span class="icon icon-after icon-chevronright nowrap">to provide</span></a></p>
415 <p><a href="https://help.apple.com/app-store-connect/#/dev1b4647c5b">Learn how to provide app privacy information <span class="icon icon-after icon-chevronright nowrap">in App&nbsp;Store&nbsp;Connect</span></a></p></description>
416 <pubDate>Mon, 14 Dec 2020 13:46:57 PST</pubDate>
417 </item>
418 <item>
419 <title>How to store URLs in your App Clip Codes</title>
420 <link>https://developer.apple.com/news/?id=s2j9do6a</link>
421 <guid>https://developer.apple.com/news/?id=s2j9do6a</guid>
422 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/C3CF33F5-E861-4BE0-9ED8-C18A525BD337/2048.jpeg" data-hires="false" alt="App Clips icon on blue background"></div><p>An App Clip is a small part of your app which provides specific information that best suits a given task or situation. An App Clip Code activates your App Clip, helping people access relevant information wherever they happen to be — whether they’re picking up takeout from a restaurant, reading an article online, or passing by an advertisement in their neighborhood.</p>
423 <p>To make your App Clip Code, you’ll need to create a URL that directly connects to your content. And because codes can only hold a finite number of characters, you’ll need to design your URL efficiently. Here’s what you need to know to make and store a URL for your App Clip Code.</p><h3>How App Clip Code URLs work</h3><p>App Clip Codes support URLs in the following format:</p>
424 <p><code>https://[host][/&lt;optional path&gt;][?&lt;optional query&gt;][#&lt;optional fragment&gt;]</code></p>
425 <p>URLs must use the <code>https</code> scheme, all lowercase.</p>
426 <p>The host segment can only contain lowercase ASCII characters ‘a’ to ‘z’, ‘.’ and ‘-’ characters. Host is the only part of the <em>authority</em> component of the URL that is supported.</p>
427 <p>The rest of the URL can have zero or more path components, zero or more query components, and, optionally, a fragment component. These components can contain the following ASCII characters: <code>a</code> to <code>z</code>, <code>A</code> to <code>Z</code>, <code>0</code> to <code>9</code>, and <code>/#?=%-._,+;:&amp;</code>.</p><p><a href="https://developer.apple.com/documentation/app_clips/creating_app_clip_codes" class="icon icon-after icon-chevronright">Learn more about creating App Clip Codes</a></p><h3>How to store URLs efficiently in your App Clip Codes</h3><p>When creating a URL, you can optimize its string length to fit within the App Clip Code’s character limit in a number of different ways.</p><p><strong>Make it short and sweet</strong>
428 Above all, aim for your URLs to be as short and concise as possible. URLs with fewer characters, path, and query components have a better chance to fit into an App Clip Code.</p>
429 <p>We recommend using a short host name with as few subdomains as possible, as well as removing the <em>www</em> subdomain whenever possible. You’ll also want to omit a trailing ‘/’ character from the end of the URL if possible. For instance, <code>https://www.example.com/</code> can be changed to <code>https://example.com</code>.</p>
430 <p>If you do plan to use a subdomain, consider using <code>appclip</code> to define App Clip-specific URLs for App Clip Codes. This special subdomain is compressed efficiently and it allows URLs to have short path and query components by eliminating the possibility of a conflict with an unrelated functionality of your website. </p>
431 <p>While adding this subdomain is optional, if you do opt to use it, it must appear as the first subdomain of the URL’s host, like so: <code>https://appclip.example.com</code>.</p><p><strong>Optimize for compression</strong>
432 Consider using the minimum number of characters needed to uniquely identify a resource in your URLs, as long UUIDs will lower the effectiveness of the compression.</p>
433 <p>In addition, replace long query string argument names and values with short names and values to aid in compression. For example, you can turn argument names into shorter names and values into an enum, like so: <code>https://example.com/?status=view</code> could be restructured as <code>https://example.com/?p=0</code>.</p>
434 <p>Using decimal numbers as query parameter values may also lead to better compression of the URL.</p><p><strong>Choose your words carefully</strong>
435 App Clip Codes offer more effective URL encoding for certain words in the URL path component, like <code>account</code>, <code>app</code>, <code>download</code>, <code>shop</code>, <code>upload</code>, <code>visit</code>, and more. Consider using these whenever possible to improve your encoding and compression. You can view the full list of words within Apple’s documentation.</p><p><a href="https://developer.apple.com/documentation/app_clips/creating_app_clip_codes/encoding_a_url_in_an_app_clip_code" class="icon icon-after icon-chevronright">Learn more about encoding a URL in an App Clip Code</a></p><p>In addition, a URL that contains zero or one path component from the list of special words and contains zero or more query components with ordered argument names p, p1, p2, and the like has a higher likelihood of fitting in an App Clip Code. Some examples:</p>
436 <p><code>https://appclip.example.com/shop</code>
437 <code>https://appclip.example.com/shop?p=123</code>
438 <code>https://appclip.example.com/?p=123</code>
439 <code>https://appclip.example.com/?p=123&amp;p1=4632</code></p><h3>Resources</h3><p><a href="https://developer.apple.com/documentation/app_clips/creating_app_clip_codes/creating_app_clip_codes_with_app_store_connect" class="icon icon-after icon-chevronright">Learn more about creating App Clip Codes in App Store Connect</a></p><p><a href="https://developer.apple.com/documentation/app_clips/creating_app_clip_codes/creating_app_clip_codes_with_the_app_clip_code_generator" class="icon icon-after icon-chevronright">Learn how to generate App Clip Codes</a></p>
440 <section class="grid activity">
441 <section class="row">
442 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
443 <a href="https://developer.apple.com/wwdc20/10174" class="activity-image-link">
444 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3575/3575_wide_250x141_2x.jpg" data-hires="false" alt="">
445 </a>
446 </section>
447 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
448 <ul class="activity-tags">
449 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
450 </ul>
451 <a href="https://developer.apple.com/wwdc20/10174">
452 <h4 class="no-margin-bottom activity-title">Explore App Clips</h4>
453 </a>
454
455 <p class="activity-description">Help people experience the right parts of your app at the exact moment they need them. We’ll explain how to design and build an App Clip — a small part of your app that focuses on a specific task — and make it easily discoverable. Learn how to focus your App Clip on short and fast...</p>
456 </section>
457 </section>
458 </section>
459 <section class="grid activity">
460 <section class="row">
461 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
462 <a href="https://developer.apple.com/wwdc20/10146" class="activity-image-link">
463 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3576/3576_wide_250x141_2x.jpg" data-hires="false" alt="">
464 </a>
465 </section>
466 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
467 <ul class="activity-tags">
468 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
469 </ul>
470 <a href="https://developer.apple.com/wwdc20/10146">
471 <h4 class="no-margin-bottom activity-title">Configure and link your App Clips</h4>
472 </a>
473
474 <p class="activity-description">App Clips are small parts of an app that offer a streamlined, direct experience and help people get what they need at the right time. Learn how you can invoke an App Clip through real-world experiences like App Clip Codes, NFC, and QR codes, or have them appear digitally through apps like Maps or...</p>
475 </section>
476 </section>
477 </section></description>
478 <pubDate>Mon, 14 Dec 2020 11:00:39 PST</pubDate>
479 </item>
480 <item>
481 <title>App Store Connect holiday schedule</title>
482 <link>https://developer.apple.com/news/?id=l83x4b65</link>
483 <guid>https://developer.apple.com/news/?id=l83x4b65</guid>
484 <description><p>As a reminder, new apps and app updates will not be accepted December 23 through 27 (Pacific Time). Please ensure time for your releases to be scheduled, submitted, and approved in advance so you’ll be ready for the busiest season on the App&nbsp;Store. Other App&nbsp;Store&nbsp;Connect and developer account features will remain available.</p></description>
485 <pubDate>Wed, 09 Dec 2020 13:02:12 PST</pubDate>
486 </item>
487 <item>
488 <title>Reminder: App privacy questions requirement starts December&nbsp;8</title>
489 <link>https://developer.apple.com/news/?id=707raiff</link>
490 <guid>https://developer.apple.com/news/?id=707raiff</guid>
491 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/963B1638-2E3A-45F6-A547-198B287F80D3/2048.jpeg" data-hires="false" alt="Picture of App Store"></div><p>The App&nbsp;Store will soon help users understand an app’s privacy practices before they download the app on any Apple platform. On each app’s product page, users can learn about some of the data types the app may collect, and whether that data is linked to them or used to track them. If you haven’t already, enter your app’s privacy information in App&nbsp;Store&nbsp;Connect.</p>
492 <p>This information will be required to submit new apps and app updates to the App&nbsp;Store starting December&nbsp;8, 2020. Existing apps will remain available for download.</p>
493 <p><a href="https://developer.apple.com/app-store/app-privacy-details/">Learn more about the details you’ll need <span class="icon icon-after icon-chevronright nowrap">to provide</span></a></p>
494 <p><a href="https://help.apple.com/app-store-connect/#/dev1b4647c5b">Learn how to provide app privacy information <span class="icon icon-after icon-chevronright nowrap">in App&nbsp;Store&nbsp;Connect</span></a></p></description>
495 <pubDate>Fri, 04 Dec 2020 16:58:35 PST</pubDate>
496 </item>
497 <item>
498 <title>Sales and Trends now includes subscription offer code&nbsp;data</title>
499 <link>https://developer.apple.com/news/?id=bjj0cjau</link>
500 <guid>https://developer.apple.com/news/?id=bjj0cjau</guid>
501 <description><p>Now you can better understand your subscription offer code performance with Sales&nbsp;and&nbsp;Trends dashboards and reports in App&nbsp;Store&nbsp;Connect. Offer code data appears in version&nbsp;1_3 of the Subscription, Subscription Event, and Subscriber reports, and version&nbsp;1_1 of the Summary Sales Report.</p>
502 <p><a href="https://help.apple.com/app-store-connect/#/dev061699fdb">Learn how to view offer <span class="icon icon-after icon-chevronright nowrap">code data</span></a></p></description>
503 <pubDate>Fri, 04 Dec 2020 08:34:16 PST</pubDate>
504 </item>
505 <item>
506 <title>Family Sharing for in-app purchases now available</title>
507 <link>https://developer.apple.com/news/?id=4zbvn7u9</link>
508 <guid>https://developer.apple.com/news/?id=4zbvn7u9</guid>
509 <description><p>You can now enable Family&nbsp;Sharing for auto-renewable subscriptions and non-consumable in-app purchases, allowing users to share their purchases with up to five family members. Family&nbsp;Sharing provides a streamlined, convenient user experience and can help you attract subscribers, encourage paid subscriptions, increase user engagement, and improve retention. Sales&nbsp;and&nbsp;Trends reports will be updated soon to help you understand the performance of family subscriptions.</p>
510 <p><a href="https://help.apple.com/app-store-connect/#/dev45b03fab9">Learn how to <span class="icon icon-after icon-chevronright nowrap">enable Family&nbsp;Sharing</span></a></p></description>
511 <pubDate>Fri, 04 Dec 2020 08:26:38 PST</pubDate>
512 </item>
513 <item>
514 <title>Enroll in the new App&nbsp;Store Small Business&nbsp;Program</title>
515 <link>https://developer.apple.com/news/?id=6lyxewwp</link>
516 <guid>https://developer.apple.com/news/?id=6lyxewwp</guid>
517 <description><p>Enrollment is now open for the new App&nbsp;Store Small Business Program, designed to accelerate innovation and help propel your small business forward. Featuring a reduced commission rate of 15% on paid apps and in-app purchases, this program helps you invest more resources into your business so you can continue building great apps. The vast majority of developers on the App Store who sell digital goods and services are eligible — simply complete a short enrollment form.</p>
518 <p><a href="https://developer.apple.com/app-store/small-business-program/">Learn more about <span class="icon icon-after icon-chevronright nowrap">the program</span></a></p></description>
519 <pubDate>Thu, 03 Dec 2020 12:57:20 PST</pubDate>
520 </item>
521 <item>
522 <title>Mac instances for EC2 now available from Amazon&nbsp;Web&nbsp;Services</title>
523 <link>https://developer.apple.com/news/?id=swfemvx0</link>
524 <guid>https://developer.apple.com/news/?id=swfemvx0</guid>
525 <description><p>Developing for Apple platforms is now accessible with a new service that combines the performance and reliability of our world-class hardware with the scalability of Amazon Web Services (AWS). Amazon Elastic Compute Cloud (Amazon EC2), a web service that provides secure, resizable compute capacity in the cloud, now includes EC2 Mac instances. For the first time, you can easily set up and deploy macOS workloads natively within AWS, and take advantage of its flexibility and scalability to add more compute capacity. EC2 Mac instances in the cloud make it easy to create more builds, run more tests, and further automate your development processes by seamlessly provisioning and accessing macOS compute environments with just a few clicks.</p>
526 <p><a href="https://aws.amazon.com/ec2/instance-types/mac/"><span class="icon icon-after icon-chevronright nowrap">Learn more</span></a></p></description>
527 <pubDate>Tue, 01 Dec 2020 08:52:33 PST</pubDate>
528 </item>
529 <item>
530 <title>Congratulations to the Best of 2020 winners</title>
531 <link>https://developer.apple.com/news/?id=11i21ytl</link>
532 <guid>https://developer.apple.com/news/?id=11i21ytl</guid>
533 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/3485CD26-4B20-40D0-8766-71839B4E21DF/2048.jpeg" data-hires="false" alt="Best of 2020 winners icon"></div><p>Every year, the App&nbsp;Store celebrates exceptional apps that improve people’s lives while showcasing the highest levels of quality and impact. These award-winning apps and games, created by innovative developers, helped us connect, stay well, and find joy in&nbsp;2020.</p>
534 <p><a href="https://developer.apple.com/app-store/best-of-2020/">See this <span class="icon icon-after icon-chevronright nowrap">year’s selections</span></a></p></description>
535 <pubDate>Tue, 01 Dec 2020 08:37:02 PST</pubDate>
536 </item>
537 <item>
538 <title>Source App ID and Conversion Value now available in SKAdNetwork&nbsp;2.0</title>
539 <link>https://developer.apple.com/news/?id=s0jzahrw</link>
540 <guid>https://developer.apple.com/news/?id=s0jzahrw</guid>
541 <description><p>The SKAdNetwork API helps advertising networks measure the success of ad campaigns for your app while maintaining user privacy. With SKAdNetwork&nbsp;2.0, networks can use Source App&nbsp;ID to identify which app initiated a download from the App&nbsp;Store. And Conversion Value lets them know whether users who installed your app through a campaign performed an action in your app, such as signing up for a free trial or completing a purchase. This information is made available only if it cannot be used to identify individual users.</p>
542 <p><a href="https://developer.apple.com/documentation/storekit/skadnetwork">Learn more <span class="icon icon-after icon-chevronright nowrap">about SKAdNetwork</span></a></p></description>
543 <pubDate>Tue, 24 Nov 2020 17:01:47 PST</pubDate>
544 </item>
545 <item>
546 <title>App privacy questions requirement starts December&nbsp;8</title>
547 <link>https://developer.apple.com/news/?id=em8fm29e</link>
548 <guid>https://developer.apple.com/news/?id=em8fm29e</guid>
549 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/963B1638-2E3A-45F6-A547-198B287F80D3/2048.jpeg" data-hires="false" alt="Picture of App Store"></div><p>The App&nbsp;Store will soon help users understand an app’s privacy practices before they download the app on any Apple platform. On each app’s product page, users can learn about some of the data types the app may collect, and whether that data is linked to them or used to track them. If you haven’t already, enter your app’s privacy information in App&nbsp;Store&nbsp;Connect. </p>
550 <p>As a reminder, this information will be required to submit new apps and app updates to the App&nbsp;Store starting December&nbsp;8, 2020. Existing apps will remain available for download.</p>
551 <p><a href="https://developer.apple.com/app-store/app-privacy-details/">Learn more about the details you’ll need <span class="icon icon-after icon-chevronright nowrap">to provide</span></a></p>
552 <p><a href="https://help.apple.com/app-store-connect/#/dev1b4647c5b">Learn how to provide app privacy information <span class="icon icon-after icon-chevronright nowrap">in App&nbsp;Store&nbsp;Connect</span></a></p></description>
553 <pubDate>Tue, 24 Nov 2020 16:58:35 PST</pubDate>
554 </item>
555 <item>
556 <title>Deadline extended for online group event in-app purchase requirement </title>
557 <link>https://developer.apple.com/news/?id=kw16tplo</link>
558 <guid>https://developer.apple.com/news/?id=kw16tplo</guid>
559 <description><p>As the world fights COVID-19, we recognize that adapting experiences from in-person to digital continues to be a top priority. Although apps are required to offer any paid online group event experiences (one-to-few and one-to-many realtime experiences) through in-app purchase in accordance with App&nbsp;Store Review guideline 3.1.1, we temporarily deferred this requirement with an original deadline of December&nbsp;2020. To allow additional time for developing in-app purchase solutions, this deadline has been extended to June&nbsp;30,&nbsp;2021.</p>
560 <p>Please note that guideline 3.1.3(d) allows apps offering realtime person-to-person experiences between two individuals (for example, tutoring students, medical consultations, real estate tours, or fitness training) to use purchase methods other than in-app purchase. </p></description>
561 <pubDate>Mon, 23 Nov 2020 18:35:06 PST</pubDate>
562 </item>
563 <item>
564 <title>App Store Connect holiday schedule</title>
565 <link>https://developer.apple.com/news/?id=83m4plrb</link>
566 <guid>https://developer.apple.com/news/?id=83m4plrb</guid>
567 <description><p>The busiest season on the App&nbsp;Store is almost here. Make sure your apps are up to date and ready for the holidays, as new apps and app updates will not be accepted December&nbsp;23 through 27 (Pacific Time). Please ensure time for your releases to be scheduled, submitted, and approved in advance. Other App&nbsp;Store&nbsp;Connect and developer account features will remain available.</p></description>
568 <pubDate>Mon, 23 Nov 2020 16:56:12 PST</pubDate>
569 </item>
570 <item>
571 <title>Market your subscriptions with offer codes</title>
572 <link>https://developer.apple.com/news/?id=dopmcbjk</link>
573 <guid>https://developer.apple.com/news/?id=dopmcbjk</guid>
574 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/ED6E9D19-F439-4C48-8547-C37DC1D93399/2048.jpeg" data-hires="false" alt="Offer Codes icon"></div><p>You can now create and distribute subscription offer codes for your apps, giving you new ways to market your subscription. These one-time use, alphanumeric codes can be redeemed on the App Store or within your app. You can also create unique URLs associated with an offer code and distribute these using your choice of channels. </p>
575 <p>Offer codes can help you acquire, retain, and win back people by letting them experience your subscription at a free or discounted price for a specific duration. At the end of the offer period, the subscription auto-renews at the standard price unless a subscriber cancels it or turns off auto-renewal. </p>
576 <p>Offer codes can be used in a variety of ways. For example, you can:</p>
577 <ul>
578 <li>Send an email to current or lapsed subscribers that share the latest features or recently added content, along with an offer code to experience your service for a limited time</li>
579 <li>Distribute flyers to event attendees that promote your service and include a unique offer code on each flyer</li>
580 <li>Partner with another company on a marketing initiative or campaign to help promote your app</li>
581 <li>Provide a subscriber with a customer service issue an offer code to compensate for the issue and encourage retention</li>
582 </ul>
583 <p>You can provide multiple types of offers to people depending on your business goals. To determine which type might be best for a particular use case, consider each offer’s intended use, customer eligibility, redemption limits, and other criteria.</p><p><a href="https://developer.apple.com/app-store/subscriptions?cid=developer80/#providing-subscription-offers" class="icon icon-after icon-chevronright">Learn more about providing subscription offers</a></p><h3>Configure and create offer codes</h3><p>You can create new offer codes within App Store Connect. When you set up a new code, you’ll also need to determine customer eligibility: Is this for a new, existing, or expired subscriber? </p>
584 <p>If creating a code for a new subscriber, you’ll also want to decide whether the code is valid in addition to any introductory offers you may provide within your app.</p>
585 <p>As with other subscription offers in your app, you can choose whether the offer is free, pay as you go, or pay up front. </p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/4821AF6B-2B74-4B21-9AC0-14404845F193/2048.jpeg" data-hires="false" alt="You can configure offer codes in App Store Connect. In the offer codes section, you can see your active and inactive offers, as well as the number of codes you have available to create. "><p class="typography-caption">You can configure offer codes in App Store Connect. In the offer codes section, you can see your active and inactive offers, as well as the number of codes you have available to create. </p></div><p>After you’ve configured your offer, you can create and download codes. You can create up to 150,000 new codes every quarter per app. </p>
586 <p>Note: Codes expire a maximum of six months from their creation date, so be mindful of how many codes you create at a given time to ensure you have enough valid codes to last the duration of your campaign.</p>
587 <p>Once you’ve downloaded your codes, you can use the URL in App Store Connect and create associated one-time code redemption URLs. You’ll need to copy the URL from your offer details page, then add the specific code to the end of the URL, like so:</p>
588 <p><code>https://apps.apple.com/redeem?ctx=offercodes&amp;id=</code>YourAppAppleID<code>&amp;code=</code>OfferCode</p>
589 <p>Customers can redeem only one code per active offer, but may be eligible to redeem multiple different offer codes for a single subscription, depending on your configuration choices.</p>
590 <p>Before creating any offer codes, be sure to set up your server to validate receipts so you can properly entitle service. You can also enable App Store server notifications to understand subscription updates and status changes in real-time. </p><p><a href="https://help.apple.com/app-store-connect/#/dev6a098e4b1" class="icon icon-after icon-chevronright">Learn more about setting up offer codes</a></p><h3>Distribute offer codes</h3><p>You can distribute offer codes however you choose. Consider which channels might be most effective at reaching your intended customers. For example, you might distribute code redemption URLs in digital marketing channels such as your email distribution lists or text messages. You might share printed offer codes at events or even alongside the purchase of a physical product. </p>
591 <p>When distributing offer codes, make sure to note any eligibility or availability limits, as well as the code’s expiration date. If sharing offer codes with existing customers, make sure the offer is for a subscription within the same subscription group as their existing subscription.</p><p><a href="https://help.apple.com/app-store-connect/#/dev75708c031" class="icon icon-after icon-chevronright">Learn more about subscription groups</a></p><h3>Redeem offer codes</h3><p>In order for customers to redeem an offer code, your app must be in the Ready for Sale state in App Store Connect. Customers on iOS 14 and iPadOS 14 and later can redeem offer codes by entering them in the “Redeem Gift Card or Code” page in their App Store account settings, or directly within your app if you’ve implemented the <code>presentCodeRedemptionSheet</code> API. Additionally, if you’ve created and shared one-time code redemption URLs, customers can redeem offer codes using that link.</p><p><a href="https://developer.apple.com/documentation/storekit/skpaymentqueue/3566726-presentcoderedemptionsheet" class="icon icon-after icon-chevronright">presentCodeRedemptionSheet()</a></p><p>Apple handles the redemption experience, which includes an offer details screen with the app icon, subscription display name, duration, and pricing; if you’ve previously added a promotional in-app purchase image for the subscription, this is shown instead of your app icon.</p>
592 <p>You can customize each of these details within App Store Connect. To help people make an informed decision, make sure that they clearly describe your subscription. If a customer attempts to redeem your code but does not have your app installed, they’ll be able to download it during the redemption experience.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/F4626450-D1D5-49F2-93DA-01BD56144292/2048.jpeg" data-hires="false" alt="After tapping a custom redeem button within your app, the system automatically provides a series of code-redemption screens like the ones shown. If using one-time code redemption URLs, customers won’t need to enter the code as part of the redemption process."><p class="typography-caption">After tapping a custom redeem button within your app, the system automatically provides a series of code-redemption screens like the ones shown. If using one-time code redemption URLs, customers won’t need to enter the code as part of the redemption process.</p></div><p>If you choose to support in-app redemption, consider adding a way to enter an offer code during relevant moments in the user experience — for example, adding a “Redeem Code” link on your subscription’s paywall screen, or in your app’s settings screen.</p>
593 <p>Once a user redeems an offer, provide a relevant experience based on their subscription state. For example, for a first-time subscriber, you might highlight the benefits of your subscription and provide onboarding. If your app includes account creation or requires agreement to additional terms, make this process as smooth as possible for customers who redeemed a code and are new to your app.</p><h3>Resources</h3><p><a href="https://developer.apple.com/app-store/subscriptions?cid=developer80/#providing-subscription-offers" class="icon icon-after icon-chevronright">Learn more about providing subscription offers</a></p><p><a href="https://developer.apple.com/design/human-interface-guidelines/subscriptions/overview/" class="icon icon-after icon-chevronright">Learn more about designing subscriptions</a></p><p><a href="https://developer.apple.com/documentation/storekit/in-app_purchase/subscriptions_and_offers/implementing_offer_codes_in_your_app" class="icon icon-after icon-chevronright">Learn more about implementing offer codes in your app</a></p></description>
594 <pubDate>Thu, 19 Nov 2020 08:45:12 PST</pubDate>
595 </item>
596 <item>
597 <title>Announcing the App&nbsp;Store Small Business Program</title>
598 <link>https://developer.apple.com/news/?id=i7jzeefs</link>
599 <guid>https://developer.apple.com/news/?id=i7jzeefs</guid>
600 <description><p>We believe that small businesses are the backbone of our global economy and the beating heart of innovation and opportunity in communities around the world. Launching January&nbsp;1,&nbsp;2021, the industry-leading new App&nbsp;Store Small&nbsp;Business Program is designed to accelerate innovation and help propel your small business forward. The program has a reduced commission rate of 15% on paid apps and in-app purchases, so you can invest more resources into your business and continue building the kind of quality apps your customers love.</p>
601 <p>The vast majority of developers on the App&nbsp;Store who sell digital goods and services will qualify for the Small&nbsp;Business Program.</p>
602 <ul>
603 <li>Existing developers who made up to $1 million in proceeds in 2020 for all their apps, as well as developers new to the App&nbsp;Store, can qualify for the program and the reduced commission.</li>
604 <li>If a participating developer surpasses the $1 million threshold, the standard commission rate will apply for the remainder of the year.</li>
605 <li>If a developer’s business falls below the $1 million threshold in a future calendar year, they can re-qualify for the 15% commission the year after.</li>
606 </ul>
607 <p>Stay tuned for additional details in early December.</p></description>
608 <pubDate>Wed, 18 Nov 2020 06:46:05 PST</pubDate>
609 </item>
610 <item>
611 <title>Subscription offer codes now&nbsp;available</title>
612 <link>https://developer.apple.com/news/?id=g20wyc9c</link>
613 <guid>https://developer.apple.com/news/?id=g20wyc9c</guid>
614 <description><p>You can now create subscription offer codes to acquire, retain, and win back subscribers. Offer codes are unique, alphanumeric codes that provide auto-renewable subscriptions at a discounted price or for free for a specific duration. Provide your one-time use codes digitally or offline at physical events, alongside products, and more. Users on iOS&nbsp;14 and iPadOS&nbsp;14 and later can redeem offer codes on the App&nbsp;Store through a one-time code redemption URL, or within your app if you’ve implemented the <code>presentCodeRedemptionSheet</code> API. Sales and Trends reports will be updated later this year to include information on the performance of your subscription offer&nbsp;codes.</p>
615 <p><a href="https://developer.apple.com/app-store/subscriptions/#providing-subscription-offers">Learn more about subscription <span class="icon icon-after icon-chevronright nowrap">offer codes</span></a></p></description>
616 <pubDate>Tue, 17 Nov 2020 10:51:46 PST</pubDate>
617 </item>
618 <item>
619 <title>New features available in Transporter&nbsp;1.2</title>
620 <link>https://developer.apple.com/news/?id=cy9u8woe</link>
621 <guid>https://developer.apple.com/news/?id=cy9u8woe</guid>
622 <description><p>You can now use Transporter for Mac to upload metadata, view a history of delivered builds for each app version, and filter that history by time period. This latest version also includes support for 29 additional languages.</p>
623 <p><a href="https://apps.apple.com/us/app/transporter/id1450874784?mt=12">View on <span class="icon icon-after icon-chevronright nowrap">the Mac&nbsp;App&nbsp;Store</span></a></p></description>
624 <pubDate>Mon, 16 Nov 2020 11:53:54 PST</pubDate>
625 </item>
626 <item>
627 <title>iPhone and iPad apps are coming to&nbsp;Mac</title>
628 <link>https://developer.apple.com/news/?id=n7m5nqwo</link>
629 <guid>https://developer.apple.com/news/?id=n7m5nqwo</guid>
630 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/E49E4F60-A8DF-451E-AAB7-D315D48E0790/2048.jpeg" data-hires="false" alt=""></div><p>As announced at WWDC20, we’re excited to bring iPhone and iPad apps to the Mac&nbsp;App&nbsp;Store on Apple silicon Macs — so your apps can reach even more users worldwide. By default, your apps will be published automatically on the Mac&nbsp;App&nbsp;Store. To make sure that Mac users have a great experience, confirm that your apps work well on this platform and don’t rely on iPhone or iPad features not available on Mac. If needed, update their availability on Mac in App&nbsp;Store&nbsp;Connect.</p>
631 <p><a href="https://developer.apple.com/macos/iphone-and-ipad-apps/"><span class="icon icon-after icon-chevronright nowrap">Learn more</span></a></p></description>
632 <pubDate>Wed, 11 Nov 2020 15:25:05 PST</pubDate>
633 </item>
634 <item>
635 <title>Submit your Mac apps to the Mac&nbsp;App&nbsp;Store</title>
636 <link>https://developer.apple.com/news/?id=9o4sj9tv</link>
637 <guid>https://developer.apple.com/news/?id=9o4sj9tv</guid>
638 <description><p>Submit your apps built for macOS&nbsp;Big&nbsp;Sur today. You can submit Universal apps built with Xcode&nbsp;12.2 that take full advantage of Apple silicon Macs. Your apps will look better than ever on macOS&nbsp;Big&nbsp;Sur, thanks to an all-new interface that’s been finely tuned for the powerful features that make a Mac a Mac. New widget features and the new widget gallery can make your app visible at a glance. And much more. Build your apps with Xcode&nbsp;12.2 Release Candidate, update your product pages, and submit your apps for review today.</p>
639 <p><a href="https://developer.apple.com/macos/submit/"><span class="icon icon-after icon-chevronright nowrap">Learn more</span></a></p></description>
640 <pubDate>Tue, 10 Nov 2020 15:19:00 PST</pubDate>
641 </item>
642 <item>
643 <title>Custom apps for Mac now supported</title>
644 <link>https://developer.apple.com/news/?id=1sey8eb9</link>
645 <guid>https://developer.apple.com/news/?id=1sey8eb9</guid>
646 <description><p>Custom apps let you meet the unique needs of organizations and schools. And now, you can distribute custom Mac apps. Provide a tailored look and feel, security features for sensitive data, special functionality for workflows, and much more, then distribute privately on Apple&nbsp;Business&nbsp;Manager or Apple&nbsp;School&nbsp;Manager.</p>
647 <p><a href="https://developer.apple.com/custom-apps/">Learn more about creating <span class="icon icon-after icon-chevronright nowrap">custom apps</span></a></p></description>
648 <pubDate>Tue, 10 Nov 2020 15:06:58 PST</pubDate>
649 </item>
650 <item>
651 <title>App privacy questions available in App&nbsp;Store&nbsp;Connect</title>
652 <link>https://developer.apple.com/news/?id=vlj9jty9</link>
653 <guid>https://developer.apple.com/news/?id=vlj9jty9</guid>
654 <description><p>Later this year, the App&nbsp;Store will help users understand an app’s privacy practices before they download the app on any Apple platform. On each app’s product page, users can learn about some of the data types the app may collect, and whether that data is linked to them or used to track them. You can now enter your app’s privacy information in App&nbsp;Store&nbsp;Connect. This information will be required to submit new apps and app updates to the App&nbsp;Store starting December 8, 2020.</p>
655 <p><a href="https://developer.apple.com/app-store/app-privacy-details/">Learn more about the details you’ll need <span class="icon icon-after icon-chevronright nowrap">to provide</span></a></p>
656 <p><a href="https://help.apple.com/app-store-connect/#/dev1b4647c5b">Learn how to provide app privacy information <span class="icon icon-after icon-chevronright nowrap">in App&nbsp;Store&nbsp;Connect</span></a></p></description>
657 <pubDate>Thu, 05 Nov 2020 14:26:24 PST</pubDate>
658 </item>
659 <item>
660 <title>Don’t miss the upcoming special Apple Event</title>
661 <link>https://developer.apple.com/news/?id=3pxbkk0n</link>
662 <guid>https://developer.apple.com/news/?id=3pxbkk0n</guid>
663 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/C9DD24BF-1D68-43EC-A096-C2F503C7A2A6/2048.jpeg" data-hires="false" alt="Apple logo"></div><p>Please join us a for a special Apple Event broadcasting from Apple Park on November 10 at 10:00 a.m. PST. Watch the show online at apple.com.</p>
664 <p><a href="https://www.apple.com/apple-events/"><span class="icon icon-after icon-chevronright nowrap">Learn more</span></a></p></description>
665 <pubDate>Wed, 04 Nov 2020 07:27:51 PST</pubDate>
666 </item>
667 <item>
668 <title>New subscription server notifications available in production</title>
669 <link>https://developer.apple.com/news/?id=an960mux</link>
670 <guid>https://developer.apple.com/news/?id=an960mux</guid>
671 <description><p>App&nbsp;Store server notifications provide real-time updates on a subscriber’s status, so you can create customized user experiences. The following new notifications are now available in production:</p>
672 <ul>
673 <li><code>DID_RENEW</code> lets you know when a subscriber successfully auto-renews.</li>
674 <li><code>PRICE_INCREASE_CONSENT</code> lets you know when the App&nbsp;Store starts asking users to agree to your subscription’s new price, so you can remind them of your service’s value as encouragement to stay subscribed.</li>
675 </ul>
676 <p>In addition, the following will be deprecated in production in March 2021: <code>RENEWAL</code> notifications and these top-level objects: <code>latest_receipt</code>, <code>latest_receipt_info</code>, <code>latest_expired_receipt</code>, and <code>latest_expired_receipt_info</code>. Update your code to continue providing a seamless user experience.</p>
677 <p><a href="https://developer.apple.com/documentation/appstoreservernotifications/">Learn more about App&nbsp;Store <span class="icon icon-after icon-chevronright nowrap">server notifications</span></a></p></description>
678 <pubDate>Thu, 29 Oct 2020 11:29:18 PDT</pubDate>
679 </item>
680 <item>
681 <title>Use SF Symbols to enhance your interface design</title>
682 <link>https://developer.apple.com/news/?id=0kzm2cc0</link>
683 <guid>https://developer.apple.com/news/?id=0kzm2cc0</guid>
684 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/FEAA0DA8-4DBC-421F-BC17-17DE4A395EB2/2048.jpeg" data-hires="false" alt="Figure strides through illustrated sf symbols topiary gallery"></div><p>Symbols are visual guides that help us navigate experiences without words. Whether people are viewing an image on a road sign or an icon within your app, people count on familiar, easy-to-understand symbols to provide contextual information and help them find their way.</p><p>SF Symbols provides designers and developers with consistent and customizable symbols that seamlessly integrate with the system font, San Francisco. These symbols are a great resource whether you’re a veteran designer or working primarily in Xcode. The library removes the need to reimagine, resize, and reinvent graphic assets, providing a flexible range of weights and scales and automatic vertical alignment when adapting interfaces to different screen sizes.</p><h3>Find the right symbol</h3><p>With more than 2,400 symbols — each available in nine weights and three scales — SF Symbols offers a large variety of options to suit your needs. You can easily browse or quickly search for and copy any of the vector-based icons from the SF Symbols app and paste them inside popular apps like Sketch, Adobe XD, or Figma, where they automatically align with text.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/A5653972-4166-4124-A5BB-195197EE02BD/2048.jpeg" data-hires="false" alt="Symbols come in a variety of colors, outlines and filled variants."><p class="typography-caption">Symbols come in a variety of colors, outlines and filled variants.</p></div><p>Use the SF Symbols app to browse and preview selections before placing them in your project. Many symbols exist in both outline and filled variants which can be used in different contexts. Outlined symbols feature similar characteristics to text, whereas filled symbols provide additional contrast and emphasis.</p><hr><p><em>Tip: When it comes to symbol styles, less is more. Try to stick with a single style to help unify your design within a particular component or context.</em></p><hr><p>Symbols bring a cohesive, familiar look to each part of your interface. As you select and incorporate them, it’s worth considering context — how they appear when next to text and harmonize with the other words and images on the screen.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/3B2C55B0-658B-41B6-8BD1-DCB2A50DC52B/2048.jpeg" data-hires="false" alt="Figure chooses between doors"></div><p>Aim for symbols that achieve immediate recognition; go for design clarity over creativity. What message do you want that symbol to convey? Would someone new to your app be familiar with it? If not, is there a different symbol that is more in tune with what someone might expect from this icon?</p><h3>Design custom symbols</h3><p>If you need to create a custom symbol for your app, the SF Symbols app can help you get started. Search for a symbol that’s similar to what you want to represent, then export it as customizable, vector-based template. </p>
685 <p>Using a vector editing tool like Illustrator or Sketch, make the changes you need while maintaining a consistent scale and weight to the symbol you’re modifying. Strive to create a symbol that is simple, recognizable, and clearly relates to the action or content it represents. Be mindful of how the SVG layer tree is named and organized; custom symbols must match the structure of the original file.</p><p><a href="https://developer.apple.com/documentation/xcode/creating_custom_symbol_images_for_your_app" class="icon icon-after icon-chevronright">Creating Custom Symbol Images for Your App</a></p><h3>Design with SF Symbols</h3><p>Working solo or in collaboration, designers and developers will appreciate the simplicity and adaptability of SF Symbols. You can use SF Symbols in apps running in iOS 13 and later, watchOS 6 and later, and tvOS 13 and later, and you’ll be able to use SF Symbols on macOS Big Sur this fall.</p><h3>Resources</h3>
686 <section class="grid activity">
687 <section class="row">
688 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
689 <a href="https://developer.apple.com/wwdc19/206" class="activity-image-link">
690 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/48/2680/2680_wide_250x141_2x.jpg" data-hires="false" alt="">
691 </a>
692 </section>
693 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
694 <ul class="activity-tags">
695 <li class="activity-tag event"><span class="smaller">WWDC19</span></li>
696 </ul>
697 <a href="https://developer.apple.com/wwdc19/206">
698 <h4 class="no-margin-bottom activity-title">Introducing SF Symbols</h4>
699 </a>
700
701 <p class="activity-description">SF Symbols introduces a comprehensive library of vector-based symbols that you can incorporate into your app to simplify the layout of user interface elements through automatic alignment with surrounding text, and support for multiple weights and sizes. Learn how easy it is to adapt to different...</p>
702 </section>
703 </section>
704 </section>
705 <section class="grid activity">
706 <section class="row">
707 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
708 <a href="https://developer.apple.com/wwdc20/10207" class="activity-image-link">
709 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3375/3375_wide_250x141_2x.jpg" data-hires="false" alt="">
710 </a>
711 </section>
712 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
713 <ul class="activity-tags">
714 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
715 </ul>
716 <a href="https://developer.apple.com/wwdc20/10207">
717 <h4 class="no-margin-bottom activity-title">SF Symbols 2</h4>
718 </a>
719
720 <p class="activity-description">SF Symbols make it easy to adopt high-quality, Apple-designed symbols created to look great with San Francisco, the system font for all Apple platforms. Discover how you can use SF Symbols in AppKit, UIKit, and SwiftUI. Learn how to work with SF Symbols in common design tools and how to use them in...</p>
721 </section>
722 </section>
723 </section><p><a href="https://developer.apple.com/design/human-interface-guidelines/sf-symbols/overview/" class="icon icon-after icon-chevronright">Learn more about SF Symbols</a></p><p><a href="https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/understanding_utis/understand_utis_intro/understand_utis_intro.html" class="icon icon-after icon-chevronright">Introduction to Uniform Type Identifiers</a></p><p><a href="https://developer.apple.com/sf-symbols/" class="icon icon-after icon-chevronright">Download SF Symbols</a></p></description>
724 <pubDate>Thu, 29 Oct 2020 07:00:41 PDT</pubDate>
725 </item>
726 <item>
727 <title>Upcoming tax and price changes for apps and in-app purchases</title>
728 <link>https://developer.apple.com/news/?id=ul8i5to3</link>
729 <guid>https://developer.apple.com/news/?id=ul8i5to3</guid>
730 <description><p>When taxes or foreign exchange rates change, we sometimes need to update prices on the App&nbsp;Store. In the next few days, prices of apps and in-app purchases (excluding auto-renewable subscriptions) on the App&nbsp;Store will increase in Brazil, Colombia, India, Indonesia, Russia, and South&nbsp;Africa. These increases also reflect the following tax changes:</p>
731 <ul>
732 <li>India: New equalization levy of 2% (in addition to the existing goods and services tax of 18%)</li>
733 <li>Indonesia: New value-added tax of 10% for developers based outside of Indonesia</li>
734 </ul>
735 <p>Prices of apps and in-app purchases (excluding auto-renewable subscriptions) will also be adjusted in Iceland and Albania to align with pricing used in other markets selling in U.S. dollars with value-added tax.</p>
736 <p>You can download the <a href="https://itunespartner.apple.com/assets/downloads/261020Apps-Pricing.pdf">updated price tier charts</a> now. Once these changes go into effect, the Pricing and Availability section of My&nbsp;Apps will be updated, and your proceeds will be adjusted accordingly and calculated based on the tax-exclusive price. You can change the price of your apps and in-app purchases (including auto-renewable subscriptions) at any time in App&nbsp;Store&nbsp;Connect. If you offer subscriptions, you can choose to preserve prices for existing subscribers.</p></description>
737 <pubDate>Mon, 26 Oct 2020 12:39:59 PDT</pubDate>
738 </item>
739 <item>
740 <title>Apple Entrepreneur Camp applications open for Black founders and developers</title>
741 <link>https://developer.apple.com/news/?id=1eiyhoai</link>
742 <guid>https://developer.apple.com/news/?id=1eiyhoai</guid>
743 <description><p>Apple Entrepreneur Camp supports underrepresented founders and developers as they build the next generation of cutting-edge apps and helps form a global network that encourages the pipeline and longevity of these entrepreneurs in technology. Applications are now open for the first cohort for Black founders and developers, which runs online from February 16 to 25, 2021. Attendees receive code-level guidance, mentorship, and inspiration with unprecedented access to Apple engineers and leaders. Applications close on November&nbsp;20,&nbsp;2020.</p>
744 <p><a href="https://developer.apple.com/entrepreneur-camp/">Learn more about <span class="icon icon-after icon-chevronright nowrap">Apple Entrepreneur&nbsp;Camp</span></a></p>
745 <p><a href="https://developer.apple.com/entrepreneur-camp/alumni/">Learn about some of our <span class="icon icon-after icon-chevronright nowrap">inspiring alumni</span></a></p></description>
746 <pubDate>Mon, 19 Oct 2020 14:17:58 PDT</pubDate>
747 </item>
748 <item>
749 <title>Offer your apps for pre-order even earlier</title>
750 <link>https://developer.apple.com/news/?id=17o0h655</link>
751 <guid>https://developer.apple.com/news/?id=17o0h655</guid>
752 <description><p>Now you can let customers pre-order your app up to 180 days before it’s released for download on the App&nbsp;Store. Take advantage of this longer lead time to build more excitement for your app’s features, services, and content, and to encourage more pre-orders. Once your app is released, customers will be notified and it will automatically download to their device within 24&nbsp;hours.</p>
753 <p><a href="https://developer.apple.com/app-store/pre-orders/">Learn more <span class="icon icon-after icon-chevronright nowrap">about pre-orders</span></a></p></description>
754 <pubDate>Thu, 15 Oct 2020 16:58:07 PDT</pubDate>
755 </item>
756 <item>
757 <title>Build AR experiences for iPhone and iPad</title>
758 <link>https://developer.apple.com/news/?id=8wfd42ni</link>
759 <guid>https://developer.apple.com/news/?id=8wfd42ni</guid>
760 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/0B0B1BD1-1C2C-4F82-A540-DED5AC8B1CD9/2048.jpeg" data-hires="false" alt="ARKit icon"></div><p>Discover how you can create unparalleled augmented reality experiences within your apps and games on iOS and iPadOS. We’ll show you how to work with powerful frameworks like ARKit and RealityKit, bring your AR scenes to life with creative tools like Reality Composer and Reality Converter, and take advantage of LiDAR Scanner depth data.</p><h3>Explore the LiDAR Scanner for iPhone and iPad</h3><p>Discover how you can take advantage of the LiDAR Scanner on iPhone and iPad to create AR experiences that interact with real-world objects. When you pair the LiDAR Scanner with the ARKit and RealityKit frameworks in your app, you can instantly place AR objects in the real world without scanning and take advantage of depth information to create experiences with real-world physics, object occlusion, and lighting effects.</p>
761 <section class="grid activity">
762 <section class="row">
763 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
764 <a href="https://developer.apple.com/videos/play/tech-talks/609" class="activity-image-link">
765 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/8/3374/3374_wide_250x141_2x.jpg" data-hires="false" alt="">
766 </a>
767 </section>
768 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
769 <ul class="activity-tags">
770 <li class="activity-tag event"><span class="smaller">Tech Talks</span></li>
771 </ul>
772 <a href="https://developer.apple.com/videos/play/tech-talks/609">
773 <h4 class="no-margin-bottom activity-title">Advanced Scene Understanding in AR</h4>
774 </a>
775
776 <p class="activity-description">ARKit 3.5 and RealityKit provide new capabilities that take full advantage of the LiDAR Scanner on the new iPad Pro. Check out ARKit 3.5 and learn about Scene Geometry, enhanced raycasting, instantaneous virtual object placement, and more. See how RealityKit takes advantage of these features to...</p>
777 </section>
778 </section>
779 </section><p><a href="https://developer.apple.com/documentation/arkit/world_tracking/visualizing_and_interacting_with_a_reconstructed_scene" class="icon icon-after icon-chevronright">Visualizing and Interacting with a Reconstructed Scene</a></p><p><a href="https://developer.apple.com/documentation/arkit/creating_a_fog_effect_using_scene_depth" class="icon icon-after icon-chevronright">Creating a Fog Effect Using Scene Depth</a></p><p><a href="https://developer.apple.com/documentation/arkit/visualizing_a_point_cloud_using_scene_depth" class="icon icon-after icon-chevronright">Visualizing a Point Cloud Using Scene Depth</a></p><p><a href="https://developer.apple.com/documentation/realitykit/creating_a_game_with_sceneunderstanding" class="icon icon-after icon-chevronright">Creating a Game with SceneUnderstanding</a></p><h3>Discover ARKit and RealityKit</h3><p>ARKit 4 enables you to build the next generation of augmented reality apps to transform how people connect with the world around them, while RealityKit is Apple's rendering, animation, physics, and audio engine built from the ground up for augmented reality. Both frameworks help developers prototype and produce high-quality AR experiences. Explore an overview of each framework to learn more about building a great augmented reality experience for your app or game, including harnessing the LiDAR Scanner on iPhone and iPad, tracking faces for AR, and more.</p>
780 <section class="grid activity">
781 <section class="row">
782 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
783 <a href="https://developer.apple.com/wwdc20/10611" class="activity-image-link">
784 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3418/3418_wide_250x141_2x.jpg" data-hires="false" alt="">
785 </a>
786 </section>
787 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
788 <ul class="activity-tags">
789 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
790 </ul>
791 <a href="https://developer.apple.com/wwdc20/10611">
792 <h4 class="no-margin-bottom activity-title">Explore ARKit 4</h4>
793 </a>
794
795 <p class="activity-description">ARKit 4 enables you to build the next generation of augmented reality apps to transform how people connect with the world around them. We’ll walk you through the latest improvements to Apple’s augmented reality platform, including how to use Location Anchors to connect virtual objects with a...</p>
796 </section>
797 </section>
798 </section>
799 <section class="grid activity">
800 <section class="row">
801 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
802 <a href="https://developer.apple.com/wwdc20/10612" class="activity-image-link">
803 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3449/3449_wide_250x141_2x.jpg" data-hires="false" alt="">
804 </a>
805 </section>
806 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
807 <ul class="activity-tags">
808 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
809 </ul>
810 <a href="https://developer.apple.com/wwdc20/10612">
811 <h4 class="no-margin-bottom activity-title">What's new in RealityKit</h4>
812 </a>
813
814 <p class="activity-description">RealityKit is Apple’s rendering, animation, physics, and audio engine built from the ground up for augmented reality: It reimagines the traditional 3D renderer to make it easy for developers to prototype and produce high-quality AR experiences. Learn how to effectively implement each of the...</p>
815 </section>
816 </section>
817 </section><p><a href="https://developer.apple.com/documentation/arkit" class="icon icon-after icon-chevronright">ARKit</a></p><p><a href="https://developer.apple.com/documentation/realitykit" class="icon icon-after icon-chevronright">RealityKit</a></p><p><a href="https://developer.apple.com/forums/tags/arkit" class="icon icon-after icon-chevronright">Explore the ARKit Developer Forums</a></p><p><a href="https://developer.apple.com/forums/tags/realitykit" class="icon icon-after icon-chevronright">Explore the RealityKit Developer Forums</a></p><h3>Learn more about ARKit and RealityKit</h3><p>LiDAR is only one aspect of developing for augmented reality. Dive deeper into ARKit and RealityKit to discover how you can add new dimensions to retail experiences, or pair these frameworks with Machine Learning and Computer Vision to create even smarter apps or games.</p><p><a href="https://developer.apple.com/news/?id=pwa22b4z" class="icon icon-after icon-chevronright">Augment reality</a></p><p><a href="https://developer.apple.com/news/?id=b7gg4gdx" class="icon icon-after icon-chevronright">What's new in Machine Learning and Computer Vision</a></p></description>
818 <pubDate>Tue, 13 Oct 2020 08:00:37 PDT</pubDate>
819 </item>
820 <item>
821 <title>Updated APNs provider API deadline</title>
822 <link>https://developer.apple.com/news/?id=c88acm2b</link>
823 <guid>https://developer.apple.com/news/?id=c88acm2b</guid>
824 <description><p>The HTTP/2-based Apple Push Notification service (APNs) provider API lets you take advantage of great features, such as authentication with a JSON Web Token, improved error messaging, and per-notification feedback. If you send push notifications with the legacy binary protocol, we strongly recommend upgrading to the APNs provider API.</p>
825 <p>To give you additional time to prepare, the deadline to upgrade to the APNs provider API has been extended to March 31, 2021. APNs will no longer support the legacy binary protocol after this date. </p>
826 <p><a href="https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns/">Learn about the APNs <span class="icon icon-after icon-chevronright nowrap">provider API</span></a></p></description>
827 <pubDate>Fri, 09 Oct 2020 14:36:39 PDT</pubDate>
828 </item>
829 <item>
830 <title>Deadline extended for app updates using UIWebView </title>
831 <link>https://developer.apple.com/news/?id=edwud51q</link>
832 <guid>https://developer.apple.com/news/?id=edwud51q</guid>
833 <description><p>Apple designed WKWebView in 2014 to ensure that you can integrate web content into your app quickly, securely, and consistently across iOS and macOS. Since then, we’ve recommended that you adopt WKWebView instead of UIWebView and WebView — both of which were formally deprecated. New apps containing these frameworks are no longer accepted by the App&nbsp;Store. And last year, we announced that the App&nbsp;Store will no longer accept app updates containing UIWebView as of December 2020. </p>
834 <p>However, to provide additional time for you to adopt WKWebView and to ensure that it supports the features most often requested by developers, this deadline for app updates has been extended beyond the end of 2020. We’ll let you know when a new deadline is confirmed. </p>
835 <p><a href="https://developer.apple.com/videos/play/wwdc2020/10188/">Learn about the latest <span class="icon icon-after icon-chevronright nowrap">in WKWebView</span></a></p></description>
836 <pubDate>Thu, 08 Oct 2020 12:32:38 PDT</pubDate>
837 </item>
838 <item>
839 <title>Apple Developer app updates for the United&nbsp;Kingdom and Ireland</title>
840 <link>https://developer.apple.com/news/?id=ac1va5jx</link>
841 <guid>https://developer.apple.com/news/?id=ac1va5jx</guid>
842 <description><p>Now it’s simpler than ever for developers based in the United&nbsp;Kingdom and Ireland to enroll in the Apple&nbsp;Developer Program. The Apple&nbsp;Developer app now supports enrollment in these regions, allowing developers to start and finish their membership purchase with local payment methods on iPhone or iPad. And since membership is provided as an auto-renewable subscription, keeping it active is&nbsp;easy.</p>
843 <p><a href="https://apps.apple.com/app/id640199958?pt=2003&amp;ct=da_news&amp;mt=8">View on the <span class="icon icon-after icon-chevronright nowrap">App Store</span></a></p></description>
844 <pubDate>Thu, 08 Oct 2020 11:54:46 PDT</pubDate>
845 </item>
846 <item>
847 <title>New subscription server notifications available to test</title>
848 <link>https://developer.apple.com/news/?id=lerjy5de</link>
849 <guid>https://developer.apple.com/news/?id=lerjy5de</guid>
850 <description><p>App Store server notifications provide real-time updates on a subscriber’s status, so you can create customized user experiences. The following new notifications are now available in the App&nbsp;Store sandbox environment and you can use them in production later this year:</p>
851 <ul>
852 <li><code>DID_RENEW</code> lets you know when a subscriber successfully auto-renews.</li>
853 <li><code>PRICE_INCREASE_CONSENT</code> lets you know when the App&nbsp;Store starts asking users to agree to your subscription’s new price, so you can remind them of your service’s value as encouragement to stay subscribed.</li>
854 </ul>
855 <p>In addition, the following will be deprecated in the App&nbsp;Store sandbox environment in November 2020: <code>RENEWAL</code> notifications and these top-level objects: <code>latest_receipt</code>, <code>latest_receipt_info</code>, <code>latest_expired_receipt</code>, and <code>latest_expired_receipt_info</code>. Update your code to continue providing a seamless user experience.</p>
856 <p><a href="https://developer.apple.com/documentation/appstoreservernotifications/">Learn more about App&nbsp;Store <span class="icon icon-after icon-chevronright nowrap">server notifications</span></a></p></description>
857 <pubDate>Thu, 08 Oct 2020 11:48:15 PDT</pubDate>
858 </item>
859 <item>
860 <title>Should I use WKWebView or SFSafariViewController for web views in my app?</title>
861 <link>https://developer.apple.com/news/?id=trjs0tcd</link>
862 <guid>https://developer.apple.com/news/?id=trjs0tcd</guid>
863 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/FBE081E9-D688-4C9C-A051-8E0E4E68EE3D/2048.jpeg" data-hires="false" alt="Safari icon"></div><p>Whether your app needs to provide a full web browsing experience, display richly-styled content, or incorporate external websites without taking people out of your app, you can make the experience smooth and seamless by choosing the right API.</p>
864 <p>You can display web content inside of your app with both the WKWebView and SFSafariViewController APIs. But which is the best for your app’s needs?</p>
865 <p><strong>WKWebView</strong> is part of the WebKit framework: It allows you to embed web content into your app as a seamless part of your app’s UI. You can present a full or partial view of web content directly in your app by loading a view that leverages existing HTML, CSS, and JavaScript content or create your own if your layout and styling requirements are better satisfied by using web technologies.</p><hr><p><em>Note: If your app uses the deprecated UIWebView API to display web content, you should update your code for improved security, performance, and reliability. Learn more:</em></p><p><a href="https://developer.apple.com/news/?id=edwud51q" class="icon icon-after icon-chevronright">Deadline extended for app updates using UIWebView</a></p><p><strong>SFSafariViewController</strong> is part of the SafariServices framework, and lets your users browse a web page, or a website right inside your app. With it, people can enjoy the same web browsing experience they get in Safari — including features like Password Autofill, Reader, and Secure Browsing — without ever having to leave your app.</p>
866 <p>These two APIs can provide a lot of the heavy lifting for web technologies in your app, though there are a few instances where we recommend alternative frameworks. For example, when presenting a web-based login screen for your app, use ASWebAuthenticationSession to provide people with the most secure experience.</p><h3>When should I use WKWebView?</h3><p>If you need to customize or control the display of web content — or interact with the content itself — WKWebView will be most flexible in helping you build the implementation that suits your needs. (If your app is designed to be used offline, make sure any WKWebView content has appropriate fallbacks and alerts.)</p>
867 <p>Additionally, consider WKWebView if you need to display HTML or CSS content inline or as part of rest of your app’s user interface.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/4433031D-A849-42F7-8C75-931FFFF84A37/2048.jpeg" data-hires="false" alt="The Washington Post’s development team implemented WKWebView to display content from the Washington Post website within their app."><p class="typography-caption">The Washington Post’s development team implemented WKWebView to display content from the Washington Post website within their app.</p></div><p>In short, WKWebView is an incredibly powerful technology that works in tandem with iOS and macOS frameworks. That said, WKWebView is not designed to outright replace system technologies and frameworks. For example, you should avoid using it in place of device-optimized UIKit classes like UITableView, UIImage, and UIButton, as you lose out on core system behaviors and provide a subpar experience for people who use your app.</p><h3>When should I use SFSafariViewController?</h3><p>When you want display websites inside your app without sending people to Safari, the best tool is SFSafariViewController. By using this API, you can effectively embed the Safari interface — and many of its key features and privacy protections — into your app. </p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/5988B8A3-851E-41E2-9754-AAA6DD38A1B4/2048.jpeg" data-hires="false" alt="The Apple Developer app displays web links through SFSafariViewController."><p class="typography-caption">The Apple Developer app displays web links through SFSafariViewController.</p></div><p>SFSafariViewController is best used when you need to display interactive web experiences on websites you don’t own, or showcase parts of your web content that are generally outside the scope of your app.</p><hr><h3>Resources</h3><p><a href="https://developer.apple.com/documentation/webkit/wkwebview" class="icon icon-after icon-chevronright">WKWebView</a></p><p><a href="https://developer.apple.com/documentation/safariservices/sfsafariviewcontroller" class="icon icon-after icon-chevronright">SFSafariViewController</a></p>
868 <section class="grid activity">
869 <section class="row">
870 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
871 <a href="https://developer.apple.com/wwdc17/225" class="activity-image-link">
872 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/7/1701/1701_wide_250x141_2x.jpg" data-hires="false" alt="">
873 </a>
874 </section>
875 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
876 <ul class="activity-tags">
877 <li class="activity-tag event"><span class="smaller">WWDC17</span></li>
878 </ul>
879 <a href="https://developer.apple.com/wwdc17/225">
880 <h4 class="no-margin-bottom activity-title">What's New in Safari View Controller</h4>
881 </a>
882
883 <p class="activity-description">Safari View Controller brings Safari’s features into your app for browsing the web and logging in with 3rd party services. Learn how to use new APIs to customize Safari View Controller’s UI to fit your app’s style.</p>
884 </section>
885 </section>
886 </section>
887 <section class="grid activity">
888 <section class="row">
889 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
890 <a href="https://developer.apple.com/wwdc17/220" class="activity-image-link">
891 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/7/1702/1702_wide_250x141_2x.jpg" data-hires="false" alt="">
892 </a>
893 </section>
894 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
895 <ul class="activity-tags">
896 <li class="activity-tag event"><span class="smaller">WWDC17</span></li>
897 </ul>
898 <a href="https://developer.apple.com/wwdc17/220">
899 <h4 class="no-margin-bottom activity-title">Customized Loading in WKWebView</h4>
900 </a>
901
902 <p class="activity-description">WKWebView allows you to seamlessly integrate web content into your app. Learn how new features in WKWebView allow you to manage cookies, filter unwanted content, and give you more control over loading web content.</p>
903 </section>
904 </section>
905 </section></description>
906 <pubDate>Thu, 08 Oct 2020 09:00:20 PDT</pubDate>
907 </item>
908 <item>
909 <title>New App Store marketing tools available</title>
910 <link>https://developer.apple.com/news/?id=g9mdaa8y</link>
911 <guid>https://developer.apple.com/news/?id=g9mdaa8y</guid>
912 <description><p>Take advantage of new marketing resources to promote your apps around the world. You can now generate short links or embeddable code that lead to your App&nbsp;Store product page and display your app icon, a QR code, or an App&nbsp;Store badge. Download localized App&nbsp;Store badges, your app icon, and&nbsp;more.</p>
913 <p><a href="https://tools.applemediaservices.com/app-store/"><span class="icon icon-after icon-chevronright nowrap">Learn more</span></a></p></description>
914 <pubDate>Tue, 29 Sep 2020 16:23:38 PDT</pubDate>
915 </item>
916 <item>
917 <title>Get your education apps ready for Schoolwork&nbsp;2.1&nbsp;beta</title>
918 <link>https://developer.apple.com/news/?id=xb9rienu</link>
919 <guid>https://developer.apple.com/news/?id=xb9rienu</guid>
920 <description><p>The latest version of Schoolwork, the powerful iPad app for teachers and students that helps them keep track of assignments and student progress, is now available. Make sure your app takes advantage of the latest ClassKit features to provide a great user experience. With the new ClassKit Catalog API, you can declare contexts ahead of time instead of at runtime, include keywords, and support a large number of assignable activities. Teachers can browse your app’s activities in Schoolwork before running your app for the first time on their device. Available in beta, this REST API can be tested with Schoolwork&nbsp;2.1. And on iPadOS&nbsp;14, ClassKit supports rich new metadata properties to make your content more discoverable by teachers in Schoolwork.</p>
921 <p><a href="https://developer.apple.com/documentation/classkitcatalogapi">Learn more about the ClassKit <span class="icon icon-after icon-chevronright nowrap">Catalog API</span></a></p>
922 <p><a href="https://developer.apple.com/download/">Download Schoolwork <span class="icon icon-after icon-chevronright nowrap">2.1 beta</span></a></p></description>
923 <pubDate>Wed, 23 Sep 2020 13:41:39 PDT</pubDate>
924 </item>
925 <item>
926 <title>Submit your tvOS apps to the App&nbsp;Store</title>
927 <link>https://developer.apple.com/news/?id=o2seozwy</link>
928 <guid>https://developer.apple.com/news/?id=o2seozwy</guid>
929 <description><p>With the tvOS&nbsp;14 SDK, games now have multiuser support and you can offer gamers a wider range of controller and input device options than ever before. You can augment custom video players with Picture in Picture and system-provided controls. And take advantage of new APIs to enhance search features in your apps.</p>
930 <p>Build your tvOS apps using Xcode&nbsp;12 GM seed, test them on Apple&nbsp;TV running tvOS&nbsp;14 GM seed, and submit them for review.</p>
931 <p><a href="https://developer.apple.com/tvos/submit/"><span class="icon icon-after icon-chevronright nowrap">Learn more</span></a></p></description>
932 <pubDate>Tue, 15 Sep 2020 15:13:26 PDT</pubDate>
933 </item>
934 <item>
935 <title>Submit your watchOS apps to the App&nbsp;Store</title>
936 <link>https://developer.apple.com/news/?id=d4mhs6fl</link>
937 <guid>https://developer.apple.com/news/?id=d4mhs6fl</guid>
938 <description><p>Deliver even more powerful and personal apps for Apple&nbsp;Watch with the new capabilities of watchOS&nbsp;7. Brand new APIs and tools, like multiple complications APIs, SwiftUI Complications, and Xcode Previews, make it easier than ever to create unique complications, so users can enjoy your app right on their watch face. And with Face Sharing, people can share their favorite customized faces via Messages, the web, and more.</p>
939 <p>Build your apps using Xcode&nbsp;12 GM seed, test them on devices running watchOS&nbsp;7 GM seed, and submit them for review. Starting April 2021, all watchOS apps submitted to the App&nbsp;Store must be built with Xcode&nbsp;12 and the watchOS&nbsp;7 SDK.</p>
940 <p><a href="https://developer.apple.com/watchos/submit/"><span class="icon icon-after icon-chevronright nowrap">Learn more</span></a></p></description>
941 <pubDate>Tue, 15 Sep 2020 15:12:15 PDT</pubDate>
942 </item>
943 <item>
944 <title>Submit your iOS and iPadOS apps to the App&nbsp;Store</title>
945 <link>https://developer.apple.com/news/?id=itpt8dkc</link>
946 <guid>https://developer.apple.com/news/?id=itpt8dkc</guid>
947 <description><p>Make sure your apps are ready when iOS&nbsp;14 and iPadOS&nbsp;14 become available to customers worldwide. Give users a quick way to engage with a part of your app at the right moment with App&nbsp;Clips. Let users experience your app right on their iPhone home screen with new widgets. Bring your ideas to life with new features and more realistic augmented reality experiences using ARKit and RealityKit. And much more.</p>
948 <p>Build your apps using Xcode&nbsp;12 GM seed, test them on devices running iOS&nbsp;14 and iPadOS GM seed, and submit them for review. Starting April 2021, all iOS and iPadOS apps submitted to the App&nbsp;Store must be built with Xcode&nbsp;12 and the iOS&nbsp;14 SDK.</p>
949 <p><a href="https://developer.apple.com/ios/submit/"><span class="icon icon-after icon-chevronright nowrap">Learn more</span></a></p></description>
950 <pubDate>Tue, 15 Sep 2020 15:10:18 PDT</pubDate>
951 </item>
952 <item>
953 <title>Support game controllers in your app</title>
954 <link>https://developer.apple.com/news/?id=hk2u622s</link>
955 <guid>https://developer.apple.com/news/?id=hk2u622s</guid>
956 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/DADAF991-18A5-4C7B-BBFF-74AD2332375A/2048.jpeg" data-hires="false" alt="Game controller"></div><p>Level up your apps and games with the Game Controller framework and easily build in support for popular console game controllers and MFi accessories on iPhone, iPad, Mac, and Apple TV. The precise control and tactile feedback provided by a game controller can deepen the player’s sense of immersion and enhance their gameplay experience. And now it’s easier than ever to help players discover which games support controllers.</p>
957 <p>With Xcode 12, you can indicate game controller support right when building your app. By indicating controller support, your App Store product page will display controller badging, and your app will be able to access controller input re-mapping options in Settings.</p><h3>How to add support for game controllers in Xcode 12</h3><p>To indicate controller support, follow a few simple steps:</p><ol>
958 <li>Open your <strong>Xcode project</strong>.</li>
959 <li>Navigate to the <strong>Signing &amp; Capabilities</strong> section of your app target.</li>
960 <li>Add the “Game Controllers” capability in Xcode.</li>
961 <li>Select each of the <strong>controller profiles</strong> your app or game supports. </li>
962 </ol><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/4167AA49-3B8E-44D3-A0CD-B3A734B9B34D/2048.jpeg" data-hires="false" alt="Game Controllers capability list in Xcode"></div><p><em>Note: “Extended Gamepad” refers to game controllers featuring physical buttons, triggers, and thumbsticks such as the Steelseries Nimbus, Sony Dualshock 4 Wireless Controller, Xbox Elite Wireless Controller Series 2, and others; and “Micro Gamepad” refers to the controls provided by the Siri Remote for Apple TV.</em></p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/B509DC34-3DA4-4CC9-8D98-E03530E85A1D/2048.jpeg" data-hires="false" alt="Enable extended gamepad support"></div><p>If you are building your app using an older version of Xcode, you can indicate controller support by editing the <code>info.plist</code> for your app. Set the <code>GCSupportsControllerUserInteraction</code> key to <code>true</code>, then indicate each of the controller profiles your app supports.</p><pre class="code-source"><code>&lt;key&gt;<span class="syntax-type">GCSupportsControllerUserInteraction</span>&lt;/key&gt;
963 &lt;<span class="syntax-literal">true</span>/&gt;
964
965 &lt;key&gt;<span class="syntax-type">GCSupportedGameControllers</span>&lt;/key&gt;
966 &lt;array&gt;
967 &lt;dict&gt;
968 &lt;key&gt;<span class="syntax-type">ProfileName</span>&lt;/key&gt;
969 &lt;string&gt;<span class="syntax-type">ExtendedGamepad</span>&lt;/string&gt;
970 &lt;/dict&gt;
971 &lt;/array&gt;</code></pre><h3>Press start</h3><p>The Game Controller framework offers powerful features for your apps across Apple platforms. And with iOS 14, tvOS 14, and macOS Big Sur, your app will also gain support for the Xbox Adaptive Controller and Xbox Elite Wireless Controller Series 2, custom haptics for rumble feedback, and keyboard and mouse input on iPad. For more information, be sure to check out “Advancements in Game Controllers” and “Bring keyboard and mouse gaming to iPad.”</p><h3>Resources</h3>
972 <section class="grid activity">
973 <section class="row">
974 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
975 <a href="https://developer.apple.com/wwdc20/10614" class="activity-image-link">
976 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3411/3411_wide_250x141_2x.jpg" data-hires="false" alt="">
977 </a>
978 </section>
979 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
980 <ul class="activity-tags">
981 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
982 </ul>
983 <a href="https://developer.apple.com/wwdc20/10614">
984 <h4 class="no-margin-bottom activity-title">Advancements in Game Controllers</h4>
985 </a>
986
987 <p class="activity-description">Let’s rumble! Discover how you can bring third-party game controllers and custom haptics into your games on iPhone, iPad, Mac, and Apple TV. We’ll show you how to add support for the latest controllers — including Xbox’s Elite Wireless Controller Series 2 and Adaptive Controller — and map...</p>
988 </section>
989 </section>
990 </section>
991 <section class="grid activity">
992 <section class="row">
993 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
994 <a href="https://developer.apple.com/wwdc20/10617" class="activity-image-link">
995 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3569/3569_wide_250x141_2x.jpg" data-hires="false" alt="">
996 </a>
997 </section>
998 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
999 <ul class="activity-tags">
1000 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1001 </ul>
1002 <a href="https://developer.apple.com/wwdc20/10617">
1003 <h4 class="no-margin-bottom activity-title">Bring keyboard and mouse gaming to iPad</h4>
1004 </a>
1005
1006 <p class="activity-description">Level up your iPad games and add in keyboard, mouse, and trackpad controls. Discover how to use the Game Controller framework to augment your existing titles, bring over games from other platforms, or dream up entirely new interaction experiences. Learn how to integrate keyboard and “delta”...</p>
1007 </section>
1008 </section>
1009 </section></description>
1010 <pubDate>Tue, 15 Sep 2020 09:55:52 PDT</pubDate>
1011 </item>
1012 <item>
1013 <title>App Store Review Guideline updates now available</title>
1014 <link>https://developer.apple.com/news/?id=xqk627qu</link>
1015 <guid>https://developer.apple.com/news/?id=xqk627qu</guid>
1016 <description><p>The App&nbsp;Store is a safe and trusted place for customers to discover and download apps, and a great opportunity for developers. These guideline changes and clarifications support new features in upcoming OS releases, better protect customers, and help your apps go through the review process as smoothly as possible.</p>
1017 <p>Updates are noted below. For complete details, see the <a href="https://developer.apple.com/app-store/review/guidelines/">App&nbsp;Store Review Guidelines</a>.</p><h3>Changes</h3><p>2.5.16: App Clips, widgets, extensions, and notifications should be related to the content and functionality of your app. Additionally, all App Clip features and functionality must be included in the main app binary. App Clips cannot contain advertising.</p>
1018 <p>3.1.2(a): Games offered in a streaming game service subscription must be downloaded directly from the App Store, must be designed to avoid duplicate payment by a subscriber, and should not disadvantage non-subscriber customers.</p>
1019 <p>3.1.2(a): Apps that offer auto-renewing music and video subscriptions with prior approval by Apple may also be included in pre-defined bundles with cellular data plans offered in cellular carrier apps.</p>
1020 <p>3.1.3(a): Reader apps may offer account creation for free tiers, and account management functionality for existing customers.</p>
1021 <p>3.1.3(d): Person-to-Person Experiences: If your app enables the purchase of realtime person-to-person experiences between two individuals (for example tutoring students, medical consultations, real estate tours, or fitness training), you may use purchase methods other than in-app purchase to collect those payments. One-to-few and one-to-many realtime experiences must use in-app purchase.</p>
1022 <p>3.1.3(f): Free Stand-alone Apps: Free apps acting as a stand-alone companion to a paid web based tool (eg. VOIP, Cloud Storage, Email Services, Web Hosting) do not need to use in-app purchase, provided there is no purchasing inside the app, or calls to action for purchase outside of the app.</p>
1023 <p>3.1.7: Display advertising should be limited to your main app executable, and should not be included in extensions, App Clips, widgets, notifications, keyboards, watchOS apps, etc.</p>
1024 <p>3.2.2(vi): Apps should not require users to rate the app, review the app, watch videos, download other apps, tap on advertisements, enable tracking, or take other similar actions in order to access functionality, content, use the app, or receive monetary or other compensation, including but not limited to gift cards and codes.</p>
1025 <p>3.2.2(x): Apps offering personal loans must clearly and conspicuously disclose all loan terms, including but not limited to equivalent maximum Annual Percentage Rate (APR) and payment due date. Apps may not charge a maximum APR higher than 36%, including costs and fees, and may not require repayment in full in 60 days or less.</p>
1026 <p>4.9: Streaming games</p>
1027 <p>Streaming games are permitted so long as they adhere to all guidelines — for example, each game update must be submitted for review, developers must provide appropriate metadata for search, games must use in-app purchase to unlock features or functionality, etc. Of course, there is always the open Internet and web browser apps to reach all users outside of the App Store.</p>
1028 <p>4.9.1: Each streaming game must be submitted to the App Store as an individual app so that it has an App Store product page, appears in charts and search, has user ratings and review, can be managed with ScreenTime and other parental control apps, appears on the user’s device, etc.</p>
1029 <p>4.9.2: Streaming game services may offer a catalog app on the App Store to help users sign up for the service and find the games on the App Store, provided that the app adheres to all guidelines, including offering users the option to pay for a subscription with in-app purchase and use Sign in with Apple. All the games included in the catalog app must link to an individual App Store product page.</p>
1030 <p>After You Submit: If you still disagree with the outcome, or would like to suggest a change to the guideline itself, please submit an appeal.</p>
1031 <p>Bug Fix Submissions: For apps that are already on the App Store, bug fixes will no longer be delayed over guideline violations except for those related to legal issues. If your app has been rejected, and qualifies for this process, please use the Resolution Center to communicate directly with the App Review team indicating that you would like to take advantage of this process and plan to address the issue in your next submission.</p><h3>Clarifications</h3><p>2.3.1: Don’t include any hidden, dormant, or undocumented features in your app; your app’s functionality should be clear to end users and App Review.</p>
1032 <p>2.3.1: All new features, functionality, and product changes must be described with specificity in the Notes for Review section of App Store Connect (generic descriptions will be rejected) and accessible for review.</p>
1033 <p>2.3.7: Choose a unique app name, assign keywords that accurately describe your app, and don’t try to pack any of your metadata with trademarked terms, popular app names, pricing information, or other irrelevant phrases just to game the system.</p>
1034 <p>3.1.3: Other Purchase Methods: The following apps may use purchase methods other than in-app purchase. Apps in this section cannot, either within the app or through communications sent to points of contact obtained from account registration within the app (like email or text), encourage users to use a purchasing method other than in-app purchase.</p>
1035 <p>3.1.3(c): Enterprise Services: If your app is only sold directly by you to organizations or groups for their employees or students (for example professional databases and classroom management tools), you may use purchase methods in addition to in-app purchase to collect those payments. Consumer, single user, or family sales must use in-app purchase.</p>
1036 <p>3.1.3(e): Former 3.1.5(a) renumbered.</p>
1037 <p>3.1.3(b): Multiplatform Services: Apps that operate across multiple platforms may allow users to access content, subscriptions, or features they have acquired in your app on other platforms or your web site, including consumable items in multi-platform games, provided those items are also available as in-app purchases within the app.</p>
1038 <p>3.1.5: Former 3.1.5(b) renumbered.</p>
1039 <p>4.5.2(i): MusicKit on iOS lets users play Apple Music and their local music library natively from your apps and games. When a user provides permission to their Apple Music account, your app can create playlists, add songs to their library, and play any of the millions of songs in the Apple Music catalog.</p>
1040 <p>5.1.2(vi): Data gathered from the HomeKit API, HealthKit, Clinical Health Records API, MovementDisorder APIs, ClassKit or from depth and/or facial mapping tools (e.g. ARKit, Camera APIs, or Photo APIs) may not be used for marketing, advertising or use-based data mining, including by third parties. Learn more about best practices for implementing CallKit, HealthKit, ClassKit, and ARKit.</p>
1041 <p><a href="https://developer.apple.com/app-store/review/guidelines/">Read the App Store <span class="icon icon-after icon-chevronright nowrap">Review Guidelines</span></a></p></description>
1042 <pubDate>Fri, 11 Sep 2020 11:56:15 PDT</pubDate>
1043 </item>
1044 <item>
1045 <title>Enhancements to sandbox testing now available</title>
1046 <link>https://developer.apple.com/news/?id=nue1z72t</link>
1047 <guid>https://developer.apple.com/news/?id=nue1z72t</guid>
1048 <description><p>The Apple sandbox environment lets you test in-app purchases on devices using product information set up in App&nbsp;Store Connect. You can now test upgrades, downgrades, and cancellations for subscriptions, as well as reset the introductory offer eligibility for a test account from Settings on devices running iOS&nbsp;14 or later. You can also test your app’s response to interrupted purchases on devices running iOS&nbsp;14 or later. And App&nbsp;Store Connect users with the Developer role can now create and manage sandbox tester accounts.</p>
1049 <p><a href="https://developer.apple.com/documentation/storekit/in-app_purchase/testing_in-app_purchases_with_sandbox">Learn about testing in-app purchases <span class="icon icon-after icon-chevronright nowrap">in sandbox</span></a></p>
1050 <p><a href="https://developer.apple.com/documentation/storekit/in-app_purchase/testing_at_all_stages_of_development_with_xcode_and_sandbox">Learn about testing at all stages <span class="icon icon-after icon-chevronright nowrap">of development</span></a></p></description>
1051 <pubDate>Wed, 09 Sep 2020 16:22:32 PDT</pubDate>
1052 </item>
1053 <item>
1054 <title>What’s new in CryptoKit</title>
1055 <link>https://developer.apple.com/news/?id=3bwfq45y</link>
1056 <guid>https://developer.apple.com/news/?id=3bwfq45y</guid>
1057 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/6B83E825-5C5A-42C1-B15F-A3A29480D7D4/2048.jpeg" data-hires="false" alt="CryptoKit icon"></div><p>People expect apps to be secure and their data to be protected. You may need to perform cryptographic operations to implement features such as authentication, message encryption, or to meet regulatory requirements. CryptoKit is a Swift framework that makes it easier and safer to perform common cryptographic operations, whether you simply need to compute a hash or are implementing a more advanced authentication protocol. This year, CryptoKit adds new APIs for HMAC-based Extract-and-Expand Key Derivation Functions (HKDF), support for PEM and DER formats, and with Swift Crypto your code can now run everywhere Swift runs.</p><h3>HKDF</h3><p>Key derivation functions allow you to derive one or more secrets of the size of your choice from a master key or passcode. Starting in iOS 14, you can now use standalone APIs for HKDF. Integrate the easy to use one-shot variant for quick tasks such as deriving multiple keys from a master secret, or the two-step extract and expand API with fine-grained control over the key derivation process. In prior versions of iOS, HKDF was supported only when deriving a symmetric key from an elliptic curve key agreement protocol.</p><p><a href="https://developer.apple.com/documentation/cryptokit/hkdf" class="icon icon-after icon-chevronright">HKDF</a></p><h3>PEM and DER formats for encoding elliptic curve keys</h3><p>PEM and DER formats are now supported directly in CryptoKit. You can now directly pass a PEM string or DER-encoded data to initialize CryptoKit public and private keys, without using another library to perform the conversion.</p><h3>Portability</h3><p>With Swift Crypto you can create cross-platform solutions using the CryptoKit APIs on all platforms that Swift supports, including Linux and servers. Portability is important when you need to run the same code on your client and server, such as supporting two-factor authentication using a One-Time Password.</p><h3>Resources</h3><p><a href="https://swift.org/blog/crypto/" class="icon icon-after icon-chevronright">Introducing Swift Crypto</a></p><p><a href="https://www.dotconferences.com/2020/02/cory-benfield-cryptography-in-swift" class="icon icon-after icon-chevronright">Watch “Cryptography in Swift” from dotSwift 2020</a></p></description>
1058 <pubDate>Tue, 08 Sep 2020 08:00:43 PDT</pubDate>
1059 </item>
1060 <item>
1061 <title>Details for app privacy questions now available</title>
1062 <link>https://developer.apple.com/news/?id=hx9s63c5</link>
1063 <guid>https://developer.apple.com/news/?id=hx9s63c5</guid>
1064 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/127507F9-840F-4091-AF72-4C8FA1E54487/2048.jpeg" data-hires="false" alt="Screenshot of new app privacy section in the App Store"></div><p>At Apple, we believe that privacy is a fundamental human right. As announced at WWDC20, App&nbsp;Store product pages will feature a new privacy information section to help users understand an app’s privacy practices. Today we are publishing more details for developers on what will be covered in this new privacy section. By the end of next month, you will be able to submit your information via App&nbsp;Store Connect to prepare for this feature rolling out to users by the end of the year.</p>
1065 <p><a href="https://developer.apple.com/support/app-privacy-on-the-app-store/">Learn more about providing app <span class="icon icon-after icon-chevronright nowrap">privacy information</span></a></p>
1066 <p>In addition, on iOS&nbsp;14, iPadOS&nbsp;14, and tvOS&nbsp;14, apps will be required to receive user permission to track users across apps or websites owned by other companies, or to access the device’s advertising identifier. We are committed to ensuring users can choose whether or not they allow an app to track them. To give developers time to make necessary changes, apps will be required to obtain permission to track users starting early next year. More information, including an update to the App&nbsp;Store Review Guidelines, will follow this fall.</p>
1067 <p><a href="https://developer.apple.com/app-store/user-privacy-and-data-use/">Learn more about asking permission <span class="icon icon-after icon-chevronright nowrap">to track</span></a></p></description>
1068 <pubDate>Thu, 03 Sep 2020 18:47:54 PDT</pubDate>
1069 </item>
1070 <item>
1071 <title>Get ready for subscription offer codes</title>
1072 <link>https://developer.apple.com/news/?id=lrnyc3aj</link>
1073 <guid>https://developer.apple.com/news/?id=lrnyc3aj</guid>
1074 <description><p>Later this year, you’ll be able to acquire, retain, and win back subscribers with subscription offer codes: unique, alphanumeric codes that provide free or discounted prices for auto-renewable subscriptions. Provide your one-time use codes digitally or offline at physical events, alongside products, and more. Customers on iOS&nbsp;14 and iPadOS&nbsp;14 and later can redeem offer codes on the App&nbsp;Store, through a one-time code redemption URL, or within your app if you’ve implemented the <code>presentCodeRedemptionSheet</code>&nbsp;API.</p>
1075 <p><a href="https://developer.apple.com/app-store/subscriptions/#providing-subscription-offers">Learn more about subscription <span class="icon icon-after icon-chevronright nowrap">offer codes</span></a></p></description>
1076 <pubDate>Wed, 02 Sep 2020 15:10:58 PDT</pubDate>
1077 </item>
1078 <item>
1079 <title>Upcoming tax and price changes for apps and in-app purchases</title>
1080 <link>https://developer.apple.com/news/?id=oyy56t2r</link>
1081 <guid>https://developer.apple.com/news/?id=oyy56t2r</guid>
1082 <description><p>When taxes or foreign exchange rates change, we sometimes need to update prices on the App Store. In the next few days, prices of apps and in-app purchases (excluding auto-renewable subscriptions) on the App Store will increase in response to tax changes in Chile, Mexico, Saudi Arabia, and Turkey. Your proceeds will be adjusted accordingly and will be calculated based on the tax-exclusive price.</p>
1083 <ul>
1084 <li>Chile: New value-added tax of 19%</li>
1085 <li>Mexico: New value-added tax of 16%</li>
1086 <li>Saudi Arabia: Increase in value-added tax from 5% to 15%</li>
1087 <li>Turkey: New digital services tax of 7.5% (in addition to the existing value-added tax of 18%)</li>
1088 </ul>
1089 <p>In addition, your proceeds will also be adjusted in Germany, France, Italy, and the United Kingdom, and will be calculated based on the tax-exclusive price. However, prices on the App Store will not change.</p>
1090 <ul>
1091 <li>Germany: Reduced value-added tax rate from 19% to 16% (effective July 2020)</li>
1092 <li>France: New digital services tax of 3% (in addition to the existing value-added tax of 20%)</li>
1093 <li>Italy: New digital services tax of 3% (in addition to the existing value-added tax of 22%)</li>
1094 <li>United Kingdom: New digital services tax of 2% (in addition to the existing value-added tax of 20%)</li>
1095 </ul>
1096 <p>Note that Apple will automatically issue refunds on a monthly basis to customers in Germany (effective July 2020) with auto-renewable subscriptions to account for the tax reduction. These refunds will not affect your proceeds.</p>
1097 <p>You can download the <a href="https://itunespartner.apple.com/assets/downloads/270820Mexico-Chile-SaudiArabia-Turkey.pdf">updated price tier charts</a> now. Once these changes go into effect, the Pricing and Availability section of My Apps will be updated. You can change the price of your apps and in-app purchases (including auto-renewable subscriptions) at any time in App Store Connect. If you offer subscriptions, you can choose to preserve prices for existing subscribers.</p></description>
1098 <pubDate>Tue, 01 Sep 2020 10:20:20 PDT</pubDate>
1099 </item>
1100 <item>
1101 <title>App Review process updates</title>
1102 <link>https://developer.apple.com/news/?id=84w3e5bm</link>
1103 <guid>https://developer.apple.com/news/?id=84w3e5bm</guid>
1104 <description><p>The App&nbsp;Store is dedicated to providing a great experience for everyone. To continue offering a safe place for users to download apps and helping you successfully develop apps that are secure, high-quality, reliable, and respectful of user privacy, we’ve updated the app review process as announced at WWDC20. For apps that are already on the App&nbsp;Store, bug fixes will no longer be delayed over guideline violations except for those related to legal issues. You’ll instead be able to address guideline violations in your next submission. And now, in addition to appealing decisions about whether an app violates guidelines, you can <a href="https://developer.apple.com/contact/app-store/?topic=guideline">suggest changes to the guidelines</a>. We also encourage you to submit your App&nbsp;Store and Apple development platform suggestions so we can continue to improve experiences for the developer community.</p>
1105 <p><a href="https://developer.apple.com/app-store/tell-us/">Submit an App&nbsp;Store or <span class="icon icon-after icon-chevronright nowrap">platform suggestion</span></a></p></description>
1106 <pubDate>Mon, 31 Aug 2020 17:46:34 PDT</pubDate>
1107 </item>
1108 <item>
1109 <title>WWDC20 video subtitles now in more languages</title>
1110 <link>https://developer.apple.com/news/?id=zzqb4otp</link>
1111 <guid>https://developer.apple.com/news/?id=zzqb4otp</guid>
1112 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/4F8BBC17-6BFC-4D59-891F-74473442E189/2048.jpeg" data-hires="false" alt="Picture of text bubbles with Japanese and Simplified Chinese text."></div><p>You can now watch the Special Event Keynote, Platforms State of the Union, and over 200 sessions from this year’s Apple Worldwide Developers Conference with Japanese and Simplified Chinese subtitles. Available on the web, iPhone, iPad, Mac, and Apple&nbsp;TV.</p>
1113 <p><a href="https://developer.apple.com/videos/wwdc2020/">View <span class="icon icon-after icon-chevronright nowrap">WWDC20 videos</span></a></p></description>
1114 <pubDate>Mon, 31 Aug 2020 16:18:25 PDT</pubDate>
1115 </item>
1116 <item>
1117 <title>Easily create web extensions for Safari</title>
1118 <link>https://developer.apple.com/news/?id=kuswih5l</link>
1119 <guid>https://developer.apple.com/news/?id=kuswih5l</guid>
1120 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/B39342ED-135B-48B7-816C-B25D66DD2C93/2048.jpeg" data-hires="false" alt="Icon for Safari Web Extensions"></div><p>Safari Web Extensions can add custom functionality to Safari&nbsp;14 beta using the same WebExtensions API used in other browsers, such as Chrome, Firefox, and Edge. And with a new conversion tool in Xcode&nbsp;12 beta, you can quickly bring your existing extensions to Safari and make them available on the Mac&nbsp;App&nbsp;Store this fall.</p>
1121 <p><a href="https://developer.apple.com/documentation/safariservices/safari_web_extensions">Learn more about the <span class="icon icon-after icon-chevronright nowrap">WebExtensions API</span></a></p></description>
1122 <pubDate>Thu, 27 Aug 2020 13:23:22 PDT</pubDate>
1123 </item>
1124 <item>
1125 <title>Behind the Design: Song of Bloom</title>
1126 <link>https://developer.apple.com/news/?id=q9fq8jkq</link>
1127 <guid>https://developer.apple.com/news/?id=q9fq8jkq</guid>
1128 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/46DD437D-3C17-41A0-B562-CB3079184C78/2048.jpeg" data-hires="false" alt=""></div><p>When designing games, Philipp Stollenmayer has a confession to make. “I’m easily bored,” he says. “And I just don't want the player to be bored when I am.”</p>
1129 <p>The German developer’s aversion to monotony has fueled a prolific number of creative and off-kilter titles over the years, including <em>Sometimes You Die</em>, <em>Sticky Terms</em>, and <em>Bacon — The Game</em>. 2019’s <em>Song of Bloom</em> goes further still. The Apple Design Award-winning puzzle game is enigmatic and ever-shifting, with a series of layered and intertwined levels that invite people to tap, shake, draw, and explore their device.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/DE8FBCAA-B972-4FEA-9243-F3DF7A341E2F/2048.jpeg" data-hires="false" alt="Song of Bloom’s puzzles range in style, design, and execution."><p class="typography-caption">Song of Bloom’s puzzles range in style, design, and execution.</p></div><p>“It's an abstract game [that develops] into something more understandable with time,” says Stollenmayer. “The more you get in the story, the more you discover and the more the interaction changes.”</p>
1130 <p>This concept is a core part of his philosophy around game design: create an instantly graspable idea, then keep thinking, pushing, and inviting players go further. There’s no true ‘goal’ beyond the exploration of the narrative and the puzzles — in Stollenmayer’s words, the game is “user experience in its truest form.”</p>
1131 <p><em>Song of Bloom</em> grew from one of Stollenmayer’s vacation experiments. Having taken a looping video of waves on the beach while in Italy, he decided to try and add a new aspect to it with device rotation: when the video flipped, the water would fall out of frame. From there, “it just became a process of triggering new ideas and new experiments,” he says.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/325FE0DE-F1F3-47C2-9D72-5DDCB11E5111/2048.jpeg" data-hires="false" alt="The milk carton from Song of Bloom, made real."><p class="typography-caption">The milk carton from Song of Bloom, made real.</p></div><p>Unlike Stollenmayer’s other games, nothing is constant in <em>Song of Bloom</em>. “Not the elements, not the interaction, and not even remotely the style,” he says. One puzzle might look like a rough sketch, while others include hyper-realistic popcorn kernels. His favorite puzzle of the series? A stop-motion risograph-inspired milk carton.</p><blockquote class="article-quote"><p>There is always this doubt in the back of the mind if what you are seeing is real. This contributes a lot to the mood I am trying to convey.</p><cite>Philipp Stollenmayer</cite></blockquote><p>Every image in <em>Song of Bloom</em> is computer-generated, the result of experimenting with code — sometimes with unintended results. “As a designer who isn’t the greatest programmer, my code usually creates visual errors,” says Stollenmayer. “On the way, I would let myself [be inspired] by my own faults.”</p>
1132 <p>That included manipulating items to make them look more like how they might in a real-world setting. For example, one puzzle, which requires someone to virtually knit an item, includes the sort of stray holes and tiny offshoots that you might expect from a newer knitter. “Making digital versions without these faults is much easier,” Stollenmayer says. “But copying the faults creates moments where you ask yourself: Could this be real?”</p>
1133 <p>He drew inspiration from immersive installations and puzzle games alike, including multimedia artists Laure Prouvost and Franz West and games like <em>Blackbox</em>, <em>Device6</em>, and <em>Prune</em>. “I look at a lot of art to get a sense for color, composition — but also how to control and transform surroundings,” he says.</p><blockquote class="article-quote"><p>I am interested in the between, where it all comes together, because in our world, nothing exists without context.</p><cite>Philipp Stollenmayer</cite></blockquote><p>Each visual, haptic, motion, and verbal cue within the game is designed to get the player to explore that space and interact with its imagery. Because the puzzles are often highly abstracted, Stollenmayer used haptics to help guide people through the game — using them to signify mood in higher- or lower-stakes scenes or aid someone in evaluating potential solves. “Like in the real world, the player expects a reaction from every action,” Stollenmayer says.</p>
1134 <p>One of his earliest concepts for transitioning between puzzles in <em>Song of Bloom</em> was that of someone blinking their eyes: Solve the puzzle or move to the main screen, and the entire screen blinks in and out.</p>
1135 <p>Stollenmayer experimented with several multitouch gestures around that concept, including a pinch gesture, before settling on a button — a single curved line — in the corner. “I had to get it into the player’s mind,” he says. That meant creating something easily findable and understandable, and not adding gestures that might get triggered by chance during the exploration of a puzzle.</p>
1136 <p>That thin curved line is one of the only pieces of consistent, persistent interface amidst <em>Song of Bloom</em>’s many artistic changes. “Like the home bar on full screen iPhones, it’s just there to remind you that [it] exists, without disturbing the running scene with any content or contrasting style,” Stollenmayer says.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/132EA8D1-4801-480B-8AB5-E080619EA875/2048.jpeg" data-hires="false" alt="Stollenmayer with an early version of the Song of Bloom tree."><p class="typography-caption">Stollenmayer with an early version of the Song of Bloom tree.</p></div><p>On tap, it allows people to return to the game’s main screen and view the branching tree of puzzles they’ve helped grow. This tree also serves as the game’s sole hint mechanism, letting people use long presses to peek at possible areas to focus on within the game. The more you play around with it, the more the story (and tree) grows and the more hints you discover. Along with original music, it’s this fertile combination of forces that earns the game its name. </p>
1137 <p>With so many different art styles and creative influences, it’s amazing how effortlessly they all blend together in Song of Bloom. The story is important, of course, but for Philipp design is really about how it feels. Call <em>Song of Bloom</em> what you will — a game of personal discovery, a provocative tale of art and clues — for Philipp Stollenmayer, the goal is simply to play; to make people feel at once captivated and liberated all in the same hour-long session.</p><blockquote class="article-quote"><p>In Song of Bloom, you just play for the sake of playing. And this is what I was trying to achieve — to help the player get lost in his own interpretation.</p><cite>Philipp Stollenmayer</cite></blockquote><p><a href="http://www.kamibox.de/songofbloom" class="icon icon-after icon-chevronright">Learn more about Song of Bloom</a></p><p><a href="https://apps.apple.com/story/id1521325644" class="icon icon-after icon-chevronright">Learn more about Song of Bloom on the App Store</a></p><p><a href="https://apps.apple.com/us/app/song-of-bloom/id1479162134" class="icon icon-after icon-chevronright">Download Song of Bloom</a></p></description>
1138 <pubDate>Fri, 21 Aug 2020 08:40:22 PDT</pubDate>
1139 </item>
1140 <item>
1141 <title>Behind the Design: Sayonara Wild Hearts</title>
1142 <link>https://developer.apple.com/news/?id=33kvkagk</link>
1143 <guid>https://developer.apple.com/news/?id=33kvkagk</guid>
1144 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/7DAF253C-08E7-476A-A509-13B7A40037E6/2048.jpeg" data-hires="false" alt="Sayonara Wild Hearts characters stand in front of motorcycles"></div><p>Art can reflect emotions we can’t process in spoken word alone: Paintings capture these feelings in color and scale, films reflect our world back to us through new light, and music puts melody to the words we don’t know how to — or cannot — say.</p>
1145 <p>The road of relationships is particularly well-traveled where art is concerned. <em>Sayonara Wild Hearts</em>, however, uses the approachability of the topic and transforms it into an exploration on lost love, finding independence, and moving on. Ever-shifting gameplay and an electrifying beat capture the stages of reflecting on a broken relationship, illuminated by a psychedelic canvas of bright rainbow colors and geometric shapes. </p>
1146 <p>“This is a game that is very much about the music,” says Simon Flesser, who along with his co-founder Gordon Gardebäck makes up the game company Simogo. While the two have often created playlists of brainstorm music and scoring for their games, the conceit for <em>Sayonara</em> was unique: What if you could take the ubiquity of the breakup album and make it interactive through the best tropes of 80s and 90s arcade games?</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/0DFE72E0-0E52-4796-849B-922B639E71CC/2048.jpeg" data-hires="false" alt="Protagonist rides a motorcycle down the street"></div><p>“We wanted everything in the game to echo that sense of approachability,” Flesser says. “[And] we naturally fell into the idea of wanting to make something that felt like the arcade games we great up with and played when we were young.” Games like <em>Star Fox</em> provided inspiration for the team, as did the musical integration through titles like <em>Rez.</em> “We [also] often try to find inspiration in things we don’t necessarily like, but see the potential in,” Flesser says. “We looked at games that use video a lot… where those game fail in interactivity, they really succeed in spectacle. So we wanted to try and capture that feeling, while not losing the feeling of being in constant control of the game.”</p>
1147 <p>To capture the musical foundation for the game, Simogo began with a large playlist of music that represented the essence of the project. “It started very differently, with a much more sinister tone,” Flesser tells us. The game’s prototype reflected this darker style — until, one day, an overly energetic pop song from the playlist came into rotation during a playtest. </p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/1DA4E53F-F7B7-4DA7-B10B-B03F9A20D7AC/2048.jpeg" data-hires="false" alt="Early concept art for Sayonara Wild Hearts."><p class="typography-caption">Early concept art for Sayonara Wild Hearts.</p></div><p>“It just clicked,” Flesser says. “I literally said [to the team], ‘This is it.’” They began writing original pop songs around this new tone the very next day. And as the new songs came into focus, the prototype’s color scheme began to shift as well. “[The songs] were in hues of purple and pink and blue,” Flesser says. “It painted the game for us, the music.”</p><blockquote class="article-quote"><p>Go with what your heart tells you and what your gut tells you… Because I think that's the only way that you will get something that feels like it has something to say or that it's an honest piece of work… once you start thinking too much about what you're making and what you're trying to say with it, then there's some kind of intangible magic lost because the project needs to tell you what it is instead of you telling the project what it is.</p><cite>Simon Flesser, Simogo</cite></blockquote><p>Simogo continued playing with recognizable themes and objects as the team refined characters for <em>Sayonara.</em> “[Characters] are all based on cards from the Major Arcana deck,” Flesser says. The tarot cards also influenced some of the broader conceptual designs and bigger items like the vehicles driven by various game characters.</p><p>Within the tarot card frame, <em>Sayonara</em>’s distinctive colors and geometric shapes create contrast between characters and the background, providing crisp views as people play through the game’s chapters with taps and swipes. “We needed to work with very simple shapes and distinctive colors because it's just swooshing by… you can't have much detail,” says Flesser. “We worked a lot with the contrast between dangerous stuff, positive stuff, characters, vehicles.” Each of these items was both differently colored and shaped to provide the maximum best possible contrast.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/0C649A08-28DA-453F-8E5B-224C38C38051/2048.jpeg" data-hires="false" alt="Twins holding swords flying at you in midair"></div><p>Because the game moves so fast, it was imperative to create controls both easy to follow and intuitive to use. As such, the team intentionally kept the controls platform agnostic. This also helps the game live equally at home on a touchscreen, third-party game controller, or Apple TV remote. “We opted for a more swiped base input for gameplay so that the player avatar moves when the player actually moves their finger,” Flesser says. </p>
1148 <p>Swipe controls continued to evolve as the team tested prototypes, with the game’s constant camera movements and zooms being a particular challenge. "We definitely learned a lot about feedback in 3D space versus 2D space,” Flesser says. “The same type of movement will feel radically different depending on how far away the camera is [and] how much the camera moves versus how much it rotates around its own axis or around the player avatar axis.”</p>
1149 <p>To smooth the experience, Simogo adjusted swipe responsivity and feedback to the camera’s active perspective and zoom level, while keeping the character in the same relative space.</p>
1150 <p>Together, this kind of care and design work in harmony to make <em>Sayonara Wild Hearts</em> a standout game on Apple platforms. Flesser had this to say about the game’s journey to Apple Design Award-winner:</p><blockquote class="article-quote"><p>We always just want to make something that you enjoy yourself. And if you do something you enjoy yourself, then chances are that there might be one or two other people that will enjoy it as well.</p></blockquote><p><a href="https://simogo.com/work/sayonara-wild-hearts/" class="icon icon-after icon-chevronright">Sayonara Wild Hearts</a></p><p><a href="https://apps.apple.com/us/app/sayonara-wild-hearts/id1441675161" class="icon icon-after icon-chevronright">Download Sayonara Wild Hearts</a></p><p><a href="https://apps.apple.com/story/id1521325868" class="icon icon-after icon-chevronright">Learn more about Sayonara Wild Hearts on the App Store</a></p></description>
1151 <pubDate>Fri, 07 Aug 2020 08:40:07 PDT</pubDate>
1152 </item>
1153 <item>
1154 <title>Enhance SMS-delivered code security with domain-bound codes</title>
1155 <link>https://developer.apple.com/news/?id=z0i801mg</link>
1156 <guid>https://developer.apple.com/news/?id=z0i801mg</guid>
1157 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/C076D234-284F-449F-9EE8-D0C23D8555EE/2048.jpeg" data-hires="false" alt="SMS icon"></div><p>Many websites and apps offer additional login security in the form of SMS-delivered codes. On iPhone, Security Code AutoFill makes it easy for people to quickly supply these codes by offering them in the QuickType bar. On a Mac running macOS Big Sur, Mac Catalyst and AppKit apps can take advantage of this feature as well. </p>
1158 <p>Additionally, starting with iOS 14 and macOS Big Sur, we’re adding an extra layer of security to SMS-delivered codes by allowing you to associate codes with a specific web domain.</p><h3>How domain-bound codes work</h3><p>When you use a domain-bound code, AutoFill will suggest the code if — and only if — the domain is a match for the website or one of your app’s associated domains. For example, if you receive an SMS message that ends with <code>@example.com #123456</code>, AutoFill will offer to fill that code when they interact with example.com, any of its subdomains, or an app associated with example.com. If instead you receive an SMS message that ends with <code>@example.net #123456</code>, AutoFill will not offer the code on example.com or in example.com’s associated app. This makes it harder for an attacker to trick someone into entering one-time codes into a phishing site.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/29B5D7A0-ADBB-4D44-BE37-BEA231ACCA20/2048.jpeg" data-hires="false" alt="SMS code displaying in Safari QuickType bar"></div><p>While iOS and macOS will also display regular SMS-delivered codes in addition to domain-bound codes, we encourage everyone employing this authentication method to adopt this standard to provide a more secure experience for people on your website or app. If a message contains no domain information, it will continue to be offered in all relevant fields through AutoFill.</p><h3>How to set up SMS domain-bound codes</h3><p>You can take advantage of domain-bound codes on both websites and apps with associated domains.</p><p><strong>Set up domain-bound codes for your website</strong>
1159 In most cases, AutoFill should work automatically on Safari for iOS and macOS Big Sur, and requires no additional information from you. In cases where it does not, you can add the <code>autocomplete=one-time-code</code> attribute to your web page’s text field. This cues Safari to offer applicable codes in that field.</p><p><strong>Set up domain-bound codes for your app</strong>
1160 You can support domain-bound codes by providing an associated domain for your app. If you support Universal Links for your domain, or if AutoFill is currently suggesting saved passwords for your domain in your app’s login screens, your app is already associated with your domain.</p><p><a href="https://developer.apple.com/documentation/safariservices/supporting_associated_domains_in_your_app?language=objc" class="icon icon-after icon-chevronright">Learn more about supporting associated domains</a></p><p><em>Note: If you’re running into issues when testing your app’s login flows, you may need to provide an additional hint about which fields in your app are one-time code fields. For iOS and Mac Catalyst apps, set the field’s <code>textContentType</code> property to <code>UITextContentType.oneTimeCode</code>. For AppKit apps on macOS, <code>NSTextField</code> has a <code>contentType</code> property that you should set to <code>NSTextContentTypeOneTimeCode</code>.</em></p><hr><h3>How to format SMS domain-bound codes</h3><p>Once your app or website is set up to receive domain-bound codes, you’ll need to provide a simple addition to the SMS messages you send through your backend service to include both the domain and code. Here’s what the text you’ll send looks like:</p><pre class="code-source"><code>123456 is your Example code.
1161
1162 @example.com #123456</code></pre><p>Everything above the last line of the message is freeform. You're free to customize this part however you like, but it should be something that makes sense to people receiving the code.</p>
1163 <p>The last line of this message gives AutoFill on iPhone, iPad, or Mac the information it needs to bind the domain and code together and suggest the code for the appropriate website or app.</p>
1164 <p>In order for domain-bound codes to work properly, you must include this information in the last line of the message, and it must contain the domain and code in the correct order. </p>
1165 <p><code>@example.com</code></p>
1166 <p>This is the first part of that last line, and contains the domain of the app or website where you want the code to fill in. Make sure to put a single space after your domain before you begin the segment with your one-time code.</p>
1167 <p><code>#123456</code> (represents the code 123456)</p>
1168 <p>The second part of the last line begins with # and contains the string with your app or website’s one-time code.</p><h3>Improve your SMS-delivered codes</h3><p>Domain-bound codes are straightforward for developers to implement, easy for people using your apps and websites to understand, and add more security to the SMS-delivered codes. You can also learn more about domain-bound codes and the development of the message format in the W3C’s Web Platform Incubator Community Group.</p><h3>Resources</h3><p><a href="https://github.com/WICG/sms-one-time-codes" class="icon icon-after icon-chevronright">Learn more about domain-bound codes</a></p><p><a href="https://developer.apple.com/documentation/xcode/allowing_apps_and_websites_to_link_to_your_content" class="icon icon-after icon-chevronright">Allowing Apps and Websites to Link to Your Content</a></p></description>
1169 <pubDate>Tue, 04 Aug 2020 06:45:08 PDT</pubDate>
1170 </item>
1171 <item>
1172 <title>Verify your app’s integrity with the new App Attest API</title>
1173 <link>https://developer.apple.com/news/?id=2sngpulc</link>
1174 <guid>https://developer.apple.com/news/?id=2sngpulc</guid>
1175 <description><p>Part of the DeviceCheck services, the new App Attest API helps protect against security threats to your apps on iOS&nbsp;14 or later, reducing fraudulent use of your services. With App Attest, you can generate a special cryptographic key on a device and use it to validate the integrity of your app before your server provides access to sensitive data.</p>
1176 <p><a href="https://developer.apple.com/documentation/devicecheck"><span class="icon icon-after icon-chevronright nowrap">Learn more</span></a></p></description>
1177 <pubDate>Mon, 03 Aug 2020 16:58:33 PDT</pubDate>
1178 </item>
1179 <item>
1180 <title>Behind the Design: Shapr 3D</title>
1181 <link>https://developer.apple.com/news/?id=i6qdbzn9</link>
1182 <guid>https://developer.apple.com/news/?id=i6qdbzn9</guid>
1183 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/0EA2828B-5B6C-419B-8A62-75ACFDEA8CD0/2048.jpeg" data-hires="false" alt="Shapr 3D bike drawing coming out of ipad"></div><p>Five years ago, István Csanády hung a piece of paper on the wall of his nascent company’s all-too-small office. Scrawled upon it: “Easy should be easy. Hard must not be impossible.”</p>
1184 <p>Though this phrase was written on sheet paper, it might have well been etched into stone. It became the founding principle for Csanády’s app, Shapr 3D — a reinvention of computer-assisted design (CAD) systems, created exclusively with Multi-Touch and Apple Pencil in mind.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/F1E2EDE1-B89A-4C56-9369-B58368517EF3/2048.jpeg" data-hires="false" alt="Shapr 3D canvas featuring a one bedroom apartment"></div><p>While inspirational phrases have spawned many a weightless office poster (and a smattering of snarky variations), this one was weighted in truth by the frustrating real-world digital design experiences of Csanády’s family. “We have eight or nine architects in three generations in the family,” he says. </p>
1185 <p>As a child, he remembers his mother grousing over the arduous multi-month process of getting new CAD software, which often involved enrolling in a costly school to understand how the program worked. “Instead, eventually, she [would just hire] a couple of CAD draftsmen.” </p>
1186 <p>As both a 3D modeling enthusiast and a budding software engineer, Csanády was instantly drawn to the problem. “A great product is characterized by a minimal tool time,” Csanády says. “Nobody really wants to [take time to] learn to use their software.“</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/EE53A4E9-D6B2-45C3-9AB1-F1697EA379C7/2048.jpeg" data-hires="false" alt="Shapr 3D canvas displaying the app’s simplified tool structure"></div><p>He founded his first CAD startup in 2010 after a brief stint as an iPhone developer. While this first venture was unsuccessful, Csanády kept thinking. He took long bike rides. He pondered the problem in the late hours of the night. And he began creating the first prototypes of a touch-based 3D modeling system for iPad.</p>
1187 <p>“I got obsessed,” he confesses. In 2014, out of pure faith in the endeavor, Csanády quit his job as a senior software engineer and got to work. While iPad Pro and Pencil had at the time yet to be introduced, he started exploring what a touch-and-stylus interface might look like.</p>
1188 <p>“The best interactions are always the ones that have physical analogies,” Csanády says. He drew inspiration from tactile tools, creating digital controls for each modeling operation that mimicked their real-world counterparts. And when iPad Pro and Apple Pencil launched, Csanády and team quickly brought the drawing tool into their planning. </p>
1189 <p>"What makes the Apple Pencil and its stylus interaction super powerful is that both are metaphors for the real world,” he says. “And because they are metaphors for the physical world around us, we just don't have to educate [someone] about the function of these input devices… That radically shortens the learning curve.”</p>
1190 <p>Csanády and his newly-growing team used Multi-Touch and Apple Pencil to build a solid foundation for Shapr 3D. Perfecting it, however, was a years-long affair. “There are no shortcuts,” he says. “We did hundreds of prototypes.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/F8875605-C29A-4AC3-96C2-DF92D6EB983F/2048.jpeg" data-hires="false" alt="Shapr 3D canvas displaying a 3D model of an engine"></div><p>The team interviewed professional 3D modelers and architects, running case studies and inviting them to use — and sometimes break — their software. “You need to see them fail a thousand times,” he says. “And based on those failures, we can tweak tiny little things, and step-by-step get to the right solution.”</p>
1191 <p>Csanády has more than a few lessons he and his team have learned when it comes to designing a professional multitouch interface. “Explicit is always better than implicit,” he says. As an example, he references Shapr 3D’s push-pull interface, which displays arrow-handles on items that people can ‘grab’ to move something around the screen. “Until a couple of years ago, we didn't show those arrows,” he says. “That was one of the greatest learnings of all time… if we explicitly show these handles, that increases the success rate by two orders of magnitude.”</p>
1192 <p>Four years after launch, Shapr 3D maintains this obsessive focus on building the perfect tool for its professionals. “What works for Shapr 3D works because we have a very specific audience in a very specific context,” Csanády says. “The product works for our audience because we designed it with them in mind.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/1CFF9D96-C834-4D5E-B29D-75EB3850340F/2048.jpeg" data-hires="false" alt="Shapr 3D canvas"></div><p>The Shapr 3D team has grown significantly since its early days in that cramped office. Csanády employs a staff of 55 in Budapest, all of whom are working tirelessly to keep iterating and improving upon the app to make it an even better tool for professionals. They’ve added exhaustive tutorials, contextual and adaptive controls, keyboard shortcuts, and continue to adjust the workflow to be an even smoother process for everyone who uses the app. ”It's about always raising the bar and always being a little unhappy,” he says. “You can always do 10 percent better… Never be satisfied with what you have built.”</p>
1193 <p>In addition to field studies, the team incorporates analytics, usage data, and App Store reviews into its long-term product planning. They continuously evaluate opportunities, identify the gaps where the company is now, and look at where they want to be in the future. It’s a complex multidimensional puzzle, but Csanády’s vision is clear — and just a little bit ambitious. “We want to become a verb, like Xerox.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/4587B663-534E-4BA4-AC9F-7A7EF9B77132/2048.jpeg" data-hires="false" alt="The Shapr 3D team celebrates 10,000 designers using their app."></div><hr><p><a href="https://www.shapr3d.com/" class="icon icon-after icon-chevronright">Learn more about Shapr3D</a></p><p><a href="https://apps.apple.com/story/id1521733404" class="icon icon-after icon-chevronright">Read about Shapr3D on the App Store</a></p><p><a href="https://apps.apple.com/us/app/shapr-3d-cad-modeling/id1091675654" class="icon icon-after icon-chevronright">Download Shapr3D on the App Store</a></p></description>
1194 <pubDate>Fri, 31 Jul 2020 08:35:08 PDT</pubDate>
1195 </item>
1196 <item>
1197 <title>Design a great in-app purchase experience for Apple Watch</title>
1198 <link>https://developer.apple.com/news/?id=wl3gnk1h</link>
1199 <guid>https://developer.apple.com/news/?id=wl3gnk1h</guid>
1200 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/52AD261D-B8AE-4C7E-A06D-45A9C6F9BEE6/2048.jpeg" data-hires="false" alt="Watch app showing one time in app purchase "></div><p>Your Apple Watch apps can help people achieve their personal fitness goals, monitor their health, get actionable information straight to their wrist, and so much more. And with watchOS 6.2, you can further expand your customers’ experiences by offering in-app purchases and subscription flows directly on Apple Watch. </p>
1201 <p>These interactions use the same StoreKit APIs available for iOS app development, allowing you to quickly implement them in your watchOS apps, and they can be added to both independent watchOS apps (which can function fully independently of an iOS app) and dependent watchOS apps (which need an iOS companion app to function).</p>
1202 <p>Let’s take a look at why and when you might want to offer purchases within your app, as well as some best practices around implementing a great flow for your customers.</p><h3>When to offer in-app purchases and subscriptions</h3><p>In-app purchases and subscriptions can make your Apple Watch apps even better by offering both additional content and purchasing flexibility.</p>
1203 <p>If you have an independent app, people can already download it directly through the Watch App Store, and in-app purchases and subscriptions build upon that independence. Apps dependent on the companion iOS app can benefit, too, as these give people more power to purchase additional content without having to reach for their iPhone.</p>
1204 <p>When deciding whether to bring an in-app purchase or subscription flow to your app, consider what you’re offering. Does this purchase or subscription unlock anything specific to Apple Watch? Fitness apps, for instance, might supply additional workouts, or let your customers subscribe to a monthly program.</p>
1205 <p>Once you’ve decided to add an in-app purchase or subscription, give some thought to when your app should display it. These prompts are most helpful when they provide a next step for your customers to unlock further functionality within your app.</p><h3>Best practices for a great in-app purchase and subscription experience</h3><p>Effective purchase flows on Apple Watch are concise and clear. Your messaging must be easily scannable, and your options must be easy to compare with each other on a small screen. Keeping things short and sweet will help ensure that people can evaluate the choices, make a decision quickly, and carry on with the task at hand. </p>
1206 <p><strong>Make your choices clear</strong>
1207 When offering one-time purchases and subscriptions alongside each other, ensure that every option is defined clearly. Adding written overviews can help people differentiate between the two and make an informed choice. </p>
1208 <p>We recommend including the following information in your overview:</p>
1209 <ul>
1210 <li>What this purchase enables on your Apple Watch app</li>
1211 <li>Whether it’s a one-time purchase or recurring subscription</li>
1212 </ul><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/900CF4E2-E9A0-4E9E-9B86-CBED593648D4/2048.jpeg" data-hires="false" alt="Watch app showing in app monthly purchase alongside in depth scroll screen displaying purchase options, restore purchases, sign in, privacy policy, and terms and conditions "></div><p><strong>Restore the past</strong>
1213 Whenever you offer subscription or in-app purchase content, provide a way for people to restore their subscriptions or purchases. The same goes for Apple Watch: Make sure your app presents a button below the option to purchase that can check for previously purchased content and restore it.</p>
1214 <p><strong>Don’t forget the fine print</strong>
1215 While reading your subscription’s terms and conditions on Apple Watch may not sound like the most fun way for someone to spend their time, it’s important that your customers know exactly what they’re getting when they purchase something within your app. Every time you include a purchase screen on Apple Watch, you must include an option to read terms and conditions. </p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/52AD261D-B8AE-4C7E-A06D-45A9C6F9BEE6/2048.jpeg" data-hires="false" alt=""></div><p><strong>Review the App Store guidelines</strong>
1216 There are specific requirements you need to include in your Watch app before you make in-app purchases and subscriptions available to your customers; check the <a href="https://developer.apple.com/app-store/resources/">App Store’s Guidelines and Resources</a> for more information.</p><hr><h3>Resources</h3><p><a href="https://developer.apple.com/documentation/watchkit/creating_independent_watchos_apps">Watch “Creating Independent watchOS apps”</a></p>
1217 <p><a href="https://developer.apple.com/app-store/subscriptions/#subscription-offers">Learn more about auto-renewable subscriptions</a></p>
1218 <p><a href="https://developer.apple.com/in-app-purchase/">Learn more about in-app purchases</a></p></description>
1219 <pubDate>Tue, 28 Jul 2020 08:00:41 PDT</pubDate>
1220 </item>
1221 <item>
1222 <title>Behind the Design: StaffPad</title>
1223 <link>https://developer.apple.com/news/?id=5z97xxqw</link>
1224 <guid>https://developer.apple.com/news/?id=5z97xxqw</guid>
1225 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/A73FE0EF-110E-453F-BF9E-2B5C3F614343/2048.jpeg" data-hires="false" alt="StaffPad"></div><p>Great composers bring forth melody from the silence of their imaginations. Long before the orchestra strikes its first chord, an intermixed whisper of invisible strings, brass and percussion lives within a composer’s mind. Transforming those melodic machinations into sheet music, however, is its own special challenge.</p>
1226 <p>The classical greats relied on the tried-and-true method of writing on sheet paper, letting their creativity flow unabashed onto the page. Once written, however, each part had to be painstakingly copied and reproduced for each musician — and revisions were far from easy.</p>
1227 <p>In contrast, modern digital composition software provides an incredible array of tools for composers and musicians. Despite the many benefits of these apps, however, they can come across as cold and complicated, creating unnecessary barriers between the music in someone’s mind and the notes that end up on a music stand.</p><p>“I was spending more time learning these notation programs... than I was actually writing the music,” composer and designer David William Hearn tells us. This dissonance provided him with the beginnings of a different sort of musical idea: an app that provided the inspirational and inviting structure of pen and paper with the powerful features of a digital notation app.</p>
1228 <p>“[It] started out as quite a selfish endeavor,” Hearn shares with a smile. “The dream app that I always wanted.” He envisioned something that would not only allow him to write music quickly and with ease, interfacing and interacting with other musicians, but also presented the opportunity to record and playback.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/89130EF9-C1B5-4325-A93A-BC0E92D24A5E/2048.jpeg" data-hires="false" alt="StaffPad main canvas"></div><p>With the help of cofounder and collaborator Dr. Matthew Tesch, Hearn’s dream app became <em>StaffPad</em>, an innovative approach to musical notation. Since its 2015 launch, StaffPad has continually evolved to take advantage of the latest technology, including a full rebuild and relaunch for iPad and Apple Pencil in early 2020.</p>
1229 <p>“Musicians and composers generally appreciate power through simplicity,” says Hearn. “They want to focus on one thing only — the music. Every aspect of StaffPad’s design, both invisible and visible, was built with a no-compromise approach to enable that focus.” Subtle design choices create a feeling of unity between the composer’s environment and the interface as they transition into the app. The main screen’s background even changes color based on the weather and time of day to provide a welcoming atmosphere for creativity.</p><blockquote class="article-quote"><p>The paradox of choice is fascinating, but personally I feel being offered a couple of great choices beats having loads of potentially poor ones. You do need bravery in the design to believe the few choices you offer are the right ones.</p><cite>David William Hearn, cofounder of StaffPad</cite></blockquote><p>The composition interface is free-form and inviting. The team specifically decided against the idea of a fixed page layout, knowing that people could use StaffPad on a device in any orientation or zoomed at any size. Instead, the app presents composers with an infinitely scrolling digital canvas of sheet music. Rather than ask the creator to pick specific styles or sizes before writing a new composition, they can just start notating, then share the correct size on export.</p>
1230 <p>“There's certainly a place for having perfect pixel, perfect layout control over every layer,” Hearn says. “But whilst you're in a creative flow, you really don't want to be thinking about page breaks or line breaks.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/261BBB10-634B-43C6-82B0-AAEC514ECAAD/2048.jpeg" data-hires="false" alt="StaffPad export tools "></div><p>While StaffPad is quite powerful in the options it provides composers, the app intentionally uses adaptive toolsets to help declutter its interface and guide composers to the right tool at the right moment. “We designed the most common things you do to be the most natural,” Hearn says. If a composer is writing for piano, for example, the app won’t display tools designed for percussion instruments.</p>
1231 <p>That includes notational writing itself. StaffPad requires Apple Pencil — its precision is instrumental to interacting within the app. While the team considered alternative tools, they ultimately went with the methods that mapped accurately to how someone might write on paper. Pencil gives the composer differentiation, whereas touch is a complement to the overall process. “Touch to move. Pencil to draw. We make it very nuanced, but the dual concept is the key,” Hearn says.</p>
1232 <p>That exploration also helped identify one of StaffPad’s defining features: toggling the erase tool through drawing pressure. They knew it would break the creative flow to add an extra button to toggle the erase tool. Instead, they relied upon an otherwise unused feature in the app — Apple Pencil’s pressure sensitivity, which isn’t needed for writing notation — and designed an erase toggle when pushing firmly on the Pencil. “I knew it had to be light enough that it didn’t feel dangerous, but also strong enough that it didn’t trigger accidentally while writing,” Hearn says. “We kept trying until it felt right."</p><p>Another key feature of the app is its text recognition, which translates handwritten strokes or shapes into digital notes, rests, accidentals, articulations, and dynamics. "It's actually consulting its own sort of music-theory brain,” Hearn says. Even with a scattering of scrawled notes, StaffPad is able to draw upon Core ML frameworks and models to decipher and craft digital orchestrations.</p>
1233 <p>Despite the app’s ‘selfish’ origins, StaffPad has found support from people across the musical world. “One of my favorite things about the app is that it's fostered this sense of kind of community ownership,” Hearn says. “People are really quite emotionally attached to it in a lot of ways.”</p>
1234 <p>Hearn and team receive regular suggestions, feedback, and stories from their community. His favorite emails are those from teachers and students: “That raw inspiration that comes from the education sector is really amazing.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/13E73672-6715-4ECA-81B0-8462A5D18CDE/2048.jpeg" data-hires="false" alt="woman writing notation on StaffPad "></div><p>StaffPad continues to explore new ways to support its audience, including its companion app, StaffPad Reader. The app allows musicians to digitally view and play scores from StaffPad, and even automatically turns pages in unison as they rehearse or perform. If the composer edits or transposes a score on StaffPad, the app also receives changes over the air, reformatting the parts in realtime.</p>
1235 <p>Hearn and Tesch have even begun the process of introducing another natural input interface into the app: voice. “I believe voice will become a primary input method for most apps in the near future,” says Hearn. “Voice provides a vector into a nearly unlimited command set — and one that we already know how to use.”</p>
1236 <p>Winning an Apple Design Award is just one note on the team’s musical journey. “There’s always more to do,” Hearn says. But over the last few years, he’s found joy in helping craft both the app and working with the team behind it. “A composer is a solitary animal,” he notes. An app-building team, less so. “[My] main learning has been how best to work to create a cohesive design and then explain that to a team of people.”</p><hr><p><a href="https://www.staffpad.net/" class="icon icon-after icon-chevronright">Learn more about StaffPad</a></p><p><a href="https://apps.apple.com/story/id1521731004" class="icon icon-after icon-chevronright">Learn more about StaffPad on the App Store</a></p><p><a href="https://apps.apple.com/us/app/staffpad/id1442074103" class="icon icon-after icon-chevronright">Download StaffPad on the App Store</a></p></description>
1237 <pubDate>Fri, 24 Jul 2020 06:00:33 PDT</pubDate>
1238 </item>
1239 <item>
1240 <title>Behind the Design: Sky: Children of the Light</title>
1241 <link>https://developer.apple.com/news/?id=zm47it7t</link>
1242 <guid>https://developer.apple.com/news/?id=zm47it7t</guid>
1243 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/1D9F24DC-2226-40B2-AD63-17A62D51BA2E/2048.jpeg" data-hires="false" alt="Sky: Children of the Light concept art"></div><p>The greatest pieces of art resonate within your mind and capture your heart. They pull you into lush, beautiful narratives, and keep you dreaming about their stories long after you walk away. And they can take many forms. “Many people cry for a movie or novel,” Jenova Chen tells us. “The first entertainment that made me cry was a game.”</p>
1244 <p>A former film student, Chen never planned on a career in game development — he wanted to tell captivating stories and touch people’s lives. But while in school, he soon found himself gravitating toward interactive media. Together with co-founder Kellee Santiago, Chen created thatgamecompany to enhance human connection by expanding the range of emotional experiences possible in video games.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/C270D324-D052-4272-BD71-6BAE022B2848/2048.jpeg" data-hires="false" alt="The world of Sky: Children of the Light."><p class="typography-caption">The world of Sky: Children of the Light.</p></div><p>“For the first 30 to 40 years, games were more designed for the core audience, the enthusiasts who embrace the new things,” Chen says. "But we are really now entering a new era… Everybody plays games.”</p>
1245 <p>The studio’s first six years in operation resulted in Flow, Flower, and Journey, three award-winning games for Sony’s Playstation console. Their fourth game, <em>Sky: Children of the Light</em>, is the first created exclusively for iPhone and iPad. Though the artwork, controls, and story are new, the game’s spirit remains aligned with its predecessors: Make interactive art, designed for everyone.</p><blockquote class="article-quote"><p>We want to be the ultimate advocate for the human who plays our games.</p><cite>Jenova Chen, creative director of Sky: Children of the Light</cite></blockquote><p>“At its core, <em>Sky</em> is a game about compassion and generosity,” Chen, the game’s creative director, says. “It’s about connecting people and nudging them to do good for each other.”</p><p>In <em>Sky</em>, players begin as a child of light, seeking fallen stars — the ancestral spirits of the realms. Players fly across cloudy dreamlike spaces, solving puzzles cooperatively and socializing within an enchanting world. While solo play is possible, <em>Sky</em> shines when fellow players work together. “It tries to evoke the bright side of humanity over the dark or the gray in an online game,” Chen says.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/C1891445-B4AE-4EC0-8C3E-EA0DCF695789/2048.jpeg" data-hires="false" alt="The multiplayer game celebrates collaboration and connection over competition."><p class="typography-caption">The multiplayer game celebrates collaboration and connection over competition.</p></div><p>Early on, it was clear that <em>Sky</em> would be an ambitious title for Chen and the creative team. This would be their first game for a mobile device, the first that relied on touch instead of console controllers, and their first attempt at an online multiplayer experience — one that celebrated connection over conflict. The team ultimately worked for seven years before bringing <em>Sky</em> to life, with more than 70 people contributing to the game over its creative development.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/AD03EB11-0201-4551-B158-63A8136877AD/2048.jpeg" data-hires="false" alt="Meeting a fallen star."></div><p>Chen was drawn to mobile gaming for <em>Sky</em> in part because of the approachability of iPhone and iPad. “When we design games, we should really think about accessibility and inclusion, to allow the game to be enjoyed by everyone,” he says. Consoles are expensive, and families generally only have a single piece of hardware and a few controllers within their household. In contrast, almost everyone owns a mobile device — it was the perfect platform for a multiplayer game that was open to all.</p>
1246 <p>The transition from console to iPhone and iPad was a challenge for the entire studio. When the team began working on <em>Sky</em> in 2012, they were limited by the mobile hardware and screen sizes of that era — a far cry from the powerful Playstation infrastructure supporting their previous titles.</p>
1247 <p>“Today, the iPhone is actually more powerful than the PlayStation that we developed for in the past,” Chen says, and <em>Sky</em> runs beautifully on both it and iPad. But to get there, the team had to iterate over multiple years of hardware and software updates. They were constantly refining the game’s look and feel, including developing a custom Metal engine to render <em>Sky</em>’s ethereal scenes, all while making sure the game would perform well and preserve battery life on device.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/605C3AD5-669E-441B-8770-61B2BF06E898/2048.jpeg" data-hires="false" alt="Early concept art."></div><p>While engineers worked on the technical challenges, the game’s designers got to work creating the right control mechanisms and interface. “There are many, many barriers and design principles [on mobile] that are quite alien to console developers,” Chen says. </p>
1248 <p>Chief of these was the touch screen: Players needed to traverse a three-dimensional space without physical buttons, triggers, or joysticks, and without on-screen controls blocking the game’s graphics or interface. “You're trying to find the right combination of design and feedback that is actually better than a real controller,” Chen explains.</p>
1249 <p>A player’s past gaming history was also an important factor in designing the controls. While console gaming often requires players to interact with a physical controller using both hands, that wasn’t the case for casual gamers. “Players without a console controller experience would never put two hands on the screen at the same time,” Chen says.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/A3D23329-F522-42D4-B51E-91172D919993/2048.jpeg" data-hires="false" alt="A child of the light in flight."></div><p>After several years of experimentation — including, at one point, a fully-functional flight simulator — the team landed on a simple set of familiar controls designed to appeal to everyone. For extra guidance, Chen and team even provided subtle interface rings in each corner, which expand and contract to indicate range and speed control.</p>
1250 <p>That wasn’t the last of the controller changes, however. After Sky’s initial release and feedback from players, the team also added a two-hand mode to the game for those who wanted more of a console-like feel. “This is the first time I’ve made a game where the control scheme was not finite,” Chen says. But he also acknowledges the beauty in creating a game on a living platform. “We are actually making changes because the habit of how people use their phone is changing.”</p>
1251 <p>It’s this relationship between player and creator that Chen finds fascinating about games. As with any artistic medium, the creator has the power to help amplify feelings and guide people through a story — its rises and falls, surges and sudden stops. “For design and for entertainment, it is all about that change of acceleration,” Chen says. “That pulse is what touches us emotionally.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/365FDB19-7AC4-4AE6-882F-412C0D31A346/2048.jpeg" data-hires="false" alt="Early storyboards from Sky show a being of light ascending"></div><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/B08C0BF1-CBAA-4707-82BD-FCD42CAD82C4/2048.jpeg" data-hires="false" alt="Early storyboards and sketches."></div><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/01BBBC8C-A14A-4624-B874-99F74C49109F/2048.jpeg" data-hires="false" alt="Children of the light stand, hand in hand, amidst an ethereal landscape."></div><p>The interactivity of a game, however, creates a unique challenge for designers not to weigh too heavily upon the frame — to guide, but not to restrict. “The best design is a nudge, rather than a leash,” he says. “We want to make whomever is experiencing the [game] feel they are in control... We are not here to distract you. We are not here to force and bully you to do anything. We want to let you to make that [step]... and 100 percent own that experience.”</p><blockquote class="article-quote"><p>The designer is a powerful influence of what happens between the player who touches your interface and interacts with your game. With very small changes in the design, you can change how this person behaves, how they treat each other in your game. It's your responsibility... how are these players going to interact with your app, with your game, on a daily basis?</p><cite>Jenova Chen, creative director of Sky: Children of the Light</cite></blockquote><p>It’s this balance and fervent commitment to storytelling and inclusivity that makes <em>Sky</em> a joy for all to play — and a 2020 Apple Design Award winner. “Hearing from people that they appreciate the work that we've done is the best reward, really,” says Chen. “Ultimately, we are serving others.”</p><hr><p><a href="https://thatgamecompany.com" class="icon icon-after icon-chevronright">Learn more about thatgamecompany</a></p><p><a href="https://thatgamecompany.com/sky/" class="icon icon-after icon-chevronright">Learn more about Sky: Children of the Light</a></p><p><a href="https://apps.apple.com/us/app/sky-children-of-the-light/id1462117269" class="icon icon-after icon-chevronright">Download Sky: Children of the Light</a></p><p><a href="https://apps.apple.com/story/id1521580255" class="icon icon-after icon-chevronright">Read more about Sky: Children of the Light on the App Store</a></p></description>
1252 <pubDate>Fri, 17 Jul 2020 07:55:56 PDT</pubDate>
1253 </item>
1254 <item>
1255 <title>Updates to coding terminology</title>
1256 <link>https://developer.apple.com/news/?id=1o9zxsxl</link>
1257 <guid>https://developer.apple.com/news/?id=1o9zxsxl</guid>
1258 <description><p>At Apple, we’re working to remove and replace non-inclusive language across our developer ecosystem, including within Xcode, platform APIs, documentation, and open source projects. These changes began on June 22 with the beta software and developer documentation released at WWDC20 moving to terms such as <em>allow list</em> and <em>deny list</em>, and <em>main</em> as the default SCM branch in Xcode 12. An updated <a href="https://help.apple.com/applestyleguide/#/">Apple Style Guide</a> reflects these and other changes.</p>
1259 <p>Developer APIs with exclusionary terms will be deprecated as we introduce replacements across internal codebases, public APIs, and open source projects, such as WebKit and Swift. We encourage you to closely monitor deprecation warnings across your codebases and to proactively move to the latest APIs available in the platform SDKs.</p></description>
1260 <pubDate>Thu, 16 Jul 2020 19:01:20 PDT</pubDate>
1261 </item>
1262 <item>
1263 <title>Behind the Design: Where Cards Fall</title>
1264 <link>https://developer.apple.com/news/?id=fy6rx06s</link>
1265 <guid>https://developer.apple.com/news/?id=fy6rx06s</guid>
1266 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/00C4DCC1-0087-4611-8699-A2E5C744FDEE/2048.jpeg" data-hires="false" alt="The protagonist stands on a cement block amidst the rose-colored forest of where cards fall, with cards at their feet."></div><p>Staking your future on a house of cards may not seem like the best idea for a career. And yet, Sam Rosenthal dealt himself a winning hand with his studio’s game, <em>Where Cards Fall</em> — one more than nine years in the making. “<em>Where Cards Fall</em> was a labor of love for the better part of my life,” he says. Originating as a student project while Rosenthal attended USC, the game evolved over years of late-night coffee shop sessions into a 2020 Apple Design Award winner.</p>
1267 <p>“We wouldn’t let [<em>Where Cards Fall</em>] go,” he says. “We had confidence that we were making something special and different and interesting.” Despite early rejections from publishers, Rosenthal and his collaborators cut through a deck stacked against them to make the kind of game they wanted to see more of in the world.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/B99BAD58-265F-45C8-B311-BAA7BA640BD1/2048.jpeg" data-hires="false" alt="The world of Where Cards Fall."></div><p>Growing up, Rosenthal had an early passion for games and game design. But he found little he could share with his friends or family, who weren’t as interested in the medium. “There weren’t many experiences that they could really relate to,” he says. So Rosenthal set out to create some. In college, he dreamed up the idea for <em>Where Cards Fall</em> — a story about growing up and “the messiness of life” — while listening to Radiohead’s “House of Cards.”</p>
1268 <p>The game mechanics are intentionally simple, using common system gestures on each platform to explore the story and its card-based puzzles. It’s both a core part of <em>Where Cards Fall</em> and the founding principle of Rosenthal’s studio The Game Band: Make beautiful games that resonate with the world.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/488DF477-DCE8-4FA2-99A8-93E195FCC21A/2048.jpeg" data-hires="false" alt="Where cards fall protagonist in black and white forest"></div><p>“We're creating these little boxes of exploration for people,” Rosenthal says. “Little places for them to discover something that might delight them, or might teach them something about themselves.” In <em>Where Cards Fall</em>, people explore the memories of the protagonist, an aspiring architect. Those memories are wordlessly described through sound, music, and exquisitely crafted 3D spaces, along with the game’s eponymous cards — which provide glimpses into the past as you build them into structures, doorways, reconstructed spaces, and bridges.</p>
1269 <p>The game's architectural motif, in many ways, illustrates Rosenthal’s entire philosophy around game design, which he describes an invisible art. “When you go into a beautifully designed building, the way that you navigate through the space is not an accident,” he says. Game design, too, provides the player with that structure — giving them the framework to experience feelings, ideas, and interactions within a living story.</p><blockquote class="article-quote"><p>Often the invisible arts are the ones that affect us the most, or they just change our perception.</p><cite>Sam Rosenthal, creative director of Where Cards Fall</cite></blockquote><p>When crafting the mechanics and design of <em>Where Cards Fall</em>, Rosenthal and his team took inspiration from both gaming and the larger art world. Games like <em>Portal</em>, <em>The Witness</em>, and the <em>Zelda</em> series helped the studio as they explored onboarding, pacing, and the game’s puzzle structure, while <em>Inside</em> and <em>Journey</em> brought the team new ideas on crafting an “unforgettable atmosphere.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/1B0A1A8A-9133-475D-A4F6-95573FB40213/2048.jpeg" data-hires="false" alt="Working on where cards fall"></div><p>Art director Joshua Harvey designed the game’s moody, moving artwork, which is partially influenced by the Bauhaus movement — a celebration of the mathematical underpinning in shapes and lines. The art is designed to work in tandem with the game’s interface, blending everything together to create the perfect atmosphere while still providing helpful guidance for the player. </p>
1270 <p>“We often think of UI as this separate layer on top of the game’s art style, but a successful art style is simultaneously beautiful and functional,” Rosenthal says. In <em>Where Cards Fall</em>, the grass nibs in the forest and the tiles in the city are specifically arranged to help the player see the grid for planning their structures, while the brickwork on the sides of certain platforms provides subtle cues to help players discern heights.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/DF5B30A4-5CEA-4B49-AC27-99C7C9E8B48E/2048.jpeg" data-hires="false" alt="Three icon explorations of where cards fall in black and white, game color, and adaptive color"></div><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/EA7C02A6-E35C-46E3-972C-770D3B4DA0EB/2048.jpeg" data-hires="false" alt="The game’s icon further stylizes the protagonist of Where Cards Fall during the story’s present-day winter forest. “It’s not somebody that is lost in the past, but somebody that maybe has learned from what happened, has reflected, and is looking towards what could be,” says Rosenthal."><p class="typography-caption">The game’s icon further stylizes the protagonist of Where Cards Fall during the story’s present-day winter forest. “It’s not somebody that is lost in the past, but somebody that maybe has learned from what happened, has reflected, and is looking towards what could be,” says Rosenthal.</p></div><p>The game’s hand-drawn aesthetic also ties back into the main character's interest in art and architecture. “Drawing is [their] way of processing the world and imagining what it could be,” Rosenthal says. “It gives the player a stronger connection to the protagonist and the passion that drives them.”</p>
1271 <p>Despite the many influences the team drew upon to craft *Where Cards Fall, the game has its own unique style and tone, in part due to the work they put in to stay aligned across game mechanics, sound, music, and art design. “We found it crucial to create a set of internal rules so that we could stay cohesive,” Rosenthal says. </p>
1272 <p>The cards and their puzzles were a big part of creating these guidelines. “I originally thought big, sprawling puzzles would be intriguing, but quickly realized that smaller ones created the most interesting challenges,” he explains. “Once I had an overarching style, I began to develop smaller rules: A pile of cards should be used in at least two different places, otherwise it feels extraneous. And players should never have to restart a puzzle, since that discourages experimentation.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/159ECC9C-DEF4-45C6-AB8A-02C3BEDA6C16/2048.jpeg" data-hires="false" alt="Early sketch of Where Cards Fall showing block placement and railings"></div><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/F745B88C-6B1C-4930-BE4E-6D99180E9700/2048.jpeg" data-hires="false" alt="Early sketch of where cards fall showing card items in 3D environment"></div><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/DA385E51-2750-41A5-A92D-B629648396E6/2048.jpeg" data-hires="false" alt="Early sketch of Where Cards Fall showing protagonist drawing a world into existence on graph paper"></div><p>The card interactions themselves went through multiple revisions during the game’s development. The team used a physical deck to experiment with the physics and interaction of card-based structures, exploring both single-card draws and a multi-card spread — the latter of which became the game’s core mechanic. (It even had precedent within iOS: At the time, the Photos app allowed people to skeuomorphically splay their images from a stack with a pinch and spread gesture.)</p>
1273 <p>“Players tend to interact with the platforms in the ways that they’re used to, especially if they don’t play many games,” Rosenthal says. They followed that same philosophy when moving <em>Where Cards Fall</em> over to Mac and Apple TV, identifying platform-specific gestures that would be easy for a player to adopt. </p>
1274 <p>One downside of platform-specific adaptation: the player needs to relearn how to interact with the game. Fortunately, Rosenthal and his team had thought through an excellent tutorial and gameplay system. They created a hand-drawn overlay to animate paths, controls, and future actions, and used the main character to physically communicate possible destructive interactions — a shake of the head when attempting to tear down a card structure, for instance.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/CFDAD680-1BED-488C-B375-1099CC6CAEB0/2048.jpeg" data-hires="false" alt="A cityscape built out of cards"></div><p>The music and the soundscape provide their own cues as the player works their way through the game. The cards have distinctive, fluttery sounds as they’re built and collapsed — audio director Kristi Knupp purchased stacks of card stock to find the perfect tone — while the background blends the naturalistic and physical noises of the forest and cityscape environments with Torin Borrowdale’s score. “It’s very easy to manipulate people’s emotions with music,” Rosenthal says. “But we wanted the experience to be the main thing that was setting the emotional weight.”</p>
1275 <p>Instead, <em>Where Cards Fall</em> tells its story through the player’s journey. It eschews audible dialogue or on-screen text for similar reasons. “There's a lot of empty space for reflection,” Rosenthal says — a core theme of the game.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/F08E0F6E-CD5A-4A06-BD64-673E0DAD7C00/2048.jpeg" data-hires="false" alt="Rosenthal sits with his collaborators at The Game Band"></div><p>Now, Rosenthal, The Game Band, and their publishing partner Snowman have the opportunity to reflect on winning an Apple Design Award. “It [was] beyond my wildest expectations,” he says. “There are so many different hands that touched it, and every one of them put their personal stamp on it.”</p><p>His advice to fellow creators? Find your collaborators and keep going — even when it feels impossible.</p><blockquote class="article-quote"><p>We're all working so hard just to make beautiful things exist. </p>
1276 <p>And it's a really, really hard thing to do; to really believe in something, especially when it's something that's not obvious. Right? A lot of times when you're working on something, you know it needs to be out there. You know what its value is. But you've got to convince a lot of other people that it's going to be valuable, especially when it's in its early stages and is not beautiful yet, but it will be.</p><cite>Sam Rosenthal, creative director of Where Cards Fall</cite></blockquote><p><a href="http://wherecardsfall.com/" class="icon icon-after icon-chevronright">Where Cards Fall</a></p><p><a href="https://thegameband.com" class="icon icon-after icon-chevronright">The Game Band</a></p><p><a href="http://builtbysnowman.com" class="icon icon-after icon-chevronright">Snowman</a></p><p><a href="https://apps.apple.com/us/app/where-cards-fall/id1466331487" class="icon icon-after icon-chevronright">Download Where Cards Fall on Apple Arcade</a></p><p><a href="https://apps.apple.com/story/id1521579599" class="icon icon-after icon-chevronright">Read more about Where Cards Fall on the App Store</a></p></description>
1277 <pubDate>Fri, 10 Jul 2020 06:30:18 PDT</pubDate>
1278 </item>
1279 <item>
1280 <title>How to review your app’s crash logs</title>
1281 <link>https://developer.apple.com/news/?id=nra79npr</link>
1282 <guid>https://developer.apple.com/news/?id=nra79npr</guid>
1283 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/9EE6FB44-CE4D-4197-B833-D85598A153CA/2048.jpeg" data-hires="false" alt="Crash icon"></div><p>While we’d all prefer it if our apps never crashed, the logs captured from those crashes can help you troubleshoot bugs and get your app up and running again. If and when something goes awry, your app automatically gathers crash reports from people who have opted in to send you anonymized crash data. And you can view that data using the Xcode Organizer on your Mac. </p>
1284 <p><em>Note: While there are several third-party analytics tools that can also provide information on crashing threads when incorporated into your app, you may not always be able to see the full backtrace. Additionally, the log you receive may not be in a format you can send to Apple when filing feedback.</em></p>
1285 <p>Here’s how you can access full crash reports directly from Xcode and your Mac’s Finder. </p><h3>Find your app’s crash logs</h3><p>There are two ways to view your app’s crash logs. The first provides you with at-a-glance information — like the percentage of people running into crashes on an earlier version of iOS — while the other offers a more detailed look at individual crash reports.</p>
1286 <ol>
1287 <li>Open <strong>Xcode</strong>.</li>
1288 <li>Select <strong>Window</strong> from the menu bar.</li>
1289 <li>Go to <strong>Organizer &gt; Crashes</strong>.</li>
1290 <li>Choose <strong>App Store</strong> from the drop down menu.</li>
1291 </ol><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/10C861E6-34C3-45F8-A41B-55E477A530D0/2048.jpeg" data-hires="false" alt="The Xcode Organizer displays crashes reported by your app, organized by the issue and frequency. You’ll only be able to see information from people who have opted to share anonymized crash reports."><p class="typography-caption">The Xcode Organizer displays crashes reported by your app, organized by the issue and frequency. You’ll only be able to see information from people who have opted to share anonymized crash reports.</p></div><p>Here, you can see crash reports from your app’s builds, including TestFlight betas and versions you’ve released to the App Store. Browse all of your crashes at a glance, and check out statistics to see how crashes break down across OS versions and different devices. </p>
1292 <p>And if you want to start troubleshooting on the spot, you can even open a crash report and jump right to the affected line in Xcode by simply choosing the <strong>Open In Project</strong> option.</p><h3>Review your app’s crash logs</h3><p>To check out individual crash logs in detail, you’ll need to engage the power of your Control key.</p>
1293 <ol>
1294 <li><strong>Control-click</strong> on the crash in question.</li>
1295 <li>Choose <strong>Show in Finder</strong>.</li>
1296 <li>In the Finder window, <strong>control-click</strong> the highlighted .xccrashpoint file.</li>
1297 <li>Choose <strong>Show Package Contents</strong>.</li>
1298 <li>In the folder that displays, go to <strong>DistributionInfos &gt; all &gt; Logs</strong>.</li>
1299 </ol>
1300 <p>Inside the Logs folder, you’ll find each individual crash report, which you can browse and troubleshoot accordingly. You can also use these crash reports when reporting feedback to Apple.</p><h3>Resources</h3><p><a href="https://developer.apple.com/documentation/xcode/diagnosing_issues_using_crash_reports_and_device_logs">Learn more about diagnosing issues using crash reports and device logs</a></p>
1301 <p><a href="https://developer.apple.com/bug-reporting/">Learn more about reporting bugs</a></p></description>
1302 <pubDate>Thu, 09 Jul 2020 12:11:06 PDT</pubDate>
1303 </item>
1304 <item>
1305 <title>New App Store Connect API capabilities now available</title>
1306 <link>https://developer.apple.com/news/?id=88xn6mcd</link>
1307 <guid>https://developer.apple.com/news/?id=88xn6mcd</guid>
1308 <description><p>The App Store Connect API now offers greater flexibility to automate and customize workflows for your app. With these new capabilities, you can:</p>
1309 <ul>
1310 <li>
1311 <p>Build and maintain your App Store product page by uploading and managing assets like screenshots, app previews, app description, and more.</p>
1312 </li>
1313 <li>
1314 <p>Create new versions of your app, set up pre-orders, manage phased releases for version updates, and submit your app to App Review.</p>
1315 </li>
1316 <li>
1317 <p>Monitor app performance indicators by downloading power and performance metrics and diagnostics logs.</p>
1318 </li>
1319 <li>
1320 <p>Manage additional resources associated with your developer account, such as unified software signing certificates, multiplatform App IDs, and capabilities.</p>
1321 </li>
1322 </ul>
1323 <p><a href="https://developer.apple.com/app-store-connect/api/">Learn more about the App Store <span class="icon icon-after icon-chevronright nowrap">Connect API</span></a></p></description>
1324 <pubDate>Mon, 06 Jul 2020 17:17:00 PDT</pubDate>
1325 </item>
1326 <item>
1327 <title>How to start designing assets in Display P3</title>
1328 <link>https://developer.apple.com/news/?id=5cda5ipr</link>
1329 <guid>https://developer.apple.com/news/?id=5cda5ipr</guid>
1330 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/FCDAF5D6-98D1-48A8-A6D9-883655C51973/2048.jpeg" data-hires="false" alt=""></div><p>An eye-catching icon or splash of color can focus attention and help people locate the right information inside your app. Consider designing those assets in the Display P3 color space: They’ll look richer and more vibrant on any device with a wide color gamut display.</p>
1331 <p>You can find wide color gamut Retina displays on most Macs, as well as iPhone, iPad, and Apple Watch. They bring more true-to-life colors and deep hues to the screen, not only making for excellent image and video viewing but also heightening people’s everyday app experience.</p>
1332 <p>Use Display P3 assets in your app to amplify important elements of your interface: the colors of a VU meter in an audio app, for instance, or the redline in a rev counter inside your racing game. </p><p>If you display photography or video in your app, you should consider using Display P3 to help images stay true to the camera’s original capture. Shopping apps can help people choose the right item by showcasing the true color of a certain dress or pair of pants. You can also use Display P3 for your app icon to highlight colors and smooth out gradients.</p>
1333 <p>Interested in exploring Display P3 for your assets? To get started, you’ll need to get your tools ready to work in that color space. We’ll show you how to design in Display P3 using two popular Mac apps: Adobe Photoshop and Sketch.</p><hr><p><strong><em>Note: Does your display support Display P3?</em></strong></p>
1334 <p><em>Your hardware tools are just as important as your software tools: Ensure that the device you use to create assets supports the Display P3 color space so that you can preview your designs accurately. That includes all iMacs with Retina displays, 2016 and later MacBook Pro, LG’s UltraFine 4K or 5K Display, and the Pro Display XDR.</em></p><hr><h3>Set up a new Display P3 canvas</h3><p>Here’s how to configure your canvas to support Display P3.</p>
1335 <p><strong>Create a new Display P3 canvas in Photoshop</strong></p>
1336 <ol>
1337 <li>Open Adobe Photoshop on your Mac.</li>
1338 <li>Click on the <strong>Create new</strong> button from the main interface. (You can also create new documents at any time by going to the toolbar and selecting <strong>File &gt; New</strong>.)</li>
1339 <li>Choose the dimensions and any other information you wish to customize for your canvas.</li>
1340 <li>Under Color Mode, change your color depth from 8 to <strong>16 bit</strong>.</li>
1341 <li>Below Color Profile, select <strong>Display P3</strong>. </li>
1342 <li>Select <strong>Create</strong> to begin designing in Display P3. </li>
1343 </ol><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/782CC77F-A3B9-455F-9142-51AE9404D631/2048.jpeg" data-hires="false" alt="You can avoid manually creating a canvas for every new asset by saving your settings as a preset. Name your preset at the top of the screen, press the Save button, then press Save Preset."><p class="typography-caption">You can avoid manually creating a canvas for every new asset by saving your settings as a preset. Name your preset at the top of the screen, press the Save button, then press Save Preset.</p></div><p><strong>Create a new Display P3 canvas in Sketch</strong></p>
1344 <ol>
1345 <li>Open Sketch on your Mac.</li>
1346 <li>Create a new file.</li>
1347 <li>Go to <strong>File &gt; Change Color Profile</strong> (or use the keyboard command Shift-Command-K).</li>
1348 <li>Select <strong>Display P3</strong> as your Color Profile.</li>
1349 <li>Choose <strong>Assign</strong>.</li>
1350 </ol><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/C1434B6C-0AAC-435F-8797-E076FF7A0654/2048.jpeg" data-hires="false" alt="Use Sketch’s Color Profile settings to use Display P3 on your canvas."><p class="typography-caption">Use Sketch’s Color Profile settings to use Display P3 on your canvas.</p></div><p><strong>Convert an existing sRGB image into P3</strong></p>
1351 <p>If you receive image assets from someone else, ensure those assets are converted to Display P3 directly from the RAW file, and not from sRGB, as some color information will be lost in the conversion.</p>
1352 <p>If you must import an existing image in Photoshop, use <strong>Convert to Profile</strong> to preserve your design as much as possible. If you use Assign To Profile, that will take your existing colors and stretch them into the new color space, changing your design along the way.</p>
1353 <p>In Sketch, after you’ve received your file, go to <strong>File &gt; Change Color Profile</strong> to edit your Color Profile. Then select <strong>Convert</strong>.</p><h3>Export your work in Display P3</h3><p>Once you’re done creating your asset, you can preserve the Display P3 color space in any file you export.</p>
1354 <p><strong>How to export your work in Photoshop</strong></p>
1355 <p><em>Note: While there are multiple ways of creating assets from the work you do in Photoshop, like Generator or Export As, only using Save As will maintain your Display P3 color space and 16-bit color depth settings.</em></p>
1356 <ol>
1357 <li>Navigate to the toolbar and select <strong>File &gt; Save As…</strong> (or type Shift-Command-S).</li>
1358 <li>Choose where you’d like to save your asset.</li>
1359 <li>If needed, name your asset.</li>
1360 <li>Under Format, select PNG.</li>
1361 <li>Below Color, make sure the <strong>Embed Color Profile: Display P3</strong> setting is checked.</li>
1362 <li>Save your file.</li>
1363 </ol><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/D4A92AE6-1A3E-4347-9370-55F5330ECCDE/2048.jpeg" data-hires="false" alt="Export your P3 assets in Photoshop using the Embed Color Profile option in the Save As screen."><p class="typography-caption">Export your P3 assets in Photoshop using the Embed Color Profile option in the Save As screen.</p></div><p><strong>How to export your work in Sketch</strong></p>
1364 <p>Sketch preserves your color profile upon export, allowing you to save your P3 work in the same manner as other assets. </p>
1365 <ol>
1366 <li>In Sketch, go to the <strong>File</strong> menu.</li>
1367 <li>Select the export option you need: <strong>Export</strong> or <strong>Export Current Selection</strong>.</li>
1368 </ol><hr><h3>Resources</h3><p><a href="https://developer.apple.com/videos/play/wwdc2017/821/">Watch “Get started with Display P3” &gt;</a></p>
1369 <p><a href="https://developer.apple.com/videos/play/wwdc2018/227">Watch “Optimizing app assets” &gt;</a></p>
1370 <p><a href="https://developer.apple.com/videos/play/wwdc2018/219">Watch “Image and Graphic Best Practices” &gt;</a></p>
1371 <p><a href="https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/color/">Learn more about color management &gt;</a></p></description>
1372 <pubDate>Thu, 02 Jul 2020 09:45:42 PDT</pubDate>
1373 </item>
1374 <item>
1375 <title>Announcing the 2020 Apple Design Awards</title>
1376 <link>https://developer.apple.com/news/?id=de1ebrx3</link>
1377 <guid>https://developer.apple.com/news/?id=de1ebrx3</guid>
1378 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/2570602C-9E0F-4304-82F2-1E48A40B8D9E/2048.jpeg" data-hires="false" alt="Apple Design Award sticker"></div><p>The Apple Design Awards celebrate innovation, ingenuity, design excellence, and outstanding technical achievement. A WWDC tradition, the ADAs highlight those who take thoughtful and creative approaches to their apps and games, giving people new ways to work, play, or imagine things that were never before possible.</p>
1379 <p>“We’ve been awarding great design for more than two decades now, and each year’s winners set new standards for others to emulate,” said John Geleynse, Senior Director of Evangelism and longtime host of the Apple Design Awards. </p>
1380 <p>This year’s winners are no different: Their apps are beautiful, intuitive, captivating and delightful. They spring from a deep understanding of and empathy for the people they’re intended to serve. They are unique, exhaustively refined, and crafted with care and attention to detail.</p>
1381 <section class="grid activity">
1382 <section class="row">
1383 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1384 <a href="https://developer.apple.com/wwdc20/10690" class="activity-image-link">
1385 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3884/3884_wide_250x141_2x.jpg" data-hires="false" alt="">
1386 </a>
1387 </section>
1388 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1389 <ul class="activity-tags">
1390 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1391 </ul>
1392 <a href="https://developer.apple.com/wwdc20/10690">
1393 <h4 class="no-margin-bottom activity-title">2020 Apple Design Awards</h4>
1394 </a>
1395
1396 <p class="activity-description">The Apple Design Awards recognize excellence in design and innovation for apps and games across all of Apple’s platforms. Meet the 2020 winners.</p>
1397 </section>
1398 </section>
1399 </section>
1400 <section class="grid activity">
1401 <section class="row">
1402 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1403 <a href="https://developer.apple.com/wwdc20/20022" class="activity-image-link">
1404 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/4610/4610_wide_250x141_2x.jpg" data-hires="false" alt="">
1405 </a>
1406 </section>
1407 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1408 <ul class="activity-tags">
1409 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1410 </ul>
1411 <a href="https://developer.apple.com/wwdc20/20022">
1412 <h4 class="no-margin-bottom activity-title">The winners of the 2020 Apple Design Awards</h4>
1413 </a>
1414
1415 <p class="activity-description">Join us as we surprise the 2020 winners of the Apple Design Awards. The Apple Design Awards recognize excellence in design and innovation for apps and games across all of Apple’s platforms.</p>
1416 </section>
1417 </section>
1418 </section><p>“Winning apps require a lot of work,” said Geleynse, “And we want to honor the effort, dedication, creativity, and new ideas that lead to innovative solutions like these.” </p>
1419 <p>This year, the honor continues beyond an Apple Design Award and FaceTime celebration: Starting this Friday and each week thereafter, the Developer app will feature exclusive interviews with each winner about their creative process and how they brought their bold and distinctive ideas to life. </p>
1420 <p>Take a quick look at this year’s Apple Design Award winners, along with a few choice highlights from our upcoming interviews.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/3C9D1511-7FD1-4115-BB22-E884F9D7D52B/2048.jpeg" data-hires="false" alt="Darkroom on iPad Pro"></div><h3>Majd Taby, Darkroom</h3><p>"We've tried to abstract away all the complexity of photo editing — no import, no export, hiding away the complexity unless you ask for it... the app is much more powerful and complex than the design… that's just part of the ongoing design challenge of trying to make something that's usable and powerful at the same time."</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/0923DBD6-4FD8-42FC-9F22-4EE6B58656FB/2048.jpeg" data-hires="false" alt="Loom animation on iPad with pencils surrounding it"></div><h3>Eran Hilleli, Looom</h3><p>“The design thought of Looom is the flow first — experience first... Trying to make drawn animation exist in some tool that was almost like a Gameboy... something you can kick back and relax, which is not something that, usually, animation is about.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/6B303CFE-A9A5-418F-B5C9-C85922E28BA7/2048.jpeg" data-hires="false" alt="3D modeled bike coming out of Shapr3D on iPad"></div><h3>István Csanády, Shapr3D</h3><p>“I think that great interaction design is... always a lot of blood, sweat, and tears... There are no shortcuts because this is something that you can't really figure out. You just have to observe how your users actually want to interact your with design or with your software... we did hundreds of prototypes, interaction prototypes -- you can step-by-step get to the right solution... it took us four and a half years to get to this level of polish.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/D6EEE6D7-9094-4B62-BE73-ADE98122A761/2048.jpeg" data-hires="false" alt="Person using Apple Pencil to add notes to StaffPad on iPad Pro in front of piano"></div><h3>David William Hearn, StaffPad</h3><p>“The core tenet of the app is really: How is this helping me write music? How is this making my day nicer and better and hopefully making me write better music? If it can help me do that, and at least if I finish a project and I don’t feel exhausted at the end of it, then I think that every idea has been worth it. But there’s always more to do. It’s never done.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/DDF0B61B-60A6-4B85-BDE2-224FBFCC35AC/2048.jpeg" data-hires="false" alt="One of the antagonists of Sayonara Wild Hearts with two-face mask and motorbike"></div><h3>Simon Flesser, Sayonara Wild Hearts</h3><p>“This is a game that is very much about the music, right?... It started very differently, with a much more sinister tone. But then as we were playing our prototype, randomly, this really energetic, pop song came on in the background... And it sort of just clicked. I literally said, ‘This is it.’”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/716DB87C-9F4A-4F3F-90E6-7BFE90EF99D3/2048.jpeg" data-hires="false" alt="Two protagonists of sky holding hands amidst a sunset"></div><h3>Jenova Chen, Sky: Children of the Light</h3><p>“With very small changes in the design, you can change how [the player] behaves, how they treat each other in your game. I think it’s your responsibility to think about: How are these players going to interact with your app, with your game, you know, on a daily basis? Is that healthy for them? Is that going to make them be thankful... rather than having resentment of the experience?”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/71CCE30A-277B-4285-BB0B-D8379F298C08/2048.jpeg" data-hires="false" alt="Song of bloom paper cut on a yellow background"></div><h3>Philipp Stollenmayer, Song of Bloom</h3><p>“Sometimes it’s hard to tell what the game is trying to tell you. Some images are so abstract that you have to make up your own interpretation. To help the game communicate on every available channel, it was important to give it another sense... from the haptic vibrations, it helps you to understand if this is an active scene or a calm one — you get a really nice sense for the mood.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/A045F85A-FCC7-4A4D-A4AC-32D238680A96/2048.jpeg" data-hires="false" alt="Screenshot of downtown card houses in Where Cards Fall"></div><h3>Sam Rosenthal, Where Cards Fall</h3><p>“A lot of the game feels very melancholic but at the same time — it's a hopeful game. So the app icon is our main character in the winter — which is the present day — looking up... It is not somebody that is lost in the past but somebody that maybe has learned from what happened, has reflected and is looking towards what could be next.”</p><hr><p><em>Read more about the Apple Design Award winners on Apple Newsroom and the App Store.</em></p><p><a href="https://www.apple.com/newsroom/2020/06/apple-honors-eight-developers-with-annual-apple-design-awards/" class="icon icon-after icon-chevronright">Read more about the Apple Design Award winners on Apple Newsroom</a></p><p><a href="https://apps.apple.com/story/id1517413678" class="icon icon-after icon-chevronright">Read more about the Apple Design Award winners on the App Store</a></p></description>
1421 <pubDate>Mon, 29 Jun 2020 01:59:55 PDT</pubDate>
1422 </item>
1423 <item>
1424 <title>Changing the world, one Swift playground at a time</title>
1425 <link>https://developer.apple.com/news/?id=aprhkd7d</link>
1426 <guid>https://developer.apple.com/news/?id=aprhkd7d</guid>
1427 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/8B3B0EB0-739F-44E9-BF02-99CE803CA6B8/2048.jpeg" data-hires="false" alt=""></div><p>Earlier this year, students from all around the world put their passion, ingenuity, and determination to work crafting Swift playground projects for the WWDC20 Swift Student Challenge. Students from 60 different countries and regions brought their talents to the table, using the challenge’s three-minute limit to stretch their imaginations and explore Apple’s frameworks and technologies. The resulting 350 Swift Student Challenge winners have created AR experiences, projects powered by machine learning, educational material, virtual musical instruments, 8-bit games, and so much more. </p><h3>Swipe to unlock</h3><p>In 2019, after having studied just one month at the Apple Developer Academy in Porto Alegre, Brazil, Henrique Conte submitted his first Swift playground project. While he didn’t win a WWDC Scholarship that year, the experience drove him to continue exploring and refining his code.</p>
1428 <p>“This year I felt that, after reading and studying about so many different Apple frameworks, I should try to accomplish the WWDC19 main phrase: ‘Write code. Blow minds,’” he told us. And he did. His winning submission, a three-minute game designed for MacBook Pro’s Touch Bar, excels in both its technical acuity and creativity.</p>
1429 <p>Within the playground, players have to help Eleanor, a young developer, escape from a cave. The twist: The “cave” level is entirely located within the Touch Bar. “I chose to use unusual frameworks to show that it is possible to do amazing things with them,” Conte said. “I feel that [the Touch Bar] has so much potential yet to be discovered, and I wanted to demonstrate some of its capabilities.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/9224C2B2-8900-441B-97B7-2BCF27DD98F8/2048.jpeg" data-hires="false" alt="Henrique Conte’s winning submission, “ESCape, Eleanor!”"><p class="typography-caption">Henrique Conte’s winning submission, “ESCape, Eleanor!”</p></div><p>Though he had never previously developed for macOS, Conte immediately took to the challenge. Like learning any new development concept, he ran into a few initial obstacles — “when I received the message “No such module 'UIKit’ [after trying to add it to my project] I noticed things would get interesting,” he joked — but he quickly picked up the fundamentals of Mac programming, using AppKit and SpriteKit to build a fully-interactive experience, including taps, slides, keyboard integrations, and multi-screen storytelling. He also paid close attention to the design, something that has become increasingly important to him.</p>
1430 <p>“I am definitely not a designer,” says Conte, “But in the past few years I noticed how essential it is to follow Apple’s Human Interface Guidelines and to provide a great experience. There is no point in creating a perfect code if people will have trouble using your application!”</p>
1431 <p>You can find more of Conte’s work on the App Store: In the last year, he’s created four apps, including one to help children with autism communicate. He’s currently at work on his next project, which he’s building for both iOS and macOS, that addresses the problem of food waste. And — he’s happy to report — the macOS version will incorporate the Touch Bar. </p><h3>The world turned upside-down</h3><p>Louise Pieri, 21, fell in love with computer science at a young age in her native Lyons, France. She’s since gone on to study at École 42, the programming school founded by French businessman Xavier Niel. Pieri’s winning project, Meep, drew inspiration from an article she read in a scientific journal about the possibility of parallel universes, as well as her own personal journey as a transgender woman. </p>
1432 <p>“Meep is a game with two levels: the first is a level where everything is reversed and upside-down and the second is where everything is normal,” says Pieri. “The story is about a little blue transgender monster who wants to reach the final level and turn pink... it's a beautiful metaphor for what happens in the life of a trans person.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/5BF1B7E8-9B77-427C-84C8-CCA2E23492DC/2048.jpeg" data-hires="false" alt="Louise Pieri’s winning submission, “Meep”"><p class="typography-caption">Louise Pieri’s winning submission, “Meep”</p></div><p>Though Pieri had never previously used SpriteKit or AVKit, she knew she wanted to build a game for her Swift playground submission. She spent two days brainstorming ideas before landing on the concept for Meep and diving into the frameworks and interface. Initially, she’d hoped to show both of Meep’s universes on-screen at once before deciding on a multi-level experience, including an entire level upside-down. </p>
1433 <p>In addition to designing and coding the game, Pieri also created her own 2D artwork for each level in Adobe Illustrator and a story for the game — all in under two weeks.</p>
1434 <p>Pieri has been tuning into WWDC20 this year from France, and is especially keen to learn more about the future of Apple platforms. “I can't wait to get to know iOS 14,” she says. That will come in handy for her next project — bringing a version of Meep to the App Store.</p><h3>A robot of one’s own</h3><p>Devin Green’s love of development stemmed from a lifelong fascination with thinking machines. “I have always been in awe of artificial intelligence,” he told us. Out of that idea, the 18-year-old’s winning project — an AI bot named Stanny — was born. </p>
1435 <p>“With everything that is going on in the world right now, I thought people stuck in isolation might find it beneficial to their mental health to talk to a capable AI companion,” he said. Green, who will attend Stanford this fall for computer science and engineering, took about a week to build his playground — most of that time dedicated to refining machine learning models that created Stanny’s ‘intelligence.’</p>
1436 <p>“The model was trained on a data file made up of all the things you could possibly say to Stanny,” Green said. After researching how others had trained chat bots, Green created his own model in TensorFlow, then brought it to his Xcode playground through Core ML Converters.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/70482B7A-F878-4FF2-8BFD-DF6A08377281/2048.jpeg" data-hires="false" alt="Devin Green’s winning submission, “Polar Patterns”"><p class="typography-caption">Devin Green’s winning submission, “Polar Patterns”</p></div><p>While no stranger to experimenting with machine learning models, Green used this project to get to know more of Apple’s ML offerings. “I wanted to make it as simple as possible to go from data to usable Artificial Intelligence,” he told us. He worked with NSLinguisticsTagger to build a working model, then created a generated Core ML model to predict the person’s intent from their query and architected his playground in SwiftUI.</p>
1437 <p>Green sees Swift as the future of machine learning and AI applications. “Swift is not only a really simple and easy to use language, it’s also really expansive,” he told us. “It can be built on in such a way that [it] is capable of doing just about anything.”</p>
1438 <p>Stanny isn’t quite as full-featured: His joke-loving AI is limited to only 63 different intents. But Green has big plans — and he can’t wait to incorporate some of the technology announced at WWDC20. “The Natural Language framework is astounding,” he told us. “If I had any doubts about using Swift for machine learning, they quickly disappeared while watching a natural language processing application understand text with about five lines of code... projects I’ve created, like Stanny, are about to get 100x better!”</p><h3>Code as design</h3><p>For first-time winner Renata Pôrto, the challenge gave her a chance to confront her own self-doubts. “As a designer, I have always felt insecurity regarding my ability to code more complex ideas,” she said. After two unsuccessful Swift playground submissions in previous years, the 21-year old student from the Universidade Federal de Pernambuco in Recife, Brazil had once again decided to submit. But after a few days of work, she scrapped the project.</p>
1439 <p>“I was not satisfied with my own decision to continue with a ‘safe’ idea,” she told us. Instead, she began considering concepts she’d wanted to learn about but hadn’t yet explored — including generative art. “One of the things I always thought was fantastic about programming is the possibility of transforming lines of code into visual and interactive experiences,” she said. Just six days later, she emerged with Polar Patterns, a Swift playground that helps people learn more about mathematical roses and generate their own visual art.</p>
1440 <p>“With SpriteKit, I was able to convert the polar equation of mathematical roses into SKShapes, transforming the results from the formula into visual elements,” she said. Pôrto designed just two images herself, relying on her algorithmic code and a few UIKit elements to create the entire visual experience. </p>
1441 <p>Designing an entirely programmatic art interface was a departure for Pôrto. “I am very used to prototyping before programming,” she told us. This project, however, involved creating an experience that would dynamically shift and change depending on what actions someone took within the playground, making it important for Pôrto to visualize and experiment constantly to perfect her interface.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/3D8EBEA1-483B-4844-A2E0-A92FDF019632/2048.jpeg" data-hires="false" alt="Renata Pôrto’s winning submission, “Polar Patterns”"><p class="typography-caption">Renata Pôrto’s winning submission, “Polar Patterns”</p></div><p>The result brings the beauty and complexity of polar roses to a Swift playground — and landed Pôrto a winning submission. “It’s a great joy learning about development, even though I am a design student,” she told us. “Studying design helped me to practice my empathy for [people] and to know what resources to use and how to work with them to achieve better results.”</p>
1442 <p>That empathy continues through her work with a local developer group, creating educational tools for new developers in her community. “I always try to pass on my design knowledge to developers, and my developer knowledge to designers,” she said. “And hopefully one day they will make products that make a difference in other people’s lives.”</p><hr><p><em>Learn more about the Swift Student Challenge winners.</em></p><p><a href="https://developer.apple.com/news/?id=zvqmpiak" class="icon icon-after icon-chevronright">Swift Student Challenge winners determined to shape the future</a></p><p><a href="https://apps.apple.com/us/story/id1517413279" class="icon icon-after icon-chevronright">App Store: Meet the Swift Student Challenge winners</a></p></description>
1443 <pubDate>Thu, 25 Jun 2020 11:00:02 PDT</pubDate>
1444 </item>
1445 <item>
1446 <title>Game Center updates now available</title>
1447 <link>https://developer.apple.com/news/?id=jonpe31q</link>
1448 <guid>https://developer.apple.com/news/?id=jonpe31q</guid>
1449 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/755A777A-DBD9-4D09-BD82-7F18585012DD/2048.jpeg" data-hires="false" alt="Icon for Game Center, Apple’s social gaming network"></div><p>Now games with Game Center capabilities display a beautifully redesigned in-game dashboard on iOS, tvOS, and macOS. Users can see their achievements, leaderboards, and Game Center profiles directly in your game when you implement the new Access Point. Game Center also now supports recurring leaderboards that keep rankings current, as well as leaderboards for daily, weekly, and monthly competitions. You can set up recurring leaderboards, add achievements, and opt in to the challenges feature in App Store Connect.</p>
1450 <p><a href="https://developer.apple.com/videos/wwdc2020/?q=Game%20Center"><span class="icon icon-after icon-chevronright nowrap">Learn more</span></a></p></description>
1451 <pubDate>Wed, 24 Jun 2020 20:18:41 PDT</pubDate>
1452 </item>
1453 <item>
1454 <title>Machine learning updates now available</title>
1455 <link>https://developer.apple.com/news/?id=aym5xv8b</link>
1456 <guid>https://developer.apple.com/news/?id=aym5xv8b</guid>
1457 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/20A2A9F9-E01F-43C5-823E-755BBB465CDD/2048.jpeg" data-hires="false" alt="Icon for machine learning on Apple platforms"></div><p>New tools in Core ML enable secure, cloud-based model deployment and model encryption, Create ML offers new templates and training capabilities, and new APIs for Vision and Natural Language give your apps more power. You can also work with third-party training libraries more easily with updated model converters and accelerated training support on Mac.</p>
1458 <p><a href="https://developer.apple.com/machine-learning/"><span class="icon icon-after icon-chevronright nowrap">Learn more</span></a></p></description>
1459 <pubDate>Wed, 24 Jun 2020 19:37:55 PDT</pubDate>
1460 </item>
1461 <item>
1462 <title>Augmented reality updates now available</title>
1463 <link>https://developer.apple.com/news/?id=1u5zg8ak</link>
1464 <guid>https://developer.apple.com/news/?id=1u5zg8ak</guid>
1465 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/C04001DB-4F93-4F71-AA87-C6A7A81BB009/2048.jpeg" data-hires="false" alt="Icon for augmented reality on Apple platforms"></div><p>ARKit 4 introduces brand-new features that make the AR experiences in your apps even more lifelike. You can now access even more precise distance information gathered by the LiDAR Scanner on iPad Pro using Depth API, place AR experiences at a specific point in the world with Location Anchors, and more.</p>
1466 <p><a href="https://developer.apple.com/augmented-reality/arkit/"><span class="icon icon-after icon-chevronright nowrap">Learn more</span></a></p></description>
1467 <pubDate>Wed, 24 Jun 2020 19:34:59 PDT</pubDate>
1468 </item>
1469 <item>
1470 <title>Refund notifications for all in-app purchases now available</title>
1471 <link>https://developer.apple.com/news/?id=tv3bhra6</link>
1472 <guid>https://developer.apple.com/news/?id=tv3bhra6</guid>
1473 <description><p>App Store server notifications now include refund notifications for all types of in-app purchases, including consumables, non-consumables, and non-renewing subscriptions. You can use this information to take action in response, let the user know of any benefit changes, and tell them how to resubscribe.</p>
1474 <p><a href="https://developer.apple.com/documentation/storekit/in-app_purchase/subscriptions_and_offers/enabling_server-to-server_notifications">Learn how to enable status <span class="icon icon-after icon-chevronright nowrap">update notifications</span></a></p>
1475 <p><a href="https://developer.apple.com/documentation/storekit/in-app_purchase/handling_refund_notifications">Learn how to handle <span class="icon icon-after icon-chevronright nowrap">refund notifications</span></a></p></description>
1476 <pubDate>Wed, 24 Jun 2020 19:20:06 PDT</pubDate>
1477 </item>
1478 <item>
1479 <title>Introducing teams for Feedback Assistant</title>
1480 <link>https://developer.apple.com/news/?id=i9a2mmd3</link>
1481 <guid>https://developer.apple.com/news/?id=i9a2mmd3</guid>
1482 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/BFB71CAD-F403-4CDE-9FEE-69FD04087C4D/2048.jpeg" data-hires="false" alt="Icon for Feedback Assistant, Apple’s feedback submission app"></div><p>You can now view and respond to feedback filed by your team members if you’re part of an organization in the Apple Developer Program, the Apple Developer Enterprise Program, Apple School Manager, or Apple Business Manager. And you’ll still have a personal inbox for separate submissions, with the choice to move feedback to your team inbox at any time.</p><p><a href="https://developer.apple.com/bug-reporting/"><span class="icon icon-after icon-chevronright nowrap">Learn more</span></a></p></description>
1483 <pubDate>Wed, 24 Jun 2020 19:09:59 PDT</pubDate>
1484 </item>
1485 <item>
1486 <title>WWDC20 session and topic tags now available</title>
1487 <link>https://developer.apple.com/news/?id=6g5y3fgr</link>
1488 <guid>https://developer.apple.com/news/?id=6g5y3fgr</guid>
1489 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/7576C91C-6067-48D7-B282-E31F653CE116/2048.jpeg" data-hires="false" alt="Picture of text bubble on black background"></div><p>You can now connect with over 1,000 Apple engineers on the all-new Apple Developer Forums through WWDC20 tags specific to sessions and topics.</p>
1490 <p><a href="https://developer.apple.com/wwdc20/forums/all/"><span class="icon icon-after icon-chevronright nowrap">Learn more</span></a></p></description>
1491 <pubDate>Tue, 23 Jun 2020 19:57:55 PDT</pubDate>
1492 </item>
1493 <item>
1494 <title>The music of WWDC</title>
1495 <link>https://developer.apple.com/news/?id=09pr41a8</link>
1496 <guid>https://developer.apple.com/news/?id=09pr41a8</guid>
1497 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/C2128BCE-14A0-4D0B-A2B3-F0DE037D47E9/2048.jpeg" data-hires="false" alt="WWDC20 Dub Dub Jams with 2020 and Apple Music sticker"></div><p>It wouldn’t be WWDC without a little music. Bring Khalid and The Killers into your living room and create your very own musical conference experience with the WWDC20 playlist collection, now available on Apple Music. The opening WWDC20 playlist features great artists like Glass Animals and Alicia Keys, and includes Aurora from this year’s opening video.</p>
1498 <p>In addition, Apple Music is celebrating the powerful connection the development community has to music with a new “Music to Code to” series, which features several multi-hour playlists featuring different musical styles and genres. </p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/F1F6A358-BA7E-4B55-AD1E-DF7035DCBB18/2048.jpeg" data-hires="false" alt="WWDC20 collection screenshot inside Apple Music"></div><p>Developers have long found connection and inspiration from music. Sam Rosenthal, creator of The Game Band’s <em>Where Cards Fall</em> on Apple Arcade, told us that his company name pays homage to the groups he listened to growing up. “A lot of the bands that I really loved… They didn't stick with one sound,” he said. Rosenthal has carried that philosophy into his work: “Every time we make something, it should be different from the last. It should surprise people.”</p>
1499 <p>Others, like writer and Shortcuts developer Federico Viticci, have built entire projects around a love of music. In 2019, the Italian native designed and built a shortcut, MusicBot, that helps people listen to more of their library and speed up common Music app interactions. </p>
1500 <p>“When developing MusicBot, I needed to test it with data that was easy to find in my music library,” he told us. Viticci's choice: His “all-time favorite band,” Oasis, whose myriad albums provided plenty of testing material.</p>
1501 <p>Several of the Swift Student Challenge winners also shared their appreciation for a little musical motivation. “While I was creating [my] Playground, I used the WWDC19 playlist,” Gloria Cretella told us. A two-time scholarship winner, Cretella attended the conference for the first time in 2019, and used the playlist to remind herself of the experience. “I was a bit nostalgic,” she said. “Programming with the songs that were in the background at the conference brought me back.”</p>
1502 <p>Everyone has their favorite tune or perfect mix. Brazillian Student Challenge winner Henrique Conte finds joy in French music while he codes, especially from his favorite Belgian singer Angèle. “Learning new languages is one of my passions because it allows us to connect with the world and understand cultures,” he told us. With this playlist, he said, he gets to improve his linguistic skills all while Angèle’s music focuses him on the task at hand.</p>
1503 <p>Others, like StaffPad developer and composer David William Hearn, prefer to find time in the quieter moments between projects. “I’m actually reconnecting at the moment with some of the classics,” he told us, which include works by 20th century composer Erich Wolfgang Korngold. Though some of those compositions are short by classical standards, Hearn is quick to highlight the years of artistry and care behind them. “It's someone’s life, you know?” he said. “I find that phenomenal.”</p>
1504 <p>Discover the perfect soundtrack for your next programming project on Apple Music or wherever you like to listen, and know that you’re enjoying something uniquely human. “Music transcends our differences and has the power to unite us,” Viticci said. “To make us feel connected no matter what's going on in the world.” </p><hr><p><em>You can tune in to the full WWDC20 playlist collection on Apple Music.</em></p><p><a href="https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewMultiRoom?fcId=1516383883&ls=1" class="icon icon-after icon-chevronright">WWDC20 on Apple Music</a></p></description>
1505 <pubDate>Tue, 23 Jun 2020 11:00:51 PDT</pubDate>
1506 </item>
1507 <item>
1508 <title>WWDC20 Daily Digest</title>
1509 <link>https://developer.apple.com/news/?id=cigjat1u</link>
1510 <guid>https://developer.apple.com/news/?id=cigjat1u</guid>
1511 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/D7C5087B-1B34-4F0B-BAC9-E0234944A2C8/2048.jpeg" data-hires="false" alt="Three Memoji behind computers"></div><p>Welcome back to day two of WWDC. (We hope you got some sleep after the excitement of those announcements!) Our first sessions are now available. Learn what’s happened so far and discover some of the great stuff in store for you.</p><h3>Welcome to day two</h3><p>We hope you’re rested and ready to learn about more of the latest Apple technologies and frameworks, because we’ve got a lot to share with you.</p><p><a href="https://developer.apple.com/news/?id=cyq5clst" class="icon icon-after icon-chevronright">Tuesday</a></p><h3>Catch up on the Keynote</h3><p>Missed out on the Keynote and Platforms State of the Union on Monday? No FOMO necessary: We’ll take you through all the good stuff in under two minutes.</p>
1512 <section class="grid activity">
1513 <section class="row">
1514 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1515 <a href="https://developer.apple.com/wwdc20/10691" class="activity-image-link">
1516 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3885/3885_wide_250x141_2x.jpg" data-hires="false" alt="">
1517 </a>
1518 </section>
1519 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1520 <ul class="activity-tags">
1521 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1522 </ul>
1523 <a href="https://developer.apple.com/wwdc20/10691">
1524 <h4 class="no-margin-bottom activity-title">Monday@WWDC</h4>
1525 </a>
1526
1527 <p class="activity-description">It’s been a jam-packed first day at WWDC, full of exciting news from the Keynote and Platforms State of the Union. We’ll zoom through the highlights — and give you a sneak peek of what's coming tomorrow.</p>
1528 </section>
1529 </section>
1530 </section><p>Got a few hours? You can also watch the Keynote and Platforms State of the Union for more details on widgets, app clips, SwiftUI, and more — right in the Developer app.</p>
1531 <section class="grid activity">
1532 <section class="row">
1533 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1534 <a href="https://developer.apple.com/wwdc20/101" class="activity-image-link">
1535 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3921/3921_wide_250x141_2x.jpg" data-hires="false" alt="">
1536 </a>
1537 </section>
1538 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1539 <ul class="activity-tags">
1540 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1541 </ul>
1542 <a href="https://developer.apple.com/wwdc20/101">
1543 <h4 class="no-margin-bottom activity-title">Keynote</h4>
1544 </a>
1545
1546 <p class="activity-description">The Apple Worldwide Developers Conference kicks off with exciting reveals, inspiration, and new opportunities to continue creating the most innovative apps in the world. Join the worldwide developer community for an in-depth look at the future of Apple platforms, directly from Apple Park.</p>
1547 </section>
1548 </section>
1549 </section>
1550 <section class="grid activity">
1551 <section class="row">
1552 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1553 <a href="https://developer.apple.com/wwdc20/102" class="activity-image-link">
1554 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3873/3873_wide_250x141_2x.jpg" data-hires="false" alt="">
1555 </a>
1556 </section>
1557 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1558 <ul class="activity-tags">
1559 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1560 </ul>
1561 <a href="https://developer.apple.com/wwdc20/102">
1562 <h4 class="no-margin-bottom activity-title">Platforms State of the Union</h4>
1563 </a>
1564
1565 <p class="activity-description">Join the worldwide developer community for an in-depth look at the future of Apple platforms, directly from Apple Park.</p>
1566 </section>
1567 </section>
1568 </section><h3>Swan’s Quest</h3><p>Tuesday kicks off "Swan’s Quest,” an interactive Swift Playgrounds adventure in four chapters for all ages. Use your programming prowess to aid our Hero in navigating through mystery, decoding scrolls, and writing music.</p>
1569 <p>In our first chapter, our Hero must navigate a dark cave — and the only way to light the torches is to make them accessible. Learn about VoiceOver and write interesting audio descriptions. You just might help our Hero find their way out… and get a clue for the next challenge.</p>
1570 <p>Swan’s Quest was created for Swift Playgrounds on iPad and Mac, integrating aspects of our Sonic Create, Sensor Create, and AR Create playgrounds to design an entirely new educational experience. Check it out, and don’t forget to stop by the Developer Forums and let us know what you think!</p>
1571 <section class="grid activity">
1572 <section class="row">
1573 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1574 <a href="https://developer.apple.com/wwdc20/10681" class="activity-image-link">
1575 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3499/3499_wide_250x141_2x.jpg" data-hires="false" alt="">
1576 </a>
1577 </section>
1578 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1579 <ul class="activity-tags">
1580 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1581 </ul>
1582 <a href="https://developer.apple.com/wwdc20/10681">
1583 <h4 class="no-margin-bottom activity-title">Swan's Quest, Chapter 1: Voices in the dark</h4>
1584 </a>
1585
1586 <p class="activity-description">Swift Playgrounds presents "Swan’s Quest,” an interactive adventure in four chapters for all ages. In this chapter, our Hero must navigate a dark cave — and the only way to light the torches is to make them accessible.
1587
1588 Learn about VoiceOver and write interesting audio descriptions. You...</p>
1589 </section>
1590 </section>
1591 </section><p><a href="https://apps.apple.com/us/app/swift-playgrounds/id908519492" class="icon icon-after icon-chevronright">Download Swift Playgrounds for iOS</a></p><p><a href="https://apps.apple.com/us/app/swift-playgrounds/id1496833156?mt=12" class="icon icon-after icon-chevronright">Download Swift Playgrounds for macOS</a></p><p><a href="https://developer.apple.com/swift-playgrounds/" class="icon icon-after icon-chevronright">Learn more about Swift Playgrounds</a></p><h3>WWDC coding and design starter kit</h3><p>Whether you’re learning to code early on or coming to it later in life, we want to help you start developing for Apple platforms. We’ve created a collection of sessions that provide a great introduction to our latest technologies and frameworks. We’ll be releasing new sessions in the collection every day — stay tuned!</p><p><a href="https://developer.apple.com/news/?id=w70xqndi" class="icon icon-after icon-chevronright">Coding and design starter kit</a></p><h3>Explore developer documentation</h3><p>There’s lots of new Developer Documentation and sample code to discover during WWDC20. </p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/A704E617-2D12-48EF-82CD-9D3333029252/2048.jpeg" data-hires="false" alt="Documentation technologies page"></div><p>You can copy code directly from individual sessions using the Copy Code feature in the Developer app, download sample code projects on the Apple Developer website, and check out the new Technologies index, where you can quickly find information and API changes around existing frameworks.</p><p><a href="https://developer.apple.com/news/?id=oizmr1cr" class="icon icon-after icon-chevronright">Find the right documentation</a></p><p><a href="https://developer.apple.com/wwdc20/sample-code/" class="icon icon-after icon-chevronright">WWDC20 Sample Code</a></p><p><a href="https://developer.apple.com/documentation" class="icon icon-after icon-chevronright">Developer Documentation</a></p><p><a href="https://developer.apple.com/documentation/technologies" class="icon icon-after icon-chevronright">Developer Documentation Technologies</a></p><h3>Meet the developers</h3><p>This week, the App Store is sharing stories of developers across the world as they adapt their businesses and help their communities. Here’s an excerpt from HomeCourt co-founder Philip Lam’s journey to support athletes and basketball players stuck at home:</p>
1592 <p><em>A few weeks after the pandemic started, NEX Team cofounder Philip Lam noticed something unusual about HomeCourt, his company’s basketball-training app: Users were hacking it. </em></p>
1593 <p><em>Unable to get to gyms and courts, athletes figured out how to adapt the app’s groundbreaking artificial intelligence—designed to track basketball shots, dribbles, and passes with an iPhone or iPad camera—for soccer, in-line skating, hockey, and other sports. “There’s no way for us to determine if you’re using a basketball,” says Lam. “People started noticing that it just worked.”</em></p><p><a href="https://apps.apple.com/story/id1517414469" class="icon icon-after icon-chevronright">Read more on the App Store</a></p><h3>Conversations at WWDC</h3><p>Tune in for two special events later this week. </p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/693B7F15-13C4-4D70-B89A-C4CA611F89DF/2048.jpeg" data-hires="false" alt="Apple Vice President Lisa Jackson and former Attorney General Eric Holder"></div><p>On Wednesday, Lisa hosts a discussion with former US Attorney General Eric Holder on the fight for equal justice, how technology can empower people to change the world for the better, and ways to help in this moment.</p>
1594 <section class="grid activity">
1595 <section class="row">
1596 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1597 <a href="https://developer.apple.com/wwdc20/10970" class="activity-image-link">
1598 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/4442/4442_wide_250x141_2x.jpg" data-hires="false" alt="">
1599 </a>
1600 </section>
1601 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1602 <ul class="activity-tags">
1603 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1604 </ul>
1605 <a href="https://developer.apple.com/wwdc20/10970">
1606 <h4 class="no-margin-bottom activity-title">A conversation with Lisa Jackson and former Attorney General Eric Holder</h4>
1607 </a>
1608
1609 <p class="activity-description">Eric Holder was the 82nd Attorney General of the United States, having served from 2009 to 2015. The first Black American to hold the position, Holder’s six-year tenure also makes him one of the longest-serving occupants of the office. Currently a partner in Covington & Burling, he’s served in...</p>
1610 </section>
1611 </section>
1612 </section><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/5F6A7DEC-84E0-480A-AB81-5FB25FD013C0/2048.jpeg" data-hires="false" alt="Rob McElhenney"></div><p>And on Thursday, the cast and creators of the Apple TV+ hit show Mythic Quest: Raven’s Banquet will answer questions from the Apple developer community. Join Rob McElhenney (executive producer/co-creator and Ian Grimm), Charlotte Nicdao (Poppy), Imani Hakim (Dana), Danny Pudi (Brad), and Megan Ganz (executive producer/co-creator) as they review one of their favorite scenes and answer submitted questions. </p><hr><p><em>Enjoy day two of WWDC! Sessions are available on the WWDC tab in the Apple Developer app as well as on Apple.com. And if you have questions about a session or want to chat with the community, don’t forget to check out the Developer Forums.</em></p><hr></description>
1613 <pubDate>Tue, 23 Jun 2020 08:00:16 PDT</pubDate>
1614 </item>
1615 <item>
1616 <title>See what’s new with Mac Catalyst</title>
1617 <link>https://developer.apple.com/news/?id=tv4qge53</link>
1618 <guid>https://developer.apple.com/news/?id=tv4qge53</guid>
1619 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/2C9F1C86-7AE8-48A6-AB91-3EABF22980AE/2048.jpeg" data-hires="false" alt="Mac catalyst logo"></div><p>Create even more powerful Mac versions of your iPad apps. Apps built with Mac Catalyst now take on the new look of macOS Big Sur and help you better define the look and behavior of your apps. Provide full control of your app using just the keyboard, take advantage of the updated Photos picker, access more iOS frameworks, and more. There’s never been a better time to turn your iPad app into a powerful Mac app.</p>
1620 <p><a href="https://developer.apple.com/mac-catalyst/">Learn more about <span class="icon icon-after icon-chevronright nowrap">Mac Catalyst</span></a></p></description>
1621 <pubDate>Mon, 22 Jun 2020 20:11:03 PDT</pubDate>
1622 </item>
1623 <item>
1624 <title>Xcode 12 is now available</title>
1625 <link>https://developer.apple.com/news/?id=qbomldbb</link>
1626 <guid>https://developer.apple.com/news/?id=qbomldbb</guid>
1627 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/70DFEB35-0C49-450D-85FF-8831E2A593A9/2048.jpeg" data-hires="false" alt="Xcode logo"></div><p>With an all-new design that looks great on macOS Big Sur, Xcode 12 has customizable font sizes for the navigator, streamlined code completion, new document tabs, and more. And it builds Universal apps by default to support Apple Silicon Macs, without changing a single line of code.</p>
1628 <p><a href="https://developer.apple.com/xcode/">Learn more about <span class="icon icon-after icon-chevronright nowrap">Xcode 12</span></a></p></description>
1629 <pubDate>Mon, 22 Jun 2020 20:07:55 PDT</pubDate>
1630 </item>
1631 <item>
1632 <title>Introducing WidgetKit</title>
1633 <link>https://developer.apple.com/news/?id=ou1gpq68</link>
1634 <guid>https://developer.apple.com/news/?id=ou1gpq68</guid>
1635 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/6CB5FFD4-C30B-4024-9455-C48C6175C160/2048.jpeg" data-hires="false" alt=""></div><p>Widgets deliver a small amount of timely, useful information or app-specific functionality. And now, they’re even easier to build and make available across iOS, iPadOS, and macOS with the new WidgetKit framework, widget API for SwiftUI, widget gallery, and Smart Stacks.</p>
1636 <p><a href="https://developer.apple.com/widgets/">Learn more <span class="icon icon-after icon-chevronright nowrap">about WidgetKit</span></a></p></description>
1637 <pubDate>Mon, 22 Jun 2020 20:06:23 PDT</pubDate>
1638 </item>
1639 <item>
1640 <title>Introducing App Clips</title>
1641 <link>https://developer.apple.com/news/?id=na4c37vj</link>
1642 <guid>https://developer.apple.com/news/?id=na4c37vj</guid>
1643 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/4B67EB07-CE50-446C-BF87-4D908B316F80/2048.jpeg" data-hires="false" alt="App clips logo"></div><p>Easily discoverable and quick to launch at the moment it’s needed, an App&nbsp;Clip is a small part of your app that lets users start and finish an experience in seconds. And after you’ve demonstrated the value of your app with your App&nbsp;Clip, you can provide the opportunity to download your full app from the App&nbsp;Store.</p>
1644 <p><a href="https://developer.apple.com/app-clips/">Learn more <span class="icon icon-after icon-chevronright nowrap">about App&nbsp;Clips</span></a></p></description>
1645 <pubDate>Mon, 22 Jun 2020 19:58:26 PDT</pubDate>
1646 </item>
1647 <item>
1648 <title>See what’s new on Apple platforms</title>
1649 <link>https://developer.apple.com/news/?id=yv8tlk66</link>
1650 <guid>https://developer.apple.com/news/?id=yv8tlk66</guid>
1651 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/0796345E-5C55-41C3-B6E8-7FEC41BAF9D4/2048.jpeg" data-hires="false" alt="SDK logo"></div><p>Create seamless, intelligent, and engaging experiences with the latest exciting advancements in iOS 14, iPadOS 14, watchOS 7, tvOS 14, and macOS Big Sur. Get the Xcode 12 beta, which includes the SDKs for Apple platforms.</p>
1652 <p><a href="https://developer.apple.com">Learn more about <span class="icon icon-after icon-chevronright nowrap">what’s new</span></a></p></description>
1653 <pubDate>Mon, 22 Jun 2020 19:57:55 PDT</pubDate>
1654 </item>
1655 <item>
1656 <title>The new Universal App Quick Start Program is here.</title>
1657 <link>https://developer.apple.com/news/?id=zyzt827p</link>
1658 <guid>https://developer.apple.com/news/?id=zyzt827p</guid>
1659 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/F4C28989-CC74-4636-848E-322264BA86E4/2048.jpeg" data-hires="false" alt="Universal apps program logo"></div><p>Get your apps ready for Apple Silicon Macs. Create next-generation Universal apps that take full advantage of the capabilities the new architecture has to offer. As a Universal App Quick Start Program member, you can access all the tools, resources, and support you need.</p>
1660 <p><a href="https://developer.apple.com/programs/universal/">Learn more about <span class="icon icon-after icon-chevronright nowrap">the program</span></a></p></description>
1661 <pubDate>Mon, 22 Jun 2020 19:55:00 PDT</pubDate>
1662 </item>
1663 <item>
1664 <title>Optimize for Apple Silicon with performance and efficiency cores</title>
1665 <link>https://developer.apple.com/news/?id=vk3m204o</link>
1666 <guid>https://developer.apple.com/news/?id=vk3m204o</guid>
1667 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/E757415B-9524-40D7-BADB-4F33ED4508F2/2048.jpeg" data-hires="false" alt="Apple silicon chip"></div><p>Recent Apple Silicon like A13 Bionic has both high-performance cores (P cores) and high-efficiency cores (E cores). These different core types allow you to deliver apps that have both great performance and great battery life. To take full advantage of their performance and efficiency, you can provide the operating system (OS) with information about how to execute your app in the most optimal way. From there, the OS uses semantic information to make better scheduling and performance control decisions.</p>
1668 <p>Let’s explore some best practices to help you get the most out of Apple Silicon and create faster, more efficient apps. Discover how to adapt your code for asymmetric multiprocessing, adopt Quality of Service classes, and find out more about Grand Central Dispatch APIs.</p><h3>Adapt your code for asymmetric multiprocessing</h3><p>Unlike traditional symmetric multiprocessing (SMP) systems which use many identical cores, asymmetric multiprocessing (AMP) systems have cores that are not all equal.</p>
1669 <p>Apple Silicon Macs are AMP systems, having both performance cores (P cores) and efficiency cores (E cores). Even though E cores are optimized for high efficiency, they offer significant compute resources for apps to take advantage of.</p>
1670 <p>An app may execute threads on both P and E cores over a period of time. The OS places threads on P or E cores based on the following criteria:</p>
1671 <ul>
1672 <li>Information your app provides</li>
1673 <li>Observation of the app’s workload</li>
1674 <li>Observation of the system as whole</li>
1675 </ul>
1676 <p>On Apple Silicon Macs, the system observes applications and daemons separately from each other. This allows the system to execute them with individual efficiency and performance characteristics. As an example, an app running in the background may have its threads placed on E cores to optimize battery life while the foreground app is taking advantage of P cores.</p><h3>Use Quality of Service classes to categorize work</h3><p>Quality of Service (QoS) classes are the primary way for you to categorize work performed by your app and provide the OS with semantic information on the nature of that work and how it affects someone using your app.</p>
1677 <p>On AMP systems, the operating system uses the energy-efficiency information conveyed by QoS classes to influence placement of threads on P or E cores. You can use the following QoS classes on Apple platforms:</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/9A85BC1B-B3AB-4F1C-97E7-49EDD69A6E51/2048.jpeg" data-hires="false" alt="Image displaying QoS options: User Interactive, User Initiated, Utility, or Background"></div><p>For instance, you can use the QoS class Background to categorize all of your app’s background processes in order to maximize battery life.</p>
1678 <p>For more details on Quality of Service, watch “Building Responsive and Efficient Apps with GCD” from WWDC15 and explore the energy efficiency guide. </p>
1679 <section class="grid activity">
1680 <section class="row">
1681 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1682 <a href="https://developer.apple.com/wwdc15/718" class="activity-image-link">
1683 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/2/588/588_wide_250x141_2x.jpg" data-hires="false" alt="">
1684 </a>
1685 </section>
1686 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1687 <ul class="activity-tags">
1688 <li class="activity-tag event"><span class="smaller">WWDC15</span></li>
1689 </ul>
1690 <a href="https://developer.apple.com/wwdc15/718">
1691 <h4 class="no-margin-bottom activity-title">Building Responsive and Efficient Apps with GCD</h4>
1692 </a>
1693
1694 <p class="activity-description">watchOS and iOS Multitasking place increased demands on your application's efficiency and responsiveness. With expert guidance from the GCD team, learn about threads, queues, runloops and best practices for their use in a modern app. Take a deep dive into QoS, its propagation and advanced...</p>
1695 </section>
1696 </section>
1697 </section><p><a href="https://developer.apple.com/library/archive/documentation/Performance/Conceptual/power_efficiency_guidelines_osx/" class="icon icon-after icon-chevronright">Energy efficiency guide</a></p><h3>Manage parallel workloads</h3><p>Your app can take advantage of both P and E cores to execute parallel worker threads and get tasks done faster and more efficiently. </p>
1698 <p>Statically pre-assigning pieces of a parallel workload to worker threads will leave threads idle before the end of the execution. This is because not all cores are equal and so worker threads will not make identical progress. Instead, subdivide parallel problems into a large number of pieces and use a work-stealing algorithm to balance these pieces across threads to keep all workers busy.</p>
1699 <p><code>GCD</code> is the recommended API for expressing concurrent and parallel workloads in your application. Parallel workloads should use the <code>concurrentPerform</code> / <code>dispatch_apply</code> API to execute parallel instances of a block on multiple cores simultaneously. Set the number of iterations to at least three times the total number of cores on the system. This enables the work-stealing algorithm inside GCD to appropriately balance iterations.</p>
1700 <p>If you have an existing codebase that cannot adopt GCD and uses a custom pthread worker pool, you may benefit from implementing a work-stealing algorithm to achieve optimal performance. For more information, see “Tuning Your Code’s Performance for Apple Silicon.”</p><p><a href="https://developer.apple.com/documentation/dispatch" class="icon icon-after icon-chevronright">Dispatch</a></p><p><a href="https://developer.apple.com/documentation/apple_silicon/tuning_your_code_s_performance_for_apple_silicon" class="icon icon-after icon-chevronright">Tuning your code's performance for Apple Silicon</a></p><h3>Further AMP exploration</h3><p>When you adopt GCD and QoS in your application, you can unlock greater processing power and ensure that your application performs well across all Apple platforms. If you need more information on testing your adoption, we’ve also provided resources to help you there.</p>
1701 <p>Working on something we haven’t mentioned above? Check out the Developer website for more information on other situations like daemons and agents working on behalf of applications and realtime audio applications and plugins.</p><p><a href="https://developer.apple.com/documentation/audiounit/porting_your_audio_code_to_apple_silicon" class="icon icon-after icon-chevronright">Porting your audio code to Apple Silicon</a></p><h3>Resources</h3>
1702 <section class="grid activity">
1703 <section class="row">
1704 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1705 <a href="https://developer.apple.com/wwdc15/718" class="activity-image-link">
1706 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/2/588/588_wide_250x141_2x.jpg" data-hires="false" alt="">
1707 </a>
1708 </section>
1709 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1710 <ul class="activity-tags">
1711 <li class="activity-tag event"><span class="smaller">WWDC15</span></li>
1712 </ul>
1713 <a href="https://developer.apple.com/wwdc15/718">
1714 <h4 class="no-margin-bottom activity-title">Building Responsive and Efficient Apps with GCD</h4>
1715 </a>
1716
1717 <p class="activity-description">watchOS and iOS Multitasking place increased demands on your application's efficiency and responsiveness. With expert guidance from the GCD team, learn about threads, queues, runloops and best practices for their use in a modern app. Take a deep dive into QoS, its propagation and advanced...</p>
1718 </section>
1719 </section>
1720 </section>
1721 <section class="grid activity">
1722 <section class="row">
1723 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1724 <a href="https://developer.apple.com/wwdc16/411" class="activity-image-link">
1725 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/1/93/93_wide_250x141_2x.jpg" data-hires="false" alt="">
1726 </a>
1727 </section>
1728 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1729 <ul class="activity-tags">
1730 <li class="activity-tag event"><span class="smaller">WWDC16</span></li>
1731 </ul>
1732 <a href="https://developer.apple.com/wwdc16/411">
1733 <h4 class="no-margin-bottom activity-title">System Trace in Depth</h4>
1734 </a>
1735
1736 <p class="activity-description">Join engineers from the Instruments team for another focused look at the System Trace Instruments profiling template and how to get the most out of it. Discover how threads, virtual memory, and locking interact to affect performance. Dive deep for a practical look at how you can improve your app's...</p>
1737 </section>
1738 </section>
1739 </section>
1740 <section class="grid activity">
1741 <section class="row">
1742 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1743 <a href="https://developer.apple.com/wwdc17/706" class="activity-image-link">
1744 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/7/1717/1717_wide_250x141_2x.jpg" data-hires="false" alt="">
1745 </a>
1746 </section>
1747 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1748 <ul class="activity-tags">
1749 <li class="activity-tag event"><span class="smaller">WWDC17</span></li>
1750 </ul>
1751 <a href="https://developer.apple.com/wwdc17/706">
1752 <h4 class="no-margin-bottom activity-title">Modernizing Grand Central Dispatch Usage</h4>
1753 </a>
1754
1755 <p class="activity-description">macOS 10.13 and iOS 11 have reinvented how Grand Central Dispatch and the Darwin kernel collaborate, enabling your applications to run concurrent workloads more efficiently. Learn how to modernize your code to take advantage of these improvements and make optimal use of hardware resources.</p>
1756 </section>
1757 </section>
1758 </section><p><a href="https://developer.apple.com/documentation/apple_silicon/" class="icon icon-after icon-chevronright">Learn more about Apple Silicon</a></p><p><a href="https://developer.apple.com/library/archive/documentation/Performance/Conceptual/power_efficiency_guidelines_osx/PrioritizeWorkAtTheTaskLevel.html" class="icon icon-after icon-chevronright">Prioritize work at the task level</a></p></description>
1759 <pubDate>Mon, 22 Jun 2020 12:00:09 PDT</pubDate>
1760 </item>
1761 <item>
1762 <title>Build great App Clips</title>
1763 <link>https://developer.apple.com/news/?id=dsd023qd</link>
1764 <guid>https://developer.apple.com/news/?id=dsd023qd</guid>
1765 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/BA3AA568-AFB4-407D-BA59-B933DF8FE830/2048.jpeg" data-hires="false" alt="App clips icon"></div><p>Meet the App Clip: a small part of an app that’s focused on a specific task, and discoverable the moment you need it. Learn how to use familiar technologies and processes to create a best-in-class App Clip experience for your own app or businesses, brands, or services that appear within it.</p>
1766 <section class="grid activity">
1767 <section class="row">
1768 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1769 <a href="https://developer.apple.com/wwdc20/10174" class="activity-image-link">
1770 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3575/3575_wide_250x141_2x.jpg" data-hires="false" alt="">
1771 </a>
1772 </section>
1773 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1774 <ul class="activity-tags">
1775 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1776 </ul>
1777 <a href="https://developer.apple.com/wwdc20/10174">
1778 <h4 class="no-margin-bottom activity-title">Explore App Clips</h4>
1779 </a>
1780
1781 <p class="activity-description">Help people experience the right parts of your app at the exact moment they need them. We’ll explain how to design and build an App Clip — a small part of your app that focuses on a specific task — and make it easily discoverable. Learn how to focus your App Clip on short and fast...</p>
1782 </section>
1783 </section>
1784 </section>
1785 <section class="grid activity">
1786 <section class="row">
1787 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1788 <a href="https://developer.apple.com/wwdc20/10146" class="activity-image-link">
1789 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3576/3576_wide_250x141_2x.jpg" data-hires="false" alt="">
1790 </a>
1791 </section>
1792 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1793 <ul class="activity-tags">
1794 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1795 </ul>
1796 <a href="https://developer.apple.com/wwdc20/10146">
1797 <h4 class="no-margin-bottom activity-title">Configure and link your App Clips</h4>
1798 </a>
1799
1800 <p class="activity-description">App Clips are small parts of an app that offer a streamlined, direct experience and help people get what they need at the right time. Learn how you can invoke an App Clip through real-world experiences like App Clip Codes, NFC, and QR codes, or have them appear digitally through apps like Maps or...</p>
1801 </section>
1802 </section>
1803 </section>
1804 <section class="grid activity">
1805 <section class="row">
1806 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1807 <a href="https://developer.apple.com/wwdc20/10118" class="activity-image-link">
1808 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3392/3392_wide_250x141_2x.jpg" data-hires="false" alt="">
1809 </a>
1810 </section>
1811 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1812 <ul class="activity-tags">
1813 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1814 </ul>
1815 <a href="https://developer.apple.com/wwdc20/10118">
1816 <h4 class="no-margin-bottom activity-title">Create App Clips for other businesses</h4>
1817 </a>
1818
1819 <p class="activity-description">Create App Clips for table reservations, food ordering, and more on behalf of brands, businesses, or services that appear within your app. We’ll show you how you can deliver customized experiences for each business, offering them a unique look, invocation card, and icon — all within a single...</p>
1820 </section>
1821 </section>
1822 </section>
1823 <section class="grid activity">
1824 <section class="row">
1825 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1826 <a href="https://developer.apple.com/wwdc20/10120" class="activity-image-link">
1827 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3577/3577_wide_250x141_2x.jpg" data-hires="false" alt="">
1828 </a>
1829 </section>
1830 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1831 <ul class="activity-tags">
1832 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1833 </ul>
1834 <a href="https://developer.apple.com/wwdc20/10120">
1835 <h4 class="no-margin-bottom activity-title">Streamline your App Clip</h4>
1836 </a>
1837
1838 <p class="activity-description">App Clips are best when they provide an “in the moment” experience for people using them, like ordering your favorite refreshing beverage or paying for parking. We’ll share guidelines and best practices for building focused and consistent App Clips, show you how to streamline transaction...</p>
1839 </section>
1840 </section>
1841 </section></description>
1842 <pubDate>Mon, 22 Jun 2020 02:00:38 PDT</pubDate>
1843 </item>
1844 <item>
1845 <title>Design@WWDC</title>
1846 <link>https://developer.apple.com/news/?id=1n0fs0pi</link>
1847 <guid>https://developer.apple.com/news/?id=1n0fs0pi</guid>
1848 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/24131D5D-19D3-4015-8605-BC20B422F8F6/2048.jpeg" data-hires="false" alt=""></div><p>Learn techniques and strategies from Apple designers to create great apps, widgets, app clips, and experiences. Discover how to design for iPad and Mac Catalyst and make more advanced and adaptive layouts for your app, and take advantage of versatile interaction opportunities through the pointer, keyboard, and Apple Pencil. Find out more about the latest updates to SF Symbols. Explore design techniques for creating widgets, app clips, and great experiences on Apple Watch. And we’ll explain how you can design an app with privacy in mind by sharing how the designers of the Maps app approached redesigning interface elements to ensure privacy for the people using it.</p>
1849 <section class="grid activity">
1850 <section class="row">
1851 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1852 <a href="https://developer.apple.com/wwdc20/10206" class="activity-image-link">
1853 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3520/3520_wide_250x141_2x.jpg" data-hires="false" alt="">
1854 </a>
1855 </section>
1856 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1857 <ul class="activity-tags">
1858 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1859 </ul>
1860 <a href="https://developer.apple.com/wwdc20/10206">
1861 <h4 class="no-margin-bottom activity-title">Designed for iPad</h4>
1862 </a>
1863
1864 <p class="activity-description">Discover the building blocks for designing a great iPad app: Learn how to minimize use of modal interfaces and leverage the new sidebar to increase efficiency by streamlining navigation and facilitating powerful drag and drop interactions. See how to take advantage of iPad’s versatile interaction...</p>
1865 </section>
1866 </section>
1867 </section>
1868 <section class="grid activity">
1869 <section class="row">
1870 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1871 <a href="https://developer.apple.com/wwdc20/10172" class="activity-image-link">
1872 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3419/3419_wide_250x141_2x.jpg" data-hires="false" alt="">
1873 </a>
1874 </section>
1875 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1876 <ul class="activity-tags">
1877 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1878 </ul>
1879 <a href="https://developer.apple.com/wwdc20/10172">
1880 <h4 class="no-margin-bottom activity-title">Design great App Clips</h4>
1881 </a>
1882
1883 <p class="activity-description">App Clips offer fast, convenient ways for people to perform everyday tasks without needing to download or navigate your full app. We'll show you how to identify key elements from your iOS app that make up a great App Clip, design a smooth flow, work with notifications, and provide messaging...</p>
1884 </section>
1885 </section>
1886 </section>
1887 <section class="grid activity">
1888 <section class="row">
1889 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1890 <a href="https://developer.apple.com/wwdc20/10171" class="activity-image-link">
1891 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3395/3395_wide_250x141_2x.jpg" data-hires="false" alt="">
1892 </a>
1893 </section>
1894 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1895 <ul class="activity-tags">
1896 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1897 </ul>
1898 <a href="https://developer.apple.com/wwdc20/10171">
1899 <h4 class="no-margin-bottom activity-title">What's new in watchOS design</h4>
1900 </a>
1901
1902 <p class="activity-description">Great watchOS apps are simple and direct. Actions should be discoverable, predictable and relevant. This session covers effective strategies for displaying actions in your watchOS app, whether they are primary buttons that begin core tasks, or contextual actions that might be less commonly used but...</p>
1903 </section>
1904 </section>
1905 </section>
1906 <section class="grid activity">
1907 <section class="row">
1908 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1909 <a href="https://developer.apple.com/wwdc20/10103" class="activity-image-link">
1910 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3417/3417_wide_250x141_2x.jpg" data-hires="false" alt="">
1911 </a>
1912 </section>
1913 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1914 <ul class="activity-tags">
1915 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1916 </ul>
1917 <a href="https://developer.apple.com/wwdc20/10103">
1918 <h4 class="no-margin-bottom activity-title">Design great widgets</h4>
1919 </a>
1920
1921 <p class="activity-description">Widgets elevate timely information from your app to primary locations on iPhone, iPad and Mac. Discover the keys to designing glanceable widgets, developing a strong widget idea, and clearly communicating with content, color, sizing, layout, and typography.
1922
1923 If you'd like to learn more about the...</p>
1924 </section>
1925 </section>
1926 </section>
1927 <section class="grid activity">
1928 <section class="row">
1929 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1930 <a href="https://developer.apple.com/wwdc20/10162" class="activity-image-link">
1931 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3354/3354_wide_250x141_2x.jpg" data-hires="false" alt="">
1932 </a>
1933 </section>
1934 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1935 <ul class="activity-tags">
1936 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1937 </ul>
1938 <a href="https://developer.apple.com/wwdc20/10162">
1939 <h4 class="no-margin-bottom activity-title">Design for location privacy</h4>
1940 </a>
1941
1942 <p class="activity-description">When someone uses iPhone or iPad, they have control over how their location is shared with the apps they use — including sharing an approximate location rather than precise coordinates. This creates a more private experience across their device, and it impacts all apps that rely on location data...</p>
1943 </section>
1944 </section>
1945 </section>
1946 <section class="grid activity">
1947 <section class="row">
1948 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1949 <a href="https://developer.apple.com/wwdc20/10207" class="activity-image-link">
1950 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3375/3375_wide_250x141_2x.jpg" data-hires="false" alt="">
1951 </a>
1952 </section>
1953 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1954 <ul class="activity-tags">
1955 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1956 </ul>
1957 <a href="https://developer.apple.com/wwdc20/10207">
1958 <h4 class="no-margin-bottom activity-title">SF Symbols 2</h4>
1959 </a>
1960
1961 <p class="activity-description">SF Symbols make it easy to adopt high-quality, Apple-designed symbols created to look great with San Francisco, the system font for all Apple platforms. Discover how you can use SF Symbols in AppKit, UIKit, and SwiftUI. Learn how to work with SF Symbols in common design tools and how to use them in...</p>
1962 </section>
1963 </section>
1964 </section>
1965 <section class="grid activity">
1966 <section class="row">
1967 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1968 <a href="https://developer.apple.com/wwdc20/10640" class="activity-image-link">
1969 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3509/3509_wide_250x141_2x.jpg" data-hires="false" alt="">
1970 </a>
1971 </section>
1972 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1973 <ul class="activity-tags">
1974 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1975 </ul>
1976 <a href="https://developer.apple.com/wwdc20/10640">
1977 <h4 class="no-margin-bottom activity-title">Design for the iPadOS pointer</h4>
1978 </a>
1979
1980 <p class="activity-description">Bring the power of the pointer to your iPad app: We’ll show you how Apple's design team approached designing the iPadOS pointer to complement touch input, and how you can customize and refine pointer interactions in your app to make workflows more efficient and gratifying. Discover how the...</p>
1981 </section>
1982 </section>
1983 </section>
1984 <section class="grid activity">
1985 <section class="row">
1986 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
1987 <a href="https://developer.apple.com/wwdc20/10175" class="activity-image-link">
1988 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3823/3823_wide_250x141_2x.jpg" data-hires="false" alt="">
1989 </a>
1990 </section>
1991 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
1992 <ul class="activity-tags">
1993 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
1994 </ul>
1995 <a href="https://developer.apple.com/wwdc20/10175">
1996 <h4 class="no-margin-bottom activity-title">The details of UI typography</h4>
1997 </a>
1998
1999 <p class="activity-description">Learn how to achieve exceptional typography in your app’s user interface that enhances legibility, accessibility, and consistency across Apple platforms. Get up to speed on the latest advancements to the San Francisco font family including the move to variable fonts for accommodating optical...</p>
2000 </section>
2001 </section>
2002 </section>
2003 <section class="grid activity">
2004 <section class="row">
2005 <section class="column large-4 small-4 no-padding-top no-padding-bottom">
2006 <a href="https://developer.apple.com/wwdc20/10205" class="activity-image-link">
2007 <img class="actiity-image medium-scale" width="250" src="https://devimages-cdn.apple.com/wwdc-services/images/49/3771/3771_wide_250x141_2x.jpg" data-hires="false" alt="">
2008 </a>
2009 </section>
2010 <section class="column large-8 small-8 padding-left-small padding-top-small padding-bottom-small no-padding-top no-padding-bottom">
2011 <ul class="activity-tags">
2012 <li class="activity-tag event"><span class="smaller">WWDC20</span></li>
2013 </ul>
2014 <a href="https://developer.apple.com/wwdc20/10205">
2015 <h4 class="no-margin-bottom activity-title">Design with iOS pickers, menus and actions</h4>
2016 </a>
2017
2018 <p class="activity-description">Create iPhone and iPad apps that look great and help people move quickly and directly to the information they need. Discover how you can integrate menus into your app for quick access to actions and settings, and learn where and when you should use them in your app. We’ll also walk you through...</p>
2019 </section>
2020 </section>
2021 </section></description>
2022 <pubDate>Mon, 22 Jun 2020 00:00:08 PDT</pubDate>
2023 </item>
2024 <item>
2025 <title>Meet the new Apple Developer forums</title>
2026 <link>https://developer.apple.com/news/?id=obvo7r3i</link>
2027 <guid>https://developer.apple.com/news/?id=obvo7r3i</guid>
2028 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/261E420F-FFD8-4324-B5F2-2FDC583324F0/2048.jpeg" data-hires="false" alt=""></div><p>Whether you’re chatting with the community, asking questions, or getting clarifications from Apple engineers, the Apple Developer Forums are a great place to learn and share information about Apple platforms. </p>
2029 <p>The forums have a ton of great content, and we want to help you get the most out of your visit. Check out some tips and tricks to discover how you can post like a pro, up your reputation, quickly find the best answers, and more.</p><h3>Personalize your profile</h3><p>While anyone can view and browse the forums, you’ll need to sign in with your Apple ID if you want to ask or answer questions. Once you register, you can customize your profile with a preset avatar, add your location if you’re comfortable doing so, and share a link to one of your apps on the App Store. </p>
2030 <p>Just follow a few simple steps:</p>
2031 <ol>
2032 <li>Sign into your account.</li>
2033 <li>Go to your profile silhouette in the upper right corner of the screen.</li>
2034 <li>Click or tap on your silhouette.</li>
2035 <li>Click or tap <strong>Edit Profile</strong>.</li>
2036 </ol>
2037 <p>From there, you can change whatever you’d like to change, as well as choose to show information like how long you’ve been on the forums.</p><h3>Tag, you’re it</h3><p>The forums are organized by tags: When someone asks a new question, they can add up to four tags to help categorize their post. If you have a question about building watchOS apps with SwiftUI, for example, you might tag that post <strong>SwiftUI</strong> and <strong>watchOS</strong>, and people searching either topic would get it in their search results.</p>
2038 <p>Tags are listed on every post in the forums: You can view all of the most recent questions filed under a given tag by clicking or tapping on it — as well as check out any relevant technical documentation or information for that tag.</p><p><a href="https://developer.apple.com/support/forums-tags" class="icon icon-after icon-chevronright">See all available tags on the forums</a></p><h3>Search swiftly</h3><p>Available on every forums page, the search bar lets you look for questions, tags, and profiles. You can supercharge your search queries with a few quick tips — here’s how.</p>
2039 <p><strong>Keyword search</strong>
2040 Type in a word that’s three characters or longer and hit return to get question titles or descriptions related to the word (or words) you’ve typed.</p>
2041 <p><strong>Tag search</strong>
2042 Want to search for a tag? Type it in brackets, like so:</p>
2043 <p><code>[mac]</code></p><p>This query will return information on tags with the word “mac” in them. Type in the name of a specific tag, and you’ll go straight to the tag’s landing page, which contains a brief description of the tag and a list of recently tagged questions.</p>
2044 <p><strong>Combination searches</strong>
2045 If you know the name of a specific tag or multiple tags, you can combine them with a keyword to further refine your search. For example:</p>
2046 <p><code>[macOS][Beta] Catalyst</code></p><p>This search will return all questions that have “Catalyst” in their title or description and are tagged with both “macOS” and “Beta.” </p>
2047 <p><strong>Find a person</strong>
2048 Want to take a look at someone’s profile? Use the following:</p>
2049 <p><code>user:username</code></p><p>Replace “username” with the person’s username that you’re looking for to get a list of matching people (or, if you’ve entered an exact match, you’ll visit that person’s profile).</p><h3>Quickly spot Apple Recommended answers</h3><p>When browsing forum threads, you can use colors and shapes to quickly learn a bit more about that post. If using a mouse or trackpad, you can also hover your pointer over any box to get more information about that post.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/548ECE61-FFBB-4D8C-ACF2-A43944D3522A/2048.jpeg" data-hires="false" alt="Each question displays a color-coded square to indicate status. Blue squares are unsolved issues, green are solved, and green-bordered questions are solved with an Apple Recommended answer."><p class="typography-caption">Each question displays a color-coded square to indicate status. Blue squares are unsolved issues, green are solved, and green-bordered questions are solved with an Apple Recommended answer.</p></div><p>All unsolved questions appear with a <strong>blue</strong> box to the left of the thread title, with the number of replies inside that box.</p>
2050 <p>Once a question has been marked “solved,” that box turns <strong>green</strong>. And if an Apple Developer Forums admin has marked that answer “Apple Recommended,” the post’s green box gains a darker border around it.</p><hr><p><em><strong>Tip: Be a problem-solver</strong></em></p>
2051 <p><em>Our community has a wealth of knowledge of both Apple platforms and products. If you spot a question on the forums that you think you can answer, you can reply to that post with your suggested solution. If it helps the author of the post, they can mark your answer as the solution to their problem, and you get reputation points for providing the best answer. If one of the Apple staff members agrees, they may promote your answer to Apple Recommended — netting you even more reputation.</em></p><hr><p>When you're viewing threads themselves, you can spot answers marked as Apple Recommended along the left side of the screen: They’re represented with a black circular icon with a white Apple logo inside of it.</p><h3>Rep your reputation</h3><p>Great community members are key to a great experience — and on the Apple Developer Forums, you can help your community surface important questions and earn reputation through constructive participation in threads. Moderators may review forum posts to ensure a safe and secure platform for you and other developers. Once a post has been approved, however, the community can rank and promote posts to the front page or top of a tag.</p>
2052 <p>The forums use a points-based system: Participating in threads and constructively providing answers can help you gain points and privileges.</p>
2053 <p>Here are some of the perks you can gain on the forums for participating actively:</p>
2054 <ul>
2055 <li>When you solve problems, you get a “solved” badge on your profile that lists the number of questions you’ve solved.</li>
2056 <li>When you provide a solution that admins mark as “Apple Recommended,” you receive an “Apple Recommended” badge on your profile.</li>
2057 <li>You can report posts for being duplicates or spam. (Requires at least 50 points reputation)</li>
2058 <li>You can downvote questions or replies. (Requires at least 100 points reputation)</li>
2059 </ul>
2060 <p>Gain points by:</p>
2061 <ul>
2062 <li>Providing a reply that gets marked as “Apple Recommended”: 25 points</li>
2063 <li>Providing a reply that gets marked as "Solved" by the author: 15 points</li>
2064 <li>Asking a question that gets upvoted: 5 points</li>
2065 <li>Providing a reply that gets upvoted: 5 points</li>
2066 </ul>
2067 <p>Lose points by:</p>
2068 <ul>
2069 <li>Having an upvote rescinded for your question or reply: -5 points (neutralizes the previous upvote)</li>
2070 <li>Providing a question or reply that gets downvoted: -2 points</li>
2071 <li>Having spam or inappropriate/ abusive content that you posted removed: -15</li>
2072 </ul><h3>Share replies within a post</h3><p>Want to link out to a forum thread in Messages, email, or elsewhere? You can share the original post or any reply by going to a thread and tapping or clicking on the Share button, found inline to the right of the post.</p><h3>Post like a pro</h3><p>Ready to ask a question or share your thoughts? Here’s how to make your post look great.</p>
2073 <p><strong>Content is crucial</strong>
2074 When posting a question, consider what you can provide as background to help people understand your issue. Try to mention any limitations, assumptions, or simplifications. If you forget something or make a typo, you can edit your content for up to 15 minutes after posting.</p>
2075 <p><strong>Tag it up</strong>
2076 You can add up to four tags to any post. Pick tags that relate directly to your question, and consider whether you’d want to see your post listed within that tag if it were being made by someone else.</p>
2077 <p><strong>Mark it down</strong>
2078 The forums take advantage of the Markdown language to quickly and easily style your text without cumbersome formatting, including:</p>
2079 <ul>
2080 <li>Headers</li>
2081 <li>Ordered lists, tasks, and unordered lists</li>
2082 <li>Bold and italic text</li>
2083 <li>Links</li>
2084 <li>Code and syntax highlighting</li>
2085 <li>Blockquotes, code, and text quotes</li>
2086 </ul>
2087 <p><strong>Attach a log</strong>
2088 If your post would benefit from attaching log content, click or tap on the attachment icon in the text editor. Add a title, paste your log content, and click Add Text. This text will be linked in the body of your post. (Note: Image attachments are not currently supported.)</p>
2089 <p><strong>Mark as solved</strong>
2090 If someone provides you with a great answer on the thread, don’t forget to mark your question as solved by clicking or tapping on the checkmark icon next to the reply in question. You can only mark one reply as solved, and it can’t be unmarked. (You also can’t solve your own question.)</p><h3>Event excitement</h3><p>At WWDC20, the forums are offering several event-specific tags to explore.</p>
2091 <p>Everyone can view and read all WWDC-tagged posts. When you sign in with your Apple ID, you can also share your thoughts using the <strong>WWDC20 Community</strong> tag or request help around conference logistics with the <strong>WWDC20 Support</strong> tag. </p>
2092 <p>Additionally, if you’ve been a member of the Apple Developer Program or Apple Developer Enterprise Program since June 11, 2020 or you won the Swift Student Challenge, you can post on session-specific conference tags by signing in with the Apple ID associated with your developer account. Use these tags to ask questions about the technology within any given session and connect directly with Apple engineering teams. </p><hr><p><em>Have more thoughts on the forums? You can provide feedback by contacting Apple Developer Support or by creating a post and adding the <strong>Forums Feedback</strong> tag.</em></p><h3>Resources</h3><p><a href="https://developer.apple.com/forums/" class="icon icon-after icon-chevronright">Visit the Apple Developer Forums</a></p><p><a href="https://developer.apple.com/support/forums/" class="icon icon-after icon-chevronright">Learn more about the Apple Developer Forums</a></p></description>
2093 <pubDate>Fri, 19 Jun 2020 16:00:49 PDT</pubDate>
2094 </item>
2095 <item>
2096 <title>All-new Apple Developer Forums now available</title>
2097 <link>https://developer.apple.com/news/?id=06192020a</link>
2098 <guid>https://developer.apple.com/news/?id=06192020a</guid>
2099 <description><p>The Apple Developer Forums have been completely redesigned, so they’re more engaging to use, automatically surface the most relevant content, offer simpler navigation, and make it easier to categorize and search for content. Connect with fellow developers and Apple engineers as you give and receive help on a wide variety of development topics, from implementing new technologies to established best practices. And during WWDC20, the forums will be a central place to engage with the community and over 1,000 Apple engineers, discuss new technologies, and get your questions answered.</p>
2100 <p><a href="https://developer.apple.com/forums/">Visit the Apple <span class="icon icon-after icon-chevronright nowrap">Developer Forums</span></a></p></description>
2101 <pubDate>Fri, 19 Jun 2020 11:12:59 PDT</pubDate>
2102 </item>
2103 <item>
2104 <title>The developer’s guide to the Human Interface Guidelines</title>
2105 <link>https://developer.apple.com/news/?id=yyz8lqtw</link>
2106 <guid>https://developer.apple.com/news/?id=yyz8lqtw</guid>
2107 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/707766E0-F97F-42BF-93B1-3A3956D8C752/2048.jpeg" data-hires="false" alt=""></div><p>The Human Interface Guidelines — “HIG” for short — offers in-depth information and UI resources for all of Apple’s platforms, including specific technology areas. The HIG is full of information for designers that can help them create more compelling, intuitive, and beautiful experiences and design better apps. </p>
2108 <p>If you’re an engineer, the HIG can be equally useful as a guide during the entire development process. It offers a high-level and comprehensive view of key UI elements and associated APIs, and best practices to help you implement features into your app.</p>
2109 <p>We’ve put together a few common scenarios to show you how the HIG can help you throughout app design and development.</p><h3>Where to start</h3><p>The HIG is organized by platforms and technologies, each with its own index. If you’ve never explored the HIG before, consider starting with the platform you’re currently developing for.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/91F5A51B-A232-4F2F-B597-6F11D34517F6/2048.jpeg" data-hires="false" alt="Explore design principles for each platform."></div><p>Each platform is broken up into multiple sections that cover topics like app architecture, interaction, views, controls, and system capabilities. If you’d like to implement custom UI elements for your Apple Watch app, for example, you could reference the SpriteKit and SceneKit page of the System Capabilities section and gain perspective on some of the user experience considerations of implementing textured and 3D imagery in your app, as well as find a link to the WKInterfaceSCNScene and WKInterfaceSKScene framework over on the Developer Documentation website. </p><h3>“I want to include a new UI element.”</h3><p>The HIG offers guidance for all interface elements, with a focus on the element’s intended use. When including any new piece of UI into your app, consider using the HIG to review how you should present the intended element on screen. Explore recommendations, learn about the rationale for styling, and understand the various ways in which you can achieve a presentation that expresses your brand and feels familiar to people who use your app. </p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/495EDD2C-180E-45DB-B055-3994039F4D81/2048.jpeg" data-hires="false" alt="Displaying the difference between an iPhone screen that provides safe areas, margins, and a rounded button versus one with a flat button that goes beyond the safe areas and margins"></div><p>Even for something as simple as adding a button to your interface, the HIG provides recommendations for how to place, label, and align it within your app — along with guidance on presenting and using these elements. </p><h3>“I want to introduce a new feature into my app.”</h3><p>When Apple releases new features, you can often find additional insight and best practices around adoption within the HIG.</p><p>Say that you add Augmented Reality (AR) content to your app. Inside the HIG, you can find information on AR interactions and address common problems with interface patterns. You can learn how to guide people into an AR experience, for example, or how people expect to interact with real and virtual content on screen. This guidance can also help you have discussions with your design and development teams as you plan out feature inclusion, and lead to better implementation.</p><h3>Get started with Apple design elements</h3><p>Apple’s ever-growing resources library makes it easy to explore the design side of our platforms. These downloads are great for prototyping concepts, finding specifications, and learning the language of design elements.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/C4956C5B-2DC0-4C61-8B8D-DD3F6BB7ED21/2048.jpeg" data-hires="false" alt="The Apple Design Resources contain templates and libraries that are filled with ready-to-use iOS elements including toolbars, tab bars, buttons, and more."></div><p>There are templates and libraries for Adobe Photoshop, Adobe XD, Sketch, and Keynote, and each of these is filled with ready-to-use iOS UI elements — toolbars, tab bars, buttons, and much more. You can also explore resources like the SF Symbols app, which contains thousands of symbols in a wide range of weights and scales. These symbols integrate nicely with Xcode, they're simple to align with text labels, and they support accessibility features like Dynamic Type and Bold Text.</p><h3>The helpful HIG</h3><p>The HIG is one of the best places you can start when you’re making design and engineering decisions about your app. It lays out the principles that define design across all Apple platforms, and it makes recommendations to help you anticipate and implement what most people want when using software.</p>
2110 <p>Best of all, the HIG is continually updated to reflect changes and improvements across Apple’s platforms. So you can count on implementing features that keep pace with people’s evolving expectations. </p><h3>Resources</h3><p><a href="https://developer.apple.com/design/human-interface-guidelines/" class="icon icon-after icon-chevronright">Human Interface Guidelines</a></p><p><a href="https://developer.apple.com/design/resources/" class="icon icon-after icon-chevronright">Apple Design Resources</a></p><p><a href="https://developer.apple.com/design/human-interface-guidelines/sf-symbols/overview/" class="icon icon-after icon-chevronright">Learn more about SF Symbols</a></p></description>
2111 <pubDate>Fri, 19 Jun 2020 10:55:05 PDT</pubDate>
2112 </item>
2113 <item>
2114 <title>Swift Student Challenge winners announced</title>
2115 <link>https://developer.apple.com/news/?id=06162020a</link>
2116 <guid>https://developer.apple.com/news/?id=06162020a</guid>
2117 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/41C86638-7B02-41FF-88A6-561B4704CB9B/2048.jpeg" data-hires="false" alt="Memoji developer sitting behind MacBook Pro"></div><p>The WWDC20 Swift Student Challenge gave students around the world the opportunity to showcase their love of coding by creating an incredible Swift playground. Starting today, developers who submitted their applications can find out their status by signing in to the Challenge website with the Apple&nbsp;ID they used to submit their application. Winners will receive an exclusive WWDC20 jacket and pin set, be able to request WWDC20 lab appointments, and be able to post about WWDC20 content on the all-new Apple&nbsp;Developer&nbsp;Forums.</p>
2118 <p>With so many incredible applications this year, focussing on everything from productivity to the environment and social action, we want to congratulate all 350 winners from 41 countries.</p>
2119 <p><a href="https://www.apple.com/newsroom/2020/06/apples-wwdc20-swift-student-challenge-winners-determined-to-shape-the-future/">Learn more about some of <span class="icon icon-after icon-chevronright nowrap">this year’s&nbsp;winners</span></a></p></description>
2120 <pubDate>Tue, 16 Jun 2020 19:55:19 PDT</pubDate>
2121 </item>
2122 <item>
2123 <title>Full stream ahead.</title>
2124 <link>https://developer.apple.com/news/?id=o4a51gng</link>
2125 <guid>https://developer.apple.com/news/?id=o4a51gng</guid>
2126 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/2F35372F-A6CE-4F07-AA65-A24F033E709E/2048.jpeg" data-hires="false" alt="Memoji developers sitting behind MacBook Pro"></div><p>It’s almost time for an all-new WWDC experience — starting with the Special Event Keynote from Apple Park on June 22 at 10 a.m. PDT. Get all the latest details for 1-on-1 developer labs, the all-new forums, and the Apple Design Awards. Update to the latest version of the Apple Developer app for iPhone, iPad, Apple TV, and Mac, now available on the App Store.</p><p><a href="https://developer.apple.com/wwdc/">View the <span class="icon icon-after icon-chevronright nowrap">WWDC website</span></a></p><p><a href="https://apps.apple.com/us/app/apple-developer/id640199958">Download <span class="icon icon-after icon-chevronright nowrap">the app</span></a></p></description>
2127 <pubDate>Mon, 15 Jun 2020 17:18:59 PDT</pubDate>
2128 </item>
2129 <item>
2130 <title>Welcome to the Apple Developer app</title>
2131 <link>https://developer.apple.com/news/?id=cit41bl3</link>
2132 <guid>https://developer.apple.com/news/?id=cit41bl3</guid>
2133 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/9016B61B-3E8D-4153-BEAD-27021EEFEC16/2048.jpeg" data-hires="false" alt="Apple developer app icon on a blue background"></div><p>Say hello to the updated Apple Developer app. Whether you’re a computer science student in China or a veteran UI designer in Germany, the Developer app can help you make truly great apps for Mac, iPhone, iPad, Apple Watch, and Apple TV.</p>
2134 <p>Learn about new Apple technologies you can adopt in your app, best practices for implementation, and tips for tuning and optimization. Design beautiful apps that will scale across all devices. See how developers on the App Store have approached and integrated new distribution models. Find inspiration in stories from the Apple developer community. And enjoy all that the Worldwide Developers Conference has to offer.</p><h3>Instant expertise</h3><p>The Discover tab is regularly updated to help you find timely, relevant, and actionable information. You can catch up on the latest developer news, get recommendations on implementing new features, learn about inspiring engineers and designers in the Apple developer community, and watch videos about Apple technologies to help you build even more powerful and innovative apps.</p><h3>Full stream ahead</h3><p>The Developer app is the heart of this year’s exciting, virtual WWDC experience. Join millions of developers from around the world starting June 22 for an in-depth look at the future of Apple platforms, and watch more than 100 technical and design-focused videos by Apple engineers and designers on the WWDC tab.</p><h3>Find what you seek </h3><p>Want to find an older article, story, or WWDC session? Check out the Browse tab to search through the archive for videos, articles, and more. </p><h3>Let’s go</h3><p>Over the last 30 years, developers around the world have been creating amazing apps that entertain, influence culture, and change lives. The Apple Developer app helps everyone stay current and learn about the newest technologies and techniques to make their apps even better.</p></description>
2135 <pubDate>Mon, 15 Jun 2020 12:05:28 PDT</pubDate>
2136 </item>
2137 <item>
2138 <title>How to test your app on beta software</title>
2139 <link>https://developer.apple.com/news/?id=kdeag05s</link>
2140 <guid>https://developer.apple.com/news/?id=kdeag05s</guid>
2141 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/9BAD0578-940F-4633-8010-FA0F1637CFE4/2048.jpeg" data-hires="false" alt="The word beta on a white button with a blue-green background"></div><p>Apple regularly provides platform updates to add new features, fix bugs, and continue to improve the experience for everyone who uses our products. As part of that process, we offer beta software for developers as well as a Public Beta Software Program. This lets developers test apps on upcoming software, address pesky bugs, and provide information to engineering teams around upcoming software changes and improvements.</p>
2142 <p>While we encourage people to only install beta software on a secondary device, you may still find that some of your customers want to run your app while using a beta version of an operating system. Here are some of the ways to ensure your app’s stability for those people, get feedback from them, and provide some of your own to Apple’s engineering teams.</p><h3>Test early, test often</h3><p>When new beta software is released, we recommend downloading it as soon as possible to test with your existing apps. Not only is it an opportunity to ensure your app continues to work well, but it also puts you in a great position to experiment with our latest APIs and features.</p>
2143 <p>The earlier you test, the earlier you can identify possible bugs or issues and flag them to Apple engineers. It’s also your best opportunity to register feedback around new features and influence future operating system updates.</p><h3>Triage the trouble</h3><p>Sometimes, changes to an API or operating system updates in an early beta may seriously affect your app. This is never a great feeling, but don’t panic! Chances are, many of your fellow developers are in the same boat. First, do a bit of triage to identify the problem. Is this a system issue, or a latent bug in your own code?</p>
2144 <p>To troubleshoot, isolate your issue by creating a minimally-reproducible case in a new Xcode project. When you only focus on the code that causes the bug, the problem can often be easier to find — and this also gives you a smaller project that you can share with others to troubleshoot or attach to a bug report.</p>
2145 <p>If you find that the beta has revealed an existing bug in your code, you may be able to fix it immediately and provide an update that makes your app more stable for both people on production as well as those running beta software.</p><hr><p><em>Sometimes you may be able to isolate the code in such a way that you can reproduce the issue on shipping software. If that’s the case, and if you need help fixing it, submit a <a href="https://developer.apple.com/support/technical/">Technical Support Incident</a> for code-level support.</em></p><hr><p>If there’s an issue with the beta itself that’s preventing you from providing a fix, it’s time to file some feedback. Even if you think others have filed this bug before, you should always send in a report: Your reproduction steps and data could be the key that unlocks the problem, or pushes the issue to a higher level of prioritization.</p><p><a href="https://developer.apple.com/news/?id=vvrgkboh" class="icon icon-after icon-chevronright">How to file great bug reports</a></p><p>Amidst all the work you’re already doing on your app, you may be tempted to post a blanket statement to your website or within your app that you aren’t providing support for people who use beta software. We strongly discourage this approach: Your customers may be fellow developers or need to run beta software for another reason, and deterring them from running your app may make them feel shut out or lose trust in your software. Instead, if you’re running into a serious problem on a beta that may make for a sub-par experience that you haven’t been able to address in an update, consider sharing your issue on your website and social media channels, as well as the steps you’re taking to address it.</p><h3>Foster feedback</h3><p>Though people running beta software on their devices can’t leave reviews for your app in the App Store, they still might have valuable feedback for you. Consider creating an easy way for your customers to provide bug reports — they may find something you’ve missed!</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/B6A4A139-C806-438D-9928-C186A25E20BE/2048.jpeg" data-hires="false" alt="Consider offering a way for people to submit feedback or bug reports inside your app. Carrot Weather provides two options for people inside the app’s settings screen."><p class="typography-caption">Consider offering a way for people to submit feedback or bug reports inside your app. Carrot Weather provides two options for people inside the app’s settings screen.</p></div><h3>Connect with the community</h3><p>Are you struggling to fix an issue brought on by a beta update? Consider reaching out to our broader developer community and post to the Apple Developer Forums. Your question may be able to help others who may be struggling with similar challenges.</p><p><a href="https://developer.apple.com/news/?id=obvo7r3i" class="icon icon-after icon-chevronright">Meet the new Apple Developer forums</a></p><p><a href="https://forums.developer.apple.com/welcome" class="icon icon-after icon-chevronright">Explore the Apple Developer Forums</a></p><h3>Future-proof your app</h3><p>Outside of the beta release cycle, it’s worth taking a look at your project and any server-side code you maintain to see if there are ways you can improve and future-proof aspects of your app.</p>
2146 <ol>
2147 <li>Can you fix or remove any additional warnings in your Xcode project?</li>
2148 <li>Do you have any code that relies on a specific OS version or deprecated API that you update or make OS-agnostic?</li>
2149 <li>Are you using any third-party frameworks that rely on deprecated code?</li>
2150 <li>Can you improve your app’s error handling to continue gracefully when encountering unexpected issues?</li>
2151 </ol><hr><h3>Resources</h3><p><a href="https://developer.apple.com/download/" class="icon icon-after icon-chevronright">Beta Software Downloads</a></p><p><a href="https://beta.apple.com/sp/betaprogram/" class="icon icon-after icon-chevronright">Apple Beta Software Program</a></p><p><a href="http://feedbackassistant.apple.com" class="icon icon-after icon-chevronright">Submit feedback</a></p></description>
2152 <pubDate>Mon, 15 Jun 2020 06:00:59 PDT</pubDate>
2153 </item>
2154 <item>
2155 <title>Here’s the lineup.</title>
2156 <link>https://developer.apple.com/news/?id=6112020</link>
2157 <guid>https://developer.apple.com/news/?id=6112020</guid>
2158 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/2F27C894-6A54-4ED1-B010-7A51FE3AA7D4/2048.jpeg" data-hires="false" alt="Three Memoji developers sitting behind MacBook Pro"></div><p>WWDC20 will bring together millions of Apple developers around the world to gain early access to the future of Apple platforms and engage with Apple engineers, from June 22 to 26. Learn about the Special Event Keynote, Platforms State of the Union, over 100 engineering sessions, one-on-one developer labs, and more.</p><p><a href="https://developer.apple.com/wwdc/">Learn more <span class="icon icon-after icon-chevronright nowrap">about WWDC20</span></a></p></description>
2159 <pubDate>Thu, 11 Jun 2020 19:26:42 PDT</pubDate>
2160 </item>
2161 <item>
2162 <title>Enhance bug reports with debug profiles and logging</title>
2163 <link>https://developer.apple.com/news/?id=2o2p68bq</link>
2164 <guid>https://developer.apple.com/news/?id=2o2p68bq</guid>
2165 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/F692F1DE-4747-4FB1-8C7B-26E3AE01EA25/2048.jpeg" data-hires="false" alt="Gear icons on a pink background"></div><p>When you file bug reports through Apple’s Feedback Assistant, you’re helping flag issues, improve our platforms, and make the experience better for developers and customers alike. </p>
2166 <p>You can supply more information about bugs you come across when you provide a sysdiagnose from your device. Sysdiagnoses contain logs that include additional information gathered from apps and frameworks that you can submit as part of your bug report. They can be a crucial part of the bug-solving process, especially for troubleshooting certain problems.</p>
2167 <p>That said, a sysdiagnose can contain a lot of information, and you can help the engineers triaging your issue by providing some additional context. That's where Apple’s <a href="https://developer.apple.com/bug-reporting/profiles-and-logs/">Profiles and Logs</a> page comes in: It provides supplemental instructions when reporting an issue with specific frameworks. If you think you know which framework is causing the problem, read its bug reporting and logging instructions: You may be able to provide additional information that can help make your report more actionable — like detailing the song that was playing and the date and time you saw the bug.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/08604D72-E572-477C-A0E9-E5C2F22AAFFE/2048.jpeg" data-hires="false" alt="Visit the Profiles and Logs section of the Apple Developer website to find out more about filing supplemental information for a bug."><p class="typography-caption">Visit the Profiles and Logs section of the Apple Developer website to find out more about filing supplemental information for a bug.</p></div><p>Sometimes, a sysdiagnose is not enough, even with supplemental instruction. For those issues, debug profiles help capture specific details within a technology or framework that can aid engineers in diagnosing the problem. To install a debug profile, download it to your device and follow the instructions to capture the requested information.</p>
2168 <p>So, the next time you go to file a new piece of feedback, please add a sysdiagnose or logging generated from a debug profile to your report. It can help engineers begin tracking down even the trickiest of bugs, and it increases the likelihood of your issue being fixed. As always, the sooner you submit a new problem — and the more information you provide — the higher likelihood you have of getting it resolved in a future software version. </p>
2169 <p>This is especially crucial when filing bugs against beta software, as prioritizations around fixes have to be made in early seeds. If you file a detailed bug with logs and a clear reproduction path, you have a much better chance of it being prioritized than a bug with no additional information.</p><hr><h3>Resources</h3><p><a href="https://developer.apple.com/news/?id=ywd3upss" class="icon icon-after icon-chevronright">File effective bug reports</a></p><p><a href="https://developer.apple.com/bug-reporting/profiles-and-logs/" class="icon icon-after icon-chevronright">Profiles and Logs</a></p></description>
2170 <pubDate>Wed, 10 Jun 2020 21:47:16 PDT</pubDate>
2171 </item>
2172 <item>
2173 <title>How to file great bug reports</title>
2174 <link>https://developer.apple.com/news/?id=vvrgkboh</link>
2175 <guid>https://developer.apple.com/news/?id=vvrgkboh</guid>
2176 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/5A53F2BA-53C6-45BB-869D-48FCD5DA01A3/2048.jpeg" data-hires="false" alt="Feedback assistant icon on a purple background"></div><p>Bugs are an inevitable part of the development process. Though they can be frustrating to bump up against, you can help squash these sorts of problems quickly by identifying the issue you’re running into, reproducing it, and filing a bug report. At Apple, we provide an app and website called <a href="http://feedbackassistant.apple.com">Feedback Assistant</a> for logging issues with Apple’s products or software.</p>
2177 <p>You should always file feedback for any bugs you find while developing on Apple’s platforms; after all, we can’t fix problems that we don’t know about. But how can you be sure that the information you provide is helpful for triaging the issue, rather than a bug-solving dead end? Here are some of our top tips for making sure your bug report is clear, actionable, and — most importantly — fixable.</p><h3>Step by step</h3><p>Whenever you log a new bug report, be clear and descriptive. Whether you’re providing specific feedback around a bug you’re running into or general feedback, describe your issue in detail.</p>
2178 <p>This starts with a clear title that describes both the issue and the inciting factor. “Calendar events are missing” tells the screener that there’s an issue with Calendar events, but not how or why. In contrast, “Calendar events on macOS 10.15.4 are missing after creating a quick event” provides more detail at a glance and potentially helps identify duplicate bugs sooner. </p><hr><p><em>Tip: It’s often helpful for bug screeners to understand how issues are affecting app development. If you identify a problem while developing your app, include the name and version of your app in both the title and description field — even if you can reproduce the problem in a sample project — and add a link to your App Store record or a TestFlight build.</em></p><hr><p>When writing up your problem, describe each step thoroughly — it’s often helpful to pretend that whoever reads it has never seen the app or system you’re writing about before. For example, if you were to write “When I create an event in Calendar, it disappears in a moment,” the screener lacks enough detail to reproduce the issue. Are you creating a Calendar event through the Quick Event button, or are you dragging to add a new event? How long is a moment? Did the event disappear after multitasking, or did you remain in the app? </p>
2179 <p>Whenever a bug screener has to pause and consider this kind of question, it reduces the likelihood that your problem can get fixed quickly. Instead, think about ways you can describe your bug in detail, like so: </p>
2180 <p><em>1. Click Quick Event button in the Calendar app.</em>
2181 <em>2. Fill out an event with any title.</em>
2182 <em>3. Hit Return.</em></p>
2183 <p><em>Actual Results: The event appears in the right place in my calendar but then disappears.</em></p>
2184 <p><em>Expected Results: The Calendar event should appear and stay on my calendar.</em></p>
2185 <p>After filling out your reproduction steps and expected result, it’s also worth considering additional factors that could influence the problem. Are you signed into iCloud? Do you have any Accessibility settings turned on? Does the issue reproduce in a similar fashion in other places around the OS? The more questions you can answer in the initial report, the faster someone reading it can triage it effectively and get it over to the right team or person for a fix.</p><h3>Add some visuals</h3><p>If you can reproduce the bug and capture video or a screenshot while it’s happening, this information can be invaluable to people for troubleshooting the issue. A screen recording can also help capture details that you may not have thought to provide in the description field. If your problem involves an issue with the UI, you should always include visuals. </p><h3>Log the crash</h3><p>Unfortunately, not all bugs are reproducible or have easy-to-follow steps. For trickier cases, consider providing logging information like a sysdiagnose: If you’re filing a bug on your iPhone or iPad, you can use the Feedback Assistant app to capture one automatically. If filing a bug via Apple’s web portal, you can install profiles that can help you manually gather a sysdiagnose.</p>
2186 <p>You can also provide any additional logging relevant to the issue. For example, if you’re experiencing a crash, you can include your app’s crash logs. If you’re reporting a performance regression, you can include an Instruments Trace on iOS or iPadOS, or a Sample on macOS.</p><p><a href="https://developer.apple.com/news/?id=2o2p68bq" class="icon icon-after icon-chevronright">Enhance bug reports with debug profiles and logging</a></p><h3>Create a sample project</h3><p>Running into an issue while developing an app? Consider isolating the problem into a small sample project that compiles. Not only can it help you narrow down the specific bug you’re facing, but it’s one of the easiest ways for Apple’s bug screeners and engineers to triage the offending problem. If you can’t produce a sample project, sample code is also helpful — any additional information that can help narrow down the issue is valuable.</p><h3>Escalate your report</h3><p>If you’re a paid member of the Apple Developer Program, Enterprise Program, or MFi Program and you’re having a technical issue with one of Apple’s platforms on a production release, you should consider filing a Technical Support Incident. This is a request for code-level support for Apple frameworks, APIs, and tools when you cannot fix a bug, have trouble implementing a specific technology, or have other questions about your code.</p><p><a href="https://developer.apple.com/support/technical/" class="icon icon-after icon-chevronright">Request technical support</a></p><h3>Resources</h3><p><a href="https://developer.apple.com/bug-reporting/" class="icon icon-after icon-chevronright">Learn more about Feedback Assistant</a></p><p><a href="https://beta.apple.com/sp/betaprogram/privacy" class="icon icon-after icon-chevronright">Learn more about our privacy policy when filing bugs with Feedback Assistant</a></p></description>
2187 <pubDate>Tue, 09 Jun 2020 09:17:30 PDT</pubDate>
2188 </item>
2189 <item>
2190 <title>New Resources Available for Password Manager Apps</title>
2191 <link>https://developer.apple.com/news/?id=06052020a</link>
2192 <guid>https://developer.apple.com/news/?id=06052020a</guid>
2193 <description><p>Apple has created a new open source project to help developers of password managers collaborate to create strong passwords that are compatible with popular websites. The Password Manager Resources open source project allows you to integrate website-specific requirements used by the iCloud Keychain password manager to generate strong, unique passwords. The project also contains collections of websites known to share a sign-in system, links to websites’ pages where users change passwords, and more.</p><p><a href="https://github.com/apple/password-manager-resources">View Password <span class="icon icon-after icon-chevronright nowrap">Manager Resources</span></a></p></description>
2194 <pubDate>Fri, 05 Jun 2020 16:44:52 PDT</pubDate>
2195 </item>
2196 <item>
2197 <title>Meet the developer: Christopher Gray</title>
2198 <link>https://developer.apple.com/news/?id=9cvnv50x</link>
2199 <guid>https://developer.apple.com/news/?id=9cvnv50x</guid>
2200 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/0B0CF5DF-678E-4FE1-95DA-7B1E66CE48CE/2048.jpeg" data-hires="false" alt="How Christopher Gray’s app, Scholly, helps kids go to college."><p class="typography-caption">How Christopher Gray’s app, Scholly, helps kids go to college.</p></div><p>As a teenager in Alabama, Christopher Gray was a straight-A student, community volunteer, and relentless dreamer. He was also the son of a single mother who’d lost her job to the recession. At times during his high school years, they were homeless. </p>
2201 <p>With graduation looming, Gray came to see college as a necessity, but one priced like a luxury item. Lacking internet access at home, he searched for scholarships at the library, one hour at a time, in keeping with the posted screen limits. He often wrote 500-word application essays on his phone — not a smartphone but a chunky 2008 model with a tiny keyboard. He did this for seven months.</p><p>“I saw a problem and I tried to fix it,” he says from a Hollywood office populated by a handful of coworkers and one very large dog named Milk. “My grandma always told me, ‘You have to work. You have to ignore whatever is going on around you, put your head down, and focus.’”</p>
2202 <p>When his first scholarship check arrived, he sensed his efforts paying off. By the time the last one came in, Gray had amassed $1.3 million.</p>
2203 <p>He used the money to study finance and entrepreneurship at Drexel University (and to cover his living expenses for all four years). But the process nagged at him. How, he thought, could it be so disjointed? How many students had it discouraged from going or even applying to college?</p>
2204 <p>“I realized there’s all this money looking for students,” he says, “and all these students looking for money.” </p>
2205 <p>Enter Scholly. Founded at Drexel by Gray and fellow students Nick Pirollo and Bryson Alef, it launched in 2015 with the simple goal of matching students with available scholarships: Input your age, interests, and other demographic information and Scholly would find potential fits.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/02CF36D1-E2DD-460F-9843-E62E663F9ECA/2048.jpeg" data-hires="false" alt="No matter what your interests are, Scholly can help find money to support them."><p class="typography-caption">No matter what your interests are, Scholly can help find money to support them.</p></div><p>The idea, Gray says, was born from his desire to help others do what he did. “I got some scholarships because I was the only one who applied. A lot of times, students just don’t know they exist.”</p>
2206 <p>More good news was to come. His story soon reached the producers of Shark Tank, and the rest is Scholly history: Gray’s 60-second pitch resulted in a near-instant deal with Lori Greiner and Daymond John—and some viral offscreen dramatics. (Greiner offered Gray his requested $40,000 without even asking questions. “I don’t care how we monetize,” she said, prompting a minor meltdown in which a number of sharks basically stormed out of the studio.)</p><blockquote class="article-quote"><p>I realized there’s all this money looking for students, and all these students looking for money.</p></blockquote><p>Scholly Search is the classic example of a simple idea that exploded. Today, it has roughly 3 million users who have landed more than $110 million in scholarships. </p>
2207 <p>Actor and activist Jesse Williams is a member of Scholly Search’s board; Chance the Rapper has appeared at its Chicago-based initiatives. The company has relocated from Philadelphia to California, into a sprawling corner office with mountain views.</p><p>“The amounts are compelling,” Gray says, “but what’s just as powerful are the stories of people who get, like, the last $3,000 they need to enroll. I always wear my Scholly sweatshirt when I travel, and people come up to me and say, ‘Oh wow, you’re Scholly!’ Not ‘Oh, you’re Chris’ but ‘You’re Scholly!’ And they’ll tell me their story. It’s really powerful to experience that, because, OK, I was a homeless kid.”</p>
2208 <p>Still in his midtwenties, Gray has been named to Forbes’ “30 Under 30” list for social entrepreneurship and Oprah Winfrey’s “SuperSoul 100” (who are basically her favorite people). He’s spoken at the Obama Foundation’s My Brother’s Keeper summit and received the 2018 Smithsonian American Ingenuity Award.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/B931104E-0CDE-4C7F-9103-51E90E24146E/2048.jpeg" data-hires="false" alt="Christopher Gray’s work got the attention of Barack Obama, Oprah Winfrey, and Jesse Williams."><p class="typography-caption">Christopher Gray’s work got the attention of Barack Obama, Oprah Winfrey, and Jesse Williams.</p></div><p>In recent years, Gray has set about evolving Scholly into a full-service education app. Scholly Math is an AI-powered standalone app that helps students solve tricky problems (while showing its work, of course). There’s also Scholly Editor, a web-based proofreader. “We originally created it to help with essays,” Gray says, “but a lot of kids are using it to get better grades and learn English, especially in underserved schools.”
Mostly, he hopes to continue helping students reach dreams that circumstances might have once deemed impossible.
“This good thing happened to me,” he says, “and now maybe I can help people who otherwise may not be able to help themselves.”</p><hr><p><em>Originally published on the App Store.</em></p></description>
2209 <pubDate>Thu, 04 Jun 2020 10:26:43 PDT</pubDate>
2210 </item>
2211 <item>
2212 <title>Meet the developer: Shine</title>
2213 <link>https://developer.apple.com/news/?id=iqeu33mh</link>
2214 <guid>https://developer.apple.com/news/?id=iqeu33mh</guid>
2215 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/467E4D0D-435A-4678-AA39-FB8116DE3BB4/2048.jpeg" data-hires="false" alt="The secret of their self-care app’s success? Staying authentic."><p class="typography-caption">The secret of their self-care app’s success? Staying authentic.</p></div><p>Before creating <em>Shine</em>, a self-care app that encourages you to “accept who you are today,” co-CEOs Marah Lidey and Naomi Hirabayashi set a few ground rules.</p>
2216 <p>“We’re not going to assume you’re working,” says Lidey. “We’re not going to assume you have or don’t have kids or that you want kids. We’re not going to assume anything about your gender.” </p>
2217 <p>Anything that felt “preachy, pricey, or presumptuous” was off the table too. </p>
2218 <p>That foundation worked. More than 4 million users have signed up for <em>Shine</em>, with nearly one in three reviews describing the app as “life-changing,” according to Hirabayashi.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/9069CAB4-2515-4B4E-ACD4-D04E864C1B1D/2048.jpeg" data-hires="false" alt="Shine co-CEO Marah Lidey"><p class="typography-caption">Shine co-CEO Marah Lidey</p></div><p>How do Lidey and Hirabayashi know their audience so well? They’re part of it — and have been for a long time.
The duo met in 2011 while executives at <em>DoSomething.org</em>, a nonprofit that helps young people transform their communities. The two started getting coffee, then lunch, then after-work drinks, creating what Lidey calls a “safe space to process the tough stuff.”
Over time, they came to see the “tough stuff” in a new light. “What we were going through wasn’t weird — it was human,” says Lidey.
Shine grew out of their desire to make that safe space bigger, to help others with issues ranging from building a credit score to dealing with giving feedback to employees.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/68535756-CCBF-4F94-BCCC-63B2C57190B8/2048.jpeg" data-hires="false" alt="Check in with Shine via its chat interface and the app will serve up articles based on your responses (front). Check out the app’s Quick Hitters for talks tailored to different times of day."><p class="typography-caption">Check in with Shine via its chat interface and the app will serve up articles based on your responses (front). Check out the app’s Quick Hitters for talks tailored to different times of day.</p></div><p>The app launched in 2018 as an “accessible but aspirational” text-based coaching program. Its tone is chatty and friendly, like “the friend that has a psych degree,” says Hirabayashi. (Shine’s actual psych cred comes from therapist and corporate coach Anna Rowley, who helped develop the curriculum.) Using a chat-based interface, the app helps you see how you see yourself. (Hirabayashi, for her part, is a “Caring Critic” prone to “extending compassion outward, but often struggling to bring that compassion home,” she says.)</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/4116B84D-F165-4100-B0A1-D6E98426BC15/2048.jpeg" data-hires="false" alt="Shine co-CEO Naomi Hirabayashi"><p class="typography-caption">Shine co-CEO Naomi Hirabayashi</p></div><p>Today the app is rich with features. <em>The Daily Shine</em> is a podcast that Hirabayashi describes as a “secular sermon.” Challenges are short, multiday audio courses on specific goals like “Be More Direct” and “Let Yourself Have More Fun.” “Nightcap” is a collection of sleep stories that double as winking retellings of 2000s rom-coms (“The Devil Wears Pajamas”). “They’re meant to be boring and also a little cheeky,” Lidey says.
Through all the growth, the pair’s goal has remained the same. The idea isn’t to solve every problem, but to adjust how people approach them, says Hirabayashi. “What’s beautiful is that the pressure is to be authentic, not perfect.”</p><hr><p><em>Originally published on the App Store.</em></p></description>
2219 <pubDate>Wed, 03 Jun 2020 09:19:29 PDT</pubDate>
2220 </item>
2221 <item>
2222 <title>Meet the developer: Andre Haddad</title>
2223 <link>https://developer.apple.com/news/?id=afevex77</link>
2224 <guid>https://developer.apple.com/news/?id=afevex77</guid>
2225 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/FC1411E9-E930-43C5-8780-C2FA94B1D068/2048.jpeg" data-hires="false" alt="Once a refugee, Haddad now runs the high-end car-rental app Turo."><p class="typography-caption">Once a refugee, Haddad now runs the high-end car-rental app Turo.</p></div><p>Thirty years ago, <em>Turo</em> CEO Andre Haddad was in a parking garage beneath his family’s apartment building in Beirut, listening for the bombs.</p>
2226 <p>It was 1989, the last of the 15-year Lebanese civil war, and the two dozen families living in Haddad’s eight-story building often spent their nights huddled in the relative safety of the underground garage. Although just big enough for six cars at most, it had become a shelter, strewn with mattresses and lamps and personal items brought down from the apartments above.</p>
2227 <p>“You build up kind of a war wisdom over time: You don’t want to be on the top floors of your building,” Haddad says. “And a lot of the shooting would happen at night, so you’d try to sleep in the garage, hearing the shelling and building shaking.”</p>
2228 <p>His family lived like this for more than a year, until the night the shells found their apartment.</p>
2229 <p>Haddad is recounting his story in downtown San Francisco at the offices of his car-sharing app <em>Turo</em>, which that lets people rent out their (often very fancy) cars by the day. Want to drive a Lamborghini? Or take a BMW convertible from Vegas to the Bay Area? All doable. Today, <em>Turo</em> has more than 14 million members and 450,000 registered vehicles. Haddad’s road to get here crossed many borders, but it started that night in the garage.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/2F486A03-D982-406C-A6AF-C1FEA1A97CF8/2048.jpeg" data-hires="false" alt="*Turo* makes it possible to rent the kind of cars that you’d normally associate with spy movies."><p class="typography-caption">*Turo* makes it possible to rent the kind of cars that you’d normally associate with spy movies.</p></div><p>After the bomb hit, things moved fast. Haddad’s family decided to to leave Lebanon and stay with relatives in Cyprus, but Haddad took a different path. Prior to the blast he’d been chatting with a cousin in Paris, one who’d asked him a question he’d never considered. “He said, ‘It’s your senior year of high school, what are your plans? What do you want to do?’” Haddad said. “I thought, wow, nobody’s asked me those questions. When you’re in those conditions, there’s not much of a vision for the future. It’s a mechanism of self-defense.” </p>
2230 <p>The day after the shell landed on his balcony, Haddad called that cousin, and before long he had a ticket to Paris and a plan to get into business school. Seventeen years old and on his own, Haddad also found his way into the French music scene and became a DJ — he claims to have seen Daft Punk before the helmets — but there was a problem: His music had all been obliterated in the blast.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/54AD7979-F456-4339-BFCB-6A5E517300F4/2048.jpeg" data-hires="false" alt="Haddad, a former DJ in Paris, keeps a well-stocked music collection."><p class="typography-caption">Haddad, a former DJ in Paris, keeps a well-stocked music collection.</p></div><p>“I was looking for ways to rebuild my collection,” he says, “and I discovered eBay.”</p>
2231 <p>The selection was incredible, but the more he bought, the more he wanted to sell — and the shipping charges were piling up fast. To address both problems —and using his speedily developing business instincts — he founded <em>iBazar</em>, which launched as a way to swap music and became one of Europe’s largest online marketplaces. <em>iBazar</em> grew large enough that it was eventually purchased by <em>eBay</em> for more than $100 million. Just like that, everything had changed.</p>
2232 <p>Haddad spent the next decade in tech jobs, occupying positions with <em>eBay</em> and serving as CEO of <em>Shopping.com</em>. In 2011, ground down by the workload, he was planning on taking a sabbatical when a friend approached him about a car-sharing idea called <em>Turo</em>. “I got to really appreciate the creativity, the scrappiness, the hunger,” he says. Plus, he was well familiar with the notion of using the internet to connect real people. “Turo was built on trust, which made me feel very comfortable with it,” he says.</p><blockquote class="article-quote"><p>It’s an incredible highlight to see the power of humanity.</p><cite>Andre Haddad</cite></blockquote><p>Today, <em>Turo</em> has more than 14 million members. “There are users who are barely 18, and some in their 80s,” he says. The app offers everything from standard sedans to exotic high-end imports, often for less than the price of a traditional rental. </p>
2233 <p>In addition, after some initial hesitation, Haddad has become more vocal about immigration issues. “At first, I didn’t want any public involvement with this kind of noble cause to be misinterpreted as personal publicity — or even worse, corporate publicity,” he says. Plus, he adds, it hadn’t been easy to turn the page.</p>
2234 <p>Today, he’s becoming more and more outspoken, both out loud and in writing. He’s spent years on the board of Immigration Equality, an organization designed to bring equality to LGBTQ+ immigrants. And he’s signed amicus briefs and open letters aimed at protecting immigrants. “It’s the right thing to do,” he says. “It helps the economic development of the United States. But the fact is, people are here because they chose to come here. It’s a very, very hard thing to do. If you’re willing to do that, it means there’s some exceptional traits of character.”</p><p><em>Originally published on the App Store.</em></p></description>
2235 <pubDate>Tue, 02 Jun 2020 14:43:06 PDT</pubDate>
2236 </item>
2237 <item>
2238 <title>Meet the creative: Chelsa Lauderdale</title>
2239 <link>https://developer.apple.com/news/?id=kwypl7k1</link>
2240 <guid>https://developer.apple.com/news/?id=kwypl7k1</guid>
2241 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/6FF8FA71-7BFE-48A8-AEB5-A607AAFDDD90/2048.jpeg" data-hires="false" alt=""></div><p>When writer Chelsa Lauderdale was creating characters for “The Elementalists,” an interactive story in the game <em>Choices</em>, she wanted one in particular to have it all: great looks, enviable talent, a heart of gold. </p>
2242 <p>In other words, everything you’d want in a potential love interest who also happens to be a wizard.</p>
2243 <p>Lauderdale imbued him with real depth. As a student at a university for the magically gifted, Griffin Langley may be able to cast spells, but as a black man he struggles with expectations of his race and gender.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/B105142D-384B-416B-9E28-C84FE9F1F33D/2048.jpeg" data-hires="false" alt="The more time you spend with Griffin, the more he opens up to you."><p class="typography-caption">The more time you spend with Griffin, the more he opens up to you.</p></div><p>This is all part of her writing process with <em>Choices</em>. “One of the first things we asked ourselves was: What communities are we underserving?” Lauderdale says. “What can we do to make sure people see themselves in this?“</p>
2244 <p>When she started the job, she was unsure how far to push the stories, which present players with different narrative options and let them choose how everything unfolds.</p>
2245 <p>She had recently decided to cut her hair short and grow out what she calls her “baby Afro” after a conflicted relationship with straighteners and dyes. “I remember asking if it was OK to include a story line about how a character learned to love her natural hair,” she says.</p><blockquote class="article-quote"><p>There used to be this idea that black men shouldn't show weakness. That can be a tremendous weight.</p></blockquote><p>The team embraced the idea. “Since then I’ve tried to insert little pieces of my experience,” she says.
To Chelsa, Griffin brings many people’s real-world experiences to virtual life—and offers an alternative to how black men are usually portrayed in games.
“There used to be this idea that black men should be hard, they shouldn't show weakness. That can be a tremendous weight on people's mental health and on their relationships.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/A05F3EC9-2F15-420F-893D-6576BB565F38/2048.jpeg" data-hires="false" alt="Lauderdale started her career early. “I got a writing assignment in the fourth grade and haven’t really stopped since then,” she says."><p class="typography-caption">Lauderdale started her career early. “I got a writing assignment in the fourth grade and haven’t really stopped since then,” she says.</p></div><p>Griffin is the first character to greet you when you arrive at the magical university, and he warmly takes you under his wing. Over the course of your courtship, he gradually reveals his struggles, and together you tackle identity issues head-on. </p>
2246 <p>“He’s torn between his tough appearance and sweet personality, his parents’ wants and his own,” she says. “I think this is a common feeling within the black community.”</p><blockquote class="article-quote"><p>Stories can perpetuate stereotypes or they can change narratives.</p></blockquote><p>Chelsa is writing more <em>Choices</em> stories about identity — as well as young-adult fiction that explores female friendship and community.</p>
2247 <p>“Stories can perpetuate stereotypes or they can change narratives,” she says. “That's really up to the people who write them.”</p><hr><p><em>Originally published on the App Store.</em></p></description>
2248 <pubDate>Mon, 01 Jun 2020 12:06:28 PDT</pubDate>
2249 </item>
2250 <item>
2251 <title>Meet the developer: Kaya Thomas</title>
2252 <link>https://developer.apple.com/news/?id=3b2glyjr</link>
2253 <guid>https://developer.apple.com/news/?id=3b2glyjr</guid>
2254 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/75DC51F7-208F-4B14-82D8-E1BF69A71364/2048.jpeg" data-hires="false" alt="Kaya Thomas’ We Read Too spotlights writers and characters of color."><p class="typography-caption">Kaya Thomas’ We Read Too spotlights writers and characters of color.</p></div><p>Kaya Thomas has always been a voracious reader, yet growing up she rarely came across protagonists who looked like her. “High school was when I started to realize that none of the characters were ever black girls,” Thomas says.</p>
2255 <p>This inspired her to code <em>We Read Too</em>, an app that helps you find children’s books by writers of color, featuring characters of color.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/B33998E5-62A3-4F16-BC01-A71DFA8B905E/2048.jpeg" data-hires="false" alt="We Read Too has become one of the most comprehensive catalogs of children’s books by writers of color, featuring characters of color."><p class="typography-caption">We Read Too has become one of the most comprehensive catalogs of children’s books by writers of color, featuring characters of color.</p></div><p>Thomas, a Dartmouth graduate, now lives in Oakland and works as an iOS engineer at Calm. She still remembers creating a new document on her computer and writing the list that would eventually become <em>We Read Too</em>.
“The app looks much different today than it did in 2014,” she laughs. In its current version, you can browse by category (picture, chapter, middle grades, young adult) and search by title or author. There are currently over 900 books cataloged in the app.</p><blockquote class="article-quote"><p>High school was when I started to realize that none of the characters were ever black girls.</p></blockquote><p>As it stands, <em>We Read Too</em> is a labor of love. Anyone can download it for free, and Thomas is dedicated to keeping it that way. “I wanted <em>We Read Too</em> to be accessible to everyone, regardless of whether they could afford to buy a $1 app,” she says. “I have no intention of ever charging anyone for access to the information.”
Although Thomas hasn’t earned any money from the app, it has paid off in other ways.
“<em>We Read Too</em> helped me build my network and connections, and gain the courage to move out to California and get into the tech industry.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/3E306387-8F9D-4136-ADC5-A798056444BF/2048.jpeg" data-hires="false" alt="Kaya Thomas is an iOS engineer at Calm."><p class="typography-caption">Kaya Thomas is an iOS engineer at Calm.</p></div><p>When asked how she’d like to see <em>We Read Too</em> expand, Thomas says it’s all about community: “First and foremost, I want to make sure that there are as many titles in the app as possible.” And she hopes to partner with libraries to integrate with their cataloging systems, since this is where many kids and teens get their books.
Thomas also has a few words of advice for coders of all backgrounds.
“Don’t let anyone discourage you. You have to realize that you are 100 percent capable of learning the skills,” she says. “There’s no one person who is supposed to be a coder. You are completely capable, and don’t let anyone say you’re not because of who you are.”</p></description>
2256 <pubDate>Fri, 29 May 2020 09:58:43 PDT</pubDate>
2257 </item>
2258 <item>
2259 <title>Meet the Developer: David Niemeijer</title>
2260 <link>https://developer.apple.com/news/?id=15u3zxkk</link>
2261 <guid>https://developer.apple.com/news/?id=15u3zxkk</guid>
2262 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/200D3575-A203-42A5-A03E-7412EE4E3BAC/2048.jpeg" data-hires="false" alt="An illustration of a man in a wheelchair with designs on paper flying around his head"></div><p>In 1995, Giesbert Nijhuis was touring through Europe with his ska-reggae band when his van tumbled off the road. The accident left Nijhuis paralyzed from the neck down. He was 26 years old.</p>
2263 <p>“I couldn’t move anything except for my head, and only had an eighth of my normal breathing capacity. There was almost no hope of healing or repairing the spinal cord,” says Nijhuis, a professional graphic designer and photographer. “At first I was questioning if I wanted to continue life like this.”</p>
2264 <p>David Niemeijer, a friend of Nijhuis’ since childhood, remembers that dark time well. “His new physical challenges drained the life right out of him.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/6EF977AD-5A23-495C-BDAB-F8929292E72E/2048.jpeg" data-hires="false" alt="Giesbert Nijhuis (top) inspired his friend David Niemeijer to create AssistiveWare."><p class="typography-caption">Giesbert Nijhuis (top) inspired his friend David Niemeijer to create AssistiveWare.</p></div><p>The accident affected every part of Nijhuis’ life, including his very livelihood. To edit images on his Mac, he needed to be able to enter key combinations, but the assistive onscreen keyboards available then didn’t allow for that. In his new situation—or his “second life,” as he likes to call it—he was facing serious accessibility issues. </p>
2265 <p>So Niemeijer, who has a degree in agricultural and environmental sciences and was working at a university at the time, created his own assistive keyboard—what would become the Mac app <em>Keystrokes</em>. He soon scaled back his work at the university to focus on founding a software company, AssistiveWare, which released a number of pioneering accessibility tools for the desktop.</p>
2266 <p>And then came the launch of iOS, which changed everything for Niemeijer by untethering assistive software from the computer. In 2009, just a year after the iOS Software Development Kit launched, AssistiveWare released its breakthrough product: <em>Proloquo2Go</em>.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/89685241-78D2-4F01-828E-A2C994CBCBD5/2048.jpeg" data-hires="false" alt="*Proloquo2Go* is a symbol-based keyboard to aid people with difficulties in speaking."><p class="typography-caption">*Proloquo2Go* is a symbol-based keyboard to aid people with difficulties in speaking.</p></div><p><em>Proloquo2Go</em> gives a voice to those who have difficulty speaking (proloquo is Latin for “to speak out loud”). Paired with an iPhone or iPad, it also made this assistive technology more widely available. “It enables people to start learning to use it much earlier. It used to be that you’d get an expensive machine when you were 7 or 8 years old,” says Niemeijer.</p>
2267 <p>“With an iPad or iPod touch, you can start around 2 or 3 years old, which makes a huge difference, because some kids then can go to regular schools and are not reliant on special education.” </p>
2268 <p><em>Proloquo2Go</em> presents a variety of simple drawings; tap them to create sentences that the app will read aloud. Instead of providing only a limited number of predetermined sentences and phrases, <em>Proloquo2Go</em> lets you combine words in infinite ways.</p><p>“It offers users total communication,” says Niemeijer. “It allows people to not just use utilitarian language, such as asking or answering questions, but also to share stories or emotional anecdotes. It allows them to tell a joke.”</p>
2269 <p>AssistiveWare currently has a half dozen apps available across iPhone, iPad, and Apple Watch. <em>Pictello</em> lets users create storybooks using text-to-speech and the photos on their iOS device. <em>Keeble</em> is a highly customizable keyboard app that supports users with motor challenges, low vision, and dyslexia. And <em>News-2-You</em> publishes a weekly newspaper, written with both text and symbols, for beginning readers. </p>
2270 <p>Nijhuis is proud of what Niemeijer has managed to build. “I love having seen David’s works grow from the software he made just for me to the company it is today, serving so many people all over the world.” </p>
2271 <p>The designer continues to influence AssistiveWare’s evolution: He created the company logo and the app icon for <em>Proloquo2Go</em>.</p><hr><p><em>Originally published on the App Store.</em></p></description>
2272 <pubDate>Fri, 22 May 2020 18:44:16 PDT</pubDate>
2273 </item>
2274 <item>
2275 <title>How to design an accessible Apple Watch app</title>
2276 <link>https://developer.apple.com/news/?id=1gzanw45</link>
2277 <guid>https://developer.apple.com/news/?id=1gzanw45</guid>
2278 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/890D50EB-A43A-4C1A-8FF2-0919A9ADC3E9/2048.jpeg" data-hires="false" alt="The Breathe app on Apple Watch with VoiceOver on and the minutes element selected"></div><p>Apple Watch is built with accessibility in mind, empowering everyone to use their device in the way that suits them best — and your Apple Watch app can take advantage of all these features to create a seamless and inclusive experience.</p>
2279 <p>When you’re designing your Apple Watch app, here are a few considerations to take into account to make it accessible to everyone.</p><h3>Responsive, responsible reviews</h3><p>One of the best ways to get a picture of the work you need to do is to explore Apple Watch’s accessibility and display options: These allow people to adjust or augment their interface and interactions with Apple Watch. </p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/522672F5-6313-4D44-8B5C-061819DC37D2/2048.jpeg" data-hires="false" alt="You can access accessibility and text settings on Apple Watch or through the Watch app on iPhone."><p class="typography-caption">You can access accessibility and text settings on Apple Watch or through the Watch app on iPhone.</p></div><p>When designing your app, Dynamic Type and VoiceOver are two core settings worth exploring: Dynamic Type allows people to change the size of their text on Apple Watch, while VoiceOver helps people navigate without having to view the screen. You can enable or adjust either in the Settings app or on your iPhone’s Watch app at any time.
2280
We recommend testing your Watch app with these options enabled to make sure your app is fully accessible. You may also want to consider testing your interface with Bold Text, Reduce Transparency, and Reduce Motion. </p>
2281 <p>For each test you run, ask yourself a few questions: How does your interface change? Are there aspects of your design that are no longer being well-represented? Take detailed notes and screenshots — these can help you go back and address potential issues in both your designs and your app’s Xcode project.</p><h3>Scale up, scale down</h3><p>Compared with other Apple products, the small size of an Apple Watch display means far less space for presenting text. As such, it can be tempting to consider specifying fixed smaller font sizes so that more text can be shown on screen at once.</p>
2282 <p>Despite this, it’s important to use legible font sizes and support Dynamic Type. Displaying more text on screen, while helpful in principle, won’t help anyone if it’s too small to read. Instead, let text scale naturally, and use Apple Watch’s swipe gestures or rotate the Digital Crown to read longer text.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/A963C9F9-AEC9-4ACB-999B-7ED2A1B7D29D/2048.jpeg" data-hires="false" alt="In watchOS 5, four large type sizes were added to the built-in styles on Apple Watch. Each column in this table is manifested as a type size option, which people can set on Apple Watch in **Settings &gt; Display &amp; Brightness &gt; Text Size**. "><p class="typography-caption">In watchOS 5, four large type sizes were added to the built-in styles on Apple Watch. Each column in this table is manifested as a type size option, which people can set on Apple Watch in **Settings > Display & Brightness > Text Size**. </p></div><p>The quickest way to support Dynamic Type and text scaling is to use built-in text styles, which set type using Apple Watch’s system font: SF Compact. This font is specifically designed for optimal legibility at small sizes, offering nine built-in styles in a range of sizes and weights to help make text in your app as readable as possible.</p>
2283 <p>As a general rule, all text in your app should scale appropriately when people adjust their text size. Fixed text sizes should be used only for information that is clearly legible at its default setting. For example, the Podcasts app uses built-in text styles to display the podcast title at a consistently large size, and enables its smaller text elements to scale.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/03ECC669-0B59-4702-A8E3-1126B7291D26/2048.jpeg" data-hires="false" alt="When text is set to the smallest size, the Podcasts app displays two full episode rows on a 44mm Apple Watch. At the largest size, there are fewer rows displayed but the episode title, date and duration are much larger. "><p class="typography-caption">When text is set to the smallest size, the Podcasts app displays two full episode rows on a 44mm Apple Watch. At the largest size, there are fewer rows displayed but the episode title, date and duration are much larger. </p></div><p>If you plan to use a custom font within your app, you’ll need to take a few additional steps to ensure that it works with Dynamic Type, including adding the font to your project and configuring text styles.</p><p><a href="https://developer.apple.com/documentation/uikit/text_display_and_fonts/adding_a_custom_font_to_your_app">Learn more about adding custom&nbsp;fonts&nbsp;&gt;</a></p>
2284 <p><a href="https://developer.apple.com/documentation/uikit/uifont/scaling_fonts_automatically">Learn more about scaling fonts using Dynamic&nbsp;Type&nbsp;&gt;</a></p><h3>Support VoiceOver with accessibility labels</h3><p>VoiceOver is a gesture-based screen reader that tells you exactly what’s happening on your Apple Watch, and helps you navigate it without the need to see the screen. You can add support for VoiceOver in your app with accessibility labels, which help people using the feature understand how your interface is constructed. </p><hr><p><em>Fun fact: If you want to quickly test VoiceOver in your app, you can use Siri. Just enable Siri and ask it to “Turn on VoiceOver.”</em></p><hr><p>When someone looks at your interface on Apple Watch, your app can rely on common visual paradigms like button shapes and lists to communicate information and actions. For VoiceOver, think about how you might translate that experience to someone hearing the interface of your app: Start by designating a clear reading order of your interface elements, and make sure that you label your interface elements with brief and clear descriptions.</p><p>There’s one more step to consider when implementing VoiceOver: Your audience may want to hear your interface in another language. VoiceOver supports more than 35 languages, and you can make sure your app is ready for use in all of them by localizing your text strings so that all accessibility labels and hints are read in the appropriate language. </p><p><a href="https://developer.apple.com/news/?id=v56qu1b3">Learn more about crafting a great VoiceOver experience in your app &gt;</a></p>
2285 <p><a href="https://developer.apple.com/documentation/objectivec/nsobject/1615181-accessibilitylabel">Learn more about adding accessibility labels to your app &gt;</a></p>
2286 <p><a href="https://developer.apple.com/documentation/foundation/bundle/1417694-localizedstring">Learn more about localizing your text strings &gt;</a></p><h3>Watch and learn</h3><p>Apple Watch is our most personal device, and it’s important to provide flexibility for people to experience their apps in the way that best suits them. For everything you create, it’s worth taking the time to test your app and make any adjustments. Whether you’re adding scalable text or incorporating a better VoiceOver experience, these changes have a big impact on people who need or want accessibility features on Apple Watch, and they’ll likely also help you craft better overall designs for everyone who enjoys your app. </p><h3>Resources</h3><p><a href="https://developer.apple.com/design/human-interface-guidelines/accessibility/overview/introduction/">Learn more about designing with accessibility in&nbsp;mind&nbsp;&gt;</a></p>
2287 <p><a href="https://developer.apple.com/videos/play/wwdc2019/254/">Watch “How to write great accessibility&nbsp;labels”&nbsp;&gt;</a></p>
2288 <p><a href="https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/typography/">Learn more about designing type for your&nbsp;apps&nbsp;&gt;</a></p>
2289 <p><a href="https://developer.apple.com/fonts/">Download SF&nbsp;Compact&nbsp;&gt;</a></p>
2290 <p><a href="https://developer.apple.com/design/resources/">Download design templates for Apple&nbsp;Watch&nbsp;&gt;</a></p>
2291 <p><a href="https://developer.apple.com/documentation/uikit/accessibility/supporting_voiceover_in_your_app">Learn more about supporting VoiceOver in your&nbsp;app&nbsp;&gt;</a></p>
2292 <p><a href="https://help.apple.com/iphone/11/#/iph3e2e2281">How to use VoiceOver on Apple&nbsp;Watch&nbsp;&gt;</a></p></description>
2293 <pubDate>Thu, 21 May 2020 15:01:27 PDT</pubDate>
2294 </item>
2295 <item>
2296 <title>Enhance the VoiceOver experience in your app</title>
2297 <link>https://developer.apple.com/news/?id=v56qu1b3</link>
2298 <guid>https://developer.apple.com/news/?id=v56qu1b3</guid>
2299 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/FC409D0E-DF2A-47D6-9688-D01E0CCD1181/2048.jpeg" data-hires="false" alt="A screenshot of the VoiceOver settings screen with the VoiceOver toggle set to on"></div><p>VoiceOver is a core part of helping people navigate without needing to view their screen. Take this article, for instance: You may be reading this text visually; however, if you’re a developer who uses VoiceOver, you’ll hear this paragraph (and the rest of the article) spoken to you along with verbal descriptions of any important elements you might need to know about. And if you’ve opened this article in the Developer app, you’ll also hear about navigational elements in the app.</p>
2300 <p>Whether you personally use VoiceOver or not, here’s how you can put yourself in the mindset of those who do to help design a standout experience.</p><h3>Master accessibility elements in your app</h3><p>When someone enables VoiceOver on iOS, iPadOS, watchOS, or tvOS, it begins describing all of the labeled elements on screen. To decide what to read, VoiceOver looks for accessibility elements — individual or grouped visual elements within a view — as well as whether someone can interact with these elements. As it describes an element, VoiceOver also highlights it on screen by displaying a black rectangle around the content.</p><hr><p><strong><em>Tip: Explore VoiceOver on your own device</em></strong></p>
2301 <p><em>While Xcode provides you with several tools to test your app’s accessibility, you can learn a lot about VoiceOver and how various apps have implemented it by taking a test drive on your own iPhone, iPad, Mac, Apple Watch, or Apple TV. You can enable VoiceOver in the Settings app or System Preferences on your Mac, and if you want to have easy access to the feature, you can even enable a hardware-based Accessibility&nbsp;Shortcut.</em></p><hr><p>VoiceOver also adds a few specific multitouch gestures and taps to help people navigate their device. Swiping to the right anywhere on the screen will navigate to the next element in the view, while swiping to the left will navigate to the previous one. Each time VoiceOver lands on a new element, it speaks details like its accessibility label and value aloud, along with hints or traits if the element has any. </p>
2302 <p>Alternatively, people may tap directly on a visual element to navigate to it. If it’s within the bounds of an accessibility element, VoiceOver will focus on it. Otherwise, VoiceOver will emit a “boink” sound.</p>
2303 <p>By default, all standard UIKit controls are accessibility elements. To flag a custom control or view as an accessibility element, you can use <code>isAccessibilityElement</code>:</p><pre class="code-source"><code><span class="syntax-keyword">var</span> isAccessibilityElement: <span class="syntax-type">Bool</span> { <span class="syntax-keyword">get</span> <span class="syntax-keyword">set</span> }</code></pre><p><a href="https://developer.apple.com/documentation/objectivec/nsobject/1615141-isaccessibilityelement">Learn more about accessibility&nbsp;elements&nbsp;&gt;</a></p><h3>Group and declutter accessibility elements</h3><p>When navigating by swiping, VoiceOver visits each element in order of its appearance on the screen. That said, this isn’t always the most efficient way for someone to absorb information: If your app has too many accessibility elements, it may take someone a very long time to understand it. Instead, look for opportunities to group your accessibility elements together and create a simplified hierarchy. </p>
2304 <p>When you group your accessibility elements, VoiceOver will describe them together, which can speed up navigation through your app. For example, you might group a view that contains a title, text, and a time stamp label, as with Health’s Heart Rate title, heartbeat reading, and time of latest reading.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/6954D51F-116E-43BC-ACC5-967FD8EC4DF3/2048.jpeg" data-hires="false" alt="The Health app uses grouped elements in the Summary view to provide a streamlined experience for people using VoiceOver."><p class="typography-caption">The Health app uses grouped elements in the Summary view to provide a streamlined experience for people using VoiceOver.</p></div><p>This also helps provide context for someone using VoiceOver that would otherwise be present in a visual interface: By grouping them and having them read together, this lets people know that the time and text are associated with the title, rather than three unrelated items.</p><h3>Add custom actions </h3><p>You can assign any accessibility element custom actions, which provides extra functionality. For example, if you use Mail without VoiceOver enabled, you can tap on a message inside the inbox to view it, but you can also swipe left or right on an individual message to access other features like deleting, flagging, or moving a message. Custom actions let people who use VoiceOver have access to those same features in a different manner: When VoiceOver focuses on the message element, it speaks the hint “Actions Available: Swipe up or down to select a custom action.” Once you arrive at the action you want, you can double-tap to perform it.</p><hr><p><em>Fun fact: When you implement leading or trailing table view swipe gestures in your app, you automatically get VoiceOver actions for these buttons in your project.</em></p><hr><p>Custom actions are very powerful when combined with grouped elements and can help simplify your navigable hierarchy. If you have a view as an accessibility element that has multiple buttons as subviews, for example, you aren’t always able to navigate to those buttons with VoiceOver. While it might be tempting to break up this up into smaller elements and allow buttons to become individually focusable, this may add clutter. </p><p>We strongly recommend using Custom Actions to expose these button actions, letting you keep the element’s organization while still providing full controls to someone using VoiceOver. When you carefully group your elements and add custom actions, it creates a better overall navigation experience and will make your app far more enjoyable for people who rely on VoiceOver.</p>
2305 <p>To set a <code>UIAccessibilityCustomAction</code> on your accessibility elements, you can use <code>accessibilityCustomActions</code>:</p><pre class="code-source"><code><span class="syntax-keyword">var</span> accessibilityCustomActions: [<span class="syntax-type">UIAccessibilityCustomAction</span>]? { <span class="syntax-keyword">get</span> <span class="syntax-keyword">set</span> }</code></pre><p><a href="https://developer.apple.com/documentation/uikit/uiaccessibilitycustomaction">Learn more about custom&nbsp;actions&nbsp;&gt;</a></p><h3>Flag layout changes</h3><p>Your app may change its layout visually to indicate the result of an action or event. In the Shortcuts app, for example, tapping the + button brings up components that will help someone build a shortcut. For people who use VoiceOver, you can use the “screen changed” or “layout changed” notifications to guide their focus to the new elements. </p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/EDD3C039-FA6C-440D-AF32-CE6C8F0C0849/2048.jpeg" data-hires="false" alt="The Shortcuts app plays a “screen changed” notification after someone selects the + button."><p class="typography-caption">The Shortcuts app plays a “screen changed” notification after someone selects the + button.</p></div><p>It’s best to use “layout changed” only when there’s a major change to your interface, as pulling focus too often can make people confused and lose context inside your app.</p>
2306 <p>To post an accessibility notification, you can use <code>post(notification:argument:)</code> on <code>UIAccessibility</code>:</p><pre class="code-source"><code><span class="syntax-keyword">static</span> <span class="syntax-function"><span class="syntax-keyword">func</span> <span class="syntax-title">post</span><span class="syntax-params">(notification: UIAccessibility.Notification,
2307 argument: <span class="syntax-keyword">Any</span>?)</span></span></code></pre><p><a href="https://developer.apple.com/documentation/uikit/uiaccessibility/1615194-post">Learn more about accessibility&nbsp;notifications&nbsp;&gt;</a></p><h3>Next steps</h3><p>When you make these improvements to your app, you’re not only unlocking better VoiceOver support, you’re also laying the groundwork for our other assistive technologies like Switch Control and Full Keyboard Access. So go, explore, and make your app’s accessibility experience a great one — because technology is most powerful when it empowers everyone.</p><h3>Resources</h3><p><a href="https://support.apple.com/guide/iphone/learn-voiceover-gestures-iph3e2e2281/ios">Learn more about VoiceOver&nbsp;gestures&nbsp;&gt;</a></p>
2308 <p><a href="https://developer.apple.com/videos/play/wwdc2019/254/">Watch “Writing Great Accessibility&nbsp;Labels”&nbsp;&gt;</a></p>
2309 <p><a href="https://developer.apple.com/videos/play/wwdc2019/250/">Watch “Making Apps More Accessible With Custom&nbsp;Actions”&nbsp;&gt;</a></p></description>
2310 <pubDate>Tue, 19 May 2020 12:37:56 PDT</pubDate>
2311 </item>
2312 <item>
2313 <title>Meet the developer: Craig Hockenberry</title>
2314 <link>https://developer.apple.com/news/?id=6qwc01iu</link>
2315 <guid>https://developer.apple.com/news/?id=6qwc01iu</guid>
2316 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/2EC8472C-149D-413F-81AD-811CFE653565/2048.jpeg" data-hires="false" alt="Get to know the influential creator of Twitterrific."><p class="typography-caption">Get to know the influential creator of Twitterrific.</p></div><p>It took a while for Craig Hockenberry, principal at The Iconfactory, to realize his true calling. Although he began coding when he was 16, in 1976 (the same year the Apple I was released) his career took a detour into corporate management. </p>
2317 <p>“We originally made <em>Twitterrific</em> because all the folks at the Iconfactory wanted an easier way to follow what our friends and colleagues were doing,” said Hockenberry. "<em>xScope</em> is another product in the same vein—we built it because we needed it. We’re our own best customers.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/4E29F7B1-E651-4BC3-A860-308BC0D51DBB/2048.jpeg" data-hires="false" alt="*Twitterrific*’s multipane view color-codes tweets by category."><p class="typography-caption">*Twitterrific*’s multipane view color-codes tweets by category.</p></div><p>To say Hockenberry has been ahead of the curve over the course of his storied career is an understatement. <em>Twitterrific</em>, released over a decade ago, was the very first <em>Twitter</em> client for Mac. Hockenberry even helped coin the term “tweet.”</p>
2318 <p>And you know the signature blue bird everyone associates with the social network? Hockenberry created the first one: an icon he named Ollie. (<em>Twitter</em> later followed suit with its own variation.)</p>
2319 <p>While the apps Hockenberry has worked on are designed for a diverse range of customers, the philosophy behind them has remained the same.</p>
2320 <p>"When we create a new app, we’re always thinking, ‘What problem does this solve for the customer?’” he says. For Hockenberry, functionality and design are equally important. “Functionality overcomes the problem, and design makes it approachable.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/C759C559-3F82-4CB6-847E-75DAB73F6C92/2048.jpeg" data-hires="false" alt="*xScope*’s overlay tools give you a sense of how graphics will appear to those with red-green color blindness and other visual impairments."><p class="typography-caption">*xScope*’s overlay tools give you a sense of how graphics will appear to those with red-green color blindness and other visual impairments.</p></div><p>Ask anyone in the community for a shortlist of the best developers and Hockenberry’s name inevitably comes up — no doubt because he’s been such an active and generous member. Iconfactory.com gives away about 2 terabytes of icons and wallpapers each month. Hockenberry also blogs about development at furbo.org, where he’s always willing to share his know-how.</p>
2321 <p>"It’s something I learned from my dad — you need to help others in your community,” he says. “When I find something cool or have a unique insight, I love to share it with other developers.”</p>
2322 <p>Thankfully, he has no intention of slowing down. </p>
2323 <p>“My grandfather always said, ‘You’re only as old as you act.’ If that’s the case, I’m still my younger self!”</p><hr><p><em>Originally published on the Mac App Store.</em></p></description>
2324 <pubDate>Fri, 15 May 2020 15:42:15 PDT</pubDate>
2325 </item>
2326 <item>
2327 <title>How to master multitasking and multiple windows for your iPad app</title>
2328 <link>https://developer.apple.com/news/?id=9nvbn1tp</link>
2329 <guid>https://developer.apple.com/news/?id=9nvbn1tp</guid>
2330 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/39B87033-83EE-46D1-828F-A99D6820A4C0/2048.jpeg" data-hires="false" alt="A split view of two Notes windows"></div><p>Multitasking is one of the many great features of iPadOS and gives people options and flexibility in how they want to interact with your app and others on iPad. They can browse your app in full screen, put it next to another app in Split View, pull it up in Slide Over, or even view multiple instances of your app side by side. Here are a few ways you can improve the look and feel of your iPad app for multitasking and multiple windows.</p><h3>Make your app a multitasking master</h3><p>Whether your app is running by itself, in a Slide Over pane, or side by side in Split View, it should always support a great multitasking experience. People expect apps on iPad to seamlessly adjust between size classes as they add or remove apps on their screen. When you design an adaptive UI, you can ensure that your controls and views remain visible and useable, whether your app is full screen or displaying in a compact view.</p>
2331 <p>To make your view controllers and views responsive to changes in the iOS interface environment, override the <code>traitCollectionDidChange(_:)</code> method from the trait environment protocol. To customize view controller animations in response to interface environment changes, override the <code>willTransition(to:with:)</code> method of the <code>UIContentContainer</code> protocol.</p>
2332 <p><a href="https://developer.apple.com/documentation/uikit/uitraitcollection">Learn more about UI trait&nbsp;collections&nbsp;&gt;</a></p>
2333 <p>You can further guarantee people a flexible, adaptive experience by using tools like Auto Layout and safe area insets to ensure your app looks great no matter how it’s being used.</p>
2334 <p><a href="https://developer.apple.com/news/?id=nixcb564">Read more about how you can make your app look great on every&nbsp;screen&nbsp;&gt;</a></p><h3>Multiply your windows</h3><p>Starting with iPadOS 13, you can add support for creating multiple instances of your app. When you support multiple windows, your app gains additional versatility, allowing people to use it alongside itself or multiple other applications. For example, someone using a to-do app could view two lists from that app side by side in Split View; they could also create multiple Split View instances that pair one of their to-do lists alongside a Safari window, while another to-do list sits next to Mail.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/AFE9F429-FC4E-4FF9-8BA2-0CF3D1F723A4/2048.jpeg" data-hires="false" alt="An iPad screen wireframe displaying multiple instances of the same app "></div><p>To add multiple windows to your app, you create scenes for each instance of your user interface using <code>UIScene</code>. When you add support for <code>UIScene</code>, consider also implementing modern state restoration, which lets people come right back to what they were working on in your app rather than resetting to the main screen.</p>
2335 <p><a href="https://developer.apple.com/news/?id=4ixc0yxs">Learn more about modern state&nbsp;restoration&nbsp;&gt;</a></p>
2336 <p>Additionally, if you add multiple windows to iPad, that paves the way for multiple window support on Mac Catalyst if you’re also building a Mac app. </p>
2337 <p><a href="https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/multiple-windows/">Learn more about designing for multiple&nbsp;windows&nbsp;&gt;</a></p>
2338 <p><a href="https://developer.apple.com/documentation/uikit/app_and_environment">Learn more about implementing multiple windows in your&nbsp;app&nbsp;&gt;</a></p><hr><h3>Resources</h3><p><a href="https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/multitasking/">Get started with&nbsp;multitasking&nbsp;&gt;</a></p>
2339 <p><a href="https://developer.apple.com/documentation/uikit/app_and_environment/scenes">Learn more about&nbsp;scenes&nbsp;&gt;</a></p>
2340 <p><a href="https://developer.apple.com/documentation/uikit/app_and_environment/scenes/supporting_multiple_windows_on_ipad">Explore a sample project for supporting multiple windows on&nbsp;iPad&nbsp;&gt;</a></p>
2341 <p><a href="https://developer.apple.com/videos/play/wwdc2019/246/">Watch “Window Management in Your Multitasking&nbsp;App”&nbsp;&gt;</a></p>
2342 <p><a href="https://developer.apple.com/videos/play/wwdc2019/212/">Watch “Introducing Multiple Windows on&nbsp;iPad”&nbsp;&gt;</a></p>
2343 <p><a href="https://developer.apple.com/videos/play/wwdc2019/258/">Watch “Architecting Your App for Multiple&nbsp;Windows”&nbsp;&gt;</a></p></description>
2344 <pubDate>Thu, 14 May 2020 11:26:45 PDT</pubDate>
2345 </item>
2346 <item>
2347 <title>How to make your app look great on every screen</title>
2348 <link>https://developer.apple.com/news/?id=nixcb564</link>
2349 <guid>https://developer.apple.com/news/?id=nixcb564</guid>
2350 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/A2648508-E2DF-413D-BA2F-BE2F8D778AFD/2048.jpeg" data-hires="false" alt="Different sizes of iPads and iPhones"></div><p>Imagine, for a moment: You’ve just spotted the perfect pair of shoes online. They’re the right color, they’re designed impeccably, and you can’t wait to get them delivered and on your feet. Except, wait — they’re only made in size 7. And sadly, while you might be able to cram your feet in and wear them on occasion, they won’t be comfortable enough for daily use. </p>
2351 <p>Now, most shoe manufacturers don’t 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>
2352 <p>It’s 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>
2353 <p>Below, we’ve collected some of the best ways you can adapt your app’s interface so that it looks great, regardless of device.</p><h3>Universal design</h3><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’s the most adaptive experience you can provide. Whether you’re 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>
2354 <p><strong>Ready to launch</strong></p>
2355 <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 — they’re 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><p><a href="https://developer.apple.com/news/?id=voseytot">Learn more about designing launch screens for seamless&nbsp;starts&nbsp;&gt;</a></p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/5E103D81-48D2-4711-8041-F9AAC6C56950/2048.jpeg" data-hires="false" alt="Screen showing auto layout flow"></div><p><strong>Get into Auto Layout</strong></p>
2356 <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><p><a href="https://developer.apple.com/documentation/uikit/uilayoutguide">Learn more about Auto Layout in the Developer&nbsp;Library&nbsp;&gt;</a> </p><p><strong>Explore SwiftUI</strong> </p>
2357 <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>
2358 <p><strong>Master multitasking</strong></p>
2359 <p>If you’re 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><p><a href="https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/multitasking/">Get started with&nbsp;multitasking&nbsp;&gt;</a></p><h3>Keep your content readable</h3><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><p><a href="https://developer.apple.com/documentation/uikit/uiview/1622644-readablecontentguide">Learn more about the Readable Content&nbsp;Guide&nbsp;&gt;</a></p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/965793EB-9368-42C7-B147-5CE594943CDE/2048.jpeg" data-hires="false" alt="Two iPhone screens displaying regular text and Dynamic type in Mail"></div><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><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>
2360 <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><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/692B58BE-9755-468C-B146-52E234F3B1C2/2048.jpeg" data-hires="false" alt="Two iPhone screens displaying safe areas"></div><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><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><h3>Craft your queries effectively</h3><p>While it’s helpful — and often critical — 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>
2361 <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><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><h3>Preview your work</h3><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>
2362 <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><hr><h3>Resources</h3><p><a href="https://developer.apple.com/videos/play/wwdc2019/233/">Watch “Mastering Xcode&nbsp;Previews”&nbsp;&gt;</a></p>
2363 <p><a href="https://developer.apple.com/documentation/swiftui">Learn more about&nbsp;SwiftUI&nbsp;&gt;</a></p>
2364 <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>
2365 <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></description>
2366 <pubDate>Tue, 12 May 2020 18:10:55 PDT</pubDate>
2367 </item>
2368 <item>
2369 <title>Meet the developer: Panic</title>
2370 <link>https://developer.apple.com/news/?id=t4n6e4wo</link>
2371 <guid>https://developer.apple.com/news/?id=t4n6e4wo</guid>
2372 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/A41B17CE-7A90-4913-8397-6D55EBE69463/2048.jpeg" data-hires="false" alt="How Panic manages to find beauty in FTP and SSH."><p class="typography-caption">How Panic manages to find beauty in FTP and SSH.</p></div><p>It may be cool to be a developer these days, but that wasn’t always the case—especially not in 1998, when Cabel Sasser and Steven Frank started Panic. Running a fledgling software company was daunting and exhausting, but the duo was having so much fun they didn’t care. </p>
2373 <p>“Steven once compared our relationship to that of R2-D2 and C-3PO,” Sasser says. “I roll around making strange noises and interfacing with things, while he stays the course, flapping his arms and fretting about protocol. But they need each other to succeed, right?”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/4732A4C2-18A1-4E87-8374-E5C870360647/2048.jpeg" data-hires="false" alt="Yes, even an FTP client can look great and be easy to use."><p class="typography-caption">Yes, even an FTP client can look great and be easy to use.</p></div><p>When Panic started, developers had to worry about more than coding a great app; they also had to figure out how and where they were going to sell it. The internet wasn’t the e-commerce juggernaut it is now. Developers needed to hit the streets.</p>
2374 <p>“It’s almost impossible to comprehend now, but back in the day, if you wanted to sell an app, you had to manufacture boxes, sign up with an expensive distributor, try to get your boxed app onto the shelves at the computer store, and pay extra for placement on the endcap,” Sasser says.</p>
2375 <p>With <em>Transmit</em>, the elegant FTP app Panic debuted in 1998, the company established what’s become a core principle: “Take a complicated thing and make it easy, beautiful, and powerful,” Sasser says. </p>
2376 <p>Acknowledging that file-transfer apps aren’t exactly the most exciting, Sasser says he’s well aware that a lot of customers would be satisfied if <em>Transmit</em> simply did the bare minimum. An FTP app doesn’t have to wow you. Nor do Panic’s other apps, like <em>Prompt</em>, an SSH client, or <em>Coda</em>, a file manager and text editor. </p>
2377 <p>But Sasser expects more. He wants Panic’s apps to appeal to your design sensibility as well.</p><blockquote class="article-quote"><p>Take a complicated thing and make it easy, beautiful, and powerful.</p><cite>Panic cofounder Cabel Sasser</cite></blockquote><p>"The matrix is really simple: Too much design and you can alienate power users. Not enough and you’ll intimidate new users,” Sasser says. Striking the right balance applies to functionality as well. “Balancing design and functionality is one of the most difficult parts of our job.”</p>
2378 <p>After decades spent developing software for the Mac, Sasser and Frank have earned the respect of customers and other developers alike. Sasser chalks this up to Panic’s core tenets: honesty, personality, and responsibility.</p>
2379 <p>“As humans, we always know when a company is selling us some PR flimflam. It never works,” he says. “So we are always absolutely honest and up-front.”</p><hr><p><em>Originally published on the App Store and Mac App Store.</em></p></description>
2380 <pubDate>Fri, 08 May 2020 20:00:51 PDT</pubDate>
2381 </item>
2382 <item>
2383 <title>Ready. Set. Code.</title>
2384 <link>https://developer.apple.com/news/?id=05052020a</link>
2385 <guid>https://developer.apple.com/news/?id=05052020a</guid>
2386 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/3668FE8F-5C16-4D79-8799-5058A82AAD8C/2048.jpeg" data-hires="false" alt="Three Memoji developers sitting behind MacBook Pro"></div><p>On June 22, WWDC20 takes off. Get ready for the first global, all-online WWDC by downloading the Apple Developer app to stay notified on all the latest news, with updates for events and sessions. More announcements to come in early June.</p><p>And now through May 17, student developers from around the world can showcase their love of coding by submitting their own Swift playground to the Swift Student Challenge. Winners will receive an exclusive WWDC20 jacket and pin set. </p><p><a href="https://developer.apple.com/wwdc/swift-student-challenge/">Learn about <span class="icon icon-after icon-chevronright nowrap">the challenge</span></a></p></description>
2387 <pubDate>Tue, 05 May 2020 17:49:05 PDT</pubDate>
2388 </item>
2389 <item>
2390 <title>Billing Grace Period Data Now Available in App Store Connect</title>
2391 <link>https://developer.apple.com/news/?id=05042020a</link>
2392 <guid>https://developer.apple.com/news/?id=05042020a</guid>
2393 <description><p>The Sales and Trends section of App Store Connect now provides details about the number of subscribers in Billing Grace Period — a feature that lets subscribers with unsuccessful auto-renewals continue accessing your app’s paid content while Apple attempts to collect payment, allowing them time to fix the issue. New subscription events in Sales and Trends indicate the number of renewals and cancelations during Billing Grace Period, and the Subscription Report includes a new column with the total number of subscriptions in Billing Grace Period.</p><p><a href="https://help.apple.com/app-store-connect/#/dev7492eeb55">Get details on viewing <span class="icon icon-after icon-chevronright nowrap">subscriptions data</span></a></p></description>
2394 <pubDate>Mon, 04 May 2020 23:03:17 PDT</pubDate>
2395 </item>
2396 <item>
2397 <title>Meet the developer: Shelley Taylor</title>
2398 <link>https://developer.apple.com/news/?id=2zjvl2ig</link>
2399 <guid>https://developer.apple.com/news/?id=2zjvl2ig</guid>
2400 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/4C4EE2EB-C305-49BA-88A7-A83242CC525F/2048.jpeg" data-hires="false" alt="RefAid supports migrants around the world."><p class="typography-caption">RefAid supports migrants around the world.</p></div><p>In 2015, a 3-year-old Syrian boy named Aylan Kurdi drowned in the Mediterranean Sea trying to reach Europe with his family. The image of his body washed up on a beach in Lebanon devastated American startup veteran Shelley Taylor.</p>
2401 <p>“These migrants are coming into Europe, they get here, and they don’t know how to find the basic things—the supermarket, shelter, the doctor,” says Taylor, CEO of Trellyz, which creates software for cities and nonprofits. “And I thought, they all have smartphones, maybe I can create something that will let them find what they need when they need it.” </p>
2402 <p>Over a weekend she built <em>RefAid—Refugee Aid App</em> and launched it in the UK and Italy in February 2016. The app catalogs aid organizations’ services for migrants and refugees seeking to build a new life in Europe and, increasingly, the United States.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/E5B75513-D37A-407A-B1F1-64DAFC1BE1DB/2048.jpeg" data-hires="false" alt="The app reduces its language barrier with icons in addition to words."><p class="typography-caption">The app reduces its language barrier with icons in addition to words.</p></div><p>These days, the app is evolving from one designed to meet the basic daily survival needs of refugees to one able to tackle the many challenges of the mounting migrant crisis at the U.S. border and provide information during COVID-19.</p>
2403 <p>Services have been added to address family separation, offering constantly updated intel about legal aid as well as geo-targeted push notifications with crucial on-the-ground information. For example, RefAid might send an alert with a phone number for free legal help in an area where migrants are being rounded up.</p>
2404 <p>The app (which is now available in 25 countries, with some 5,000 aid organizations contributing) will soon include services in most U.S. states. Taylor and her team are constantly reaching out to more nonprofits and public service providers to include them in the app. Through a web-based content management system, they can manage and update their offerings and communicate directly with people.</p><blockquote class="article-quote"><p>These migrants are coming into Europe, they get here, and they don’t know how to find the basic things—the supermarket, shelter, the doctor.</p></blockquote><p>Available in English, Arabic, Farsi, Spanish, and soon French, the app directs refugees (using geolocation) to aid within a 100-mile radius. The services are sorted by categories like legal, food, education, work, media, faith groups, psychological, and more.</p><h3>Solving one problem at a time</h3><p>Before launching RefAid, Taylor—who was raised in Palo Alto, California, but lives in Europe—needed to contact aid organizations and have them provide a list of services that could help migrants in need. She started with the United Nations High Commission for Refugees and the British Red Cross but quickly ran into a roadblock: Most of them didn’t readily know all of the services they provided.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/B6D0C616-C873-4B47-BDFE-64787D5A544E/2048.jpeg" data-hires="false" alt="The worldwide refugee crisis broke Shelley Taylor’s heart—so she made an app to help."><p class="typography-caption">The worldwide refugee crisis broke Shelley Taylor’s heart—so she made an app to help.</p></div><p>Taylor waited weeks for aid groups to get back to her. “We called them and said, ‘Did you change your mind? Where are your services? We just need a little spreadsheet.’” And they said, uniformly, ‘Oh, we have to call each of the offices to ask them because nothing is written down.”</p>
2405 <p>Eventually, Taylor created what may be the first global database of nonprofit services. She doesn’t charge the organizations to use the app, covering the development and operating costs herself. “We didn’t want anyone to have an excuse to say no to putting their services on the app, because it’s such a huge problem and people really need help.” </p><h3>Help finding help</h3><p>Although RefAid doesn’t have the capacity to respond to real-time updates from refugees and migrants, Taylor has anticipated the needs of people arriving by either land or sea. </p>
2406 <p>“When you come into Greece, for example, the organizations don’t have the right to go to the beach directly. They have to stay in their offices — that’s the law. But, if somebody has told migrants to look at the app, those migrants can discover that around the corner there’s a Red Cross office and food vouchers, which they couldn’t have found otherwise.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/15FB0C62-FB8E-431C-9185-3E0B41A979BB/2048.jpeg" data-hires="false" alt="Taylor in the French town of Calais, home to the notorious Calais Jungle refugee encampment where some 10,000 refugees sought shelter from 2015 to 2016."><p class="typography-caption">Taylor in the French town of Calais, home to the notorious Calais Jungle refugee encampment where some 10,000 refugees sought shelter from 2015 to 2016.</p></div><p>The app is used primarily in the U.S., the UK, Belgium, France, Italy, and Greece. After the first attempted U.S. travel ban in January 2017, RefAid quickly deployed in 19 American cities, cataloging legal services nearby for those trapped at U.S. airports. In May 2018, 40 other cities—including Oslo, Athens, and Amsterdam—began listing their services. </p>
2407 <p>During the current U.S. migrant crisis, new services from different aid organizations are being added daily. Some large resettlement organizations in the U.S., such as the International Refugee Committee, have actually started preloading cell phones with the RefAid app and giving them to migrants.</p>
2408 <p>“It’s exciting to see how it’s growing,” Taylor says, “but we still haven’t mapped the whole world. And that’s our goal: to map all of the services available to refugees and everyone else in the whole world. It’s just a step at a time.”</p>
2409 <p><em>Originally published on the App Store.</em></p></description>
2410 <pubDate>Fri, 01 May 2020 19:05:39 PDT</pubDate>
2411 </item>
2412 <item>
2413 <title>How to support per-app language settings in your app</title>
2414 <link>https://developer.apple.com/news/?id=u2cfuj88</link>
2415 <guid>https://developer.apple.com/news/?id=u2cfuj88</guid>
2416 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/2C304568-8FDD-4BF9-9CDD-6F2C086010DE/2048.jpeg" data-hires="false" alt="Two screenshots of the AllTrails app main interface, with the screenshot on the right translated into espagnol"></div><p>When you localize your app, people all over the world can view your content in the language they feel most comfortable reading. And with the latest versions of iOS and macOS, people can have even more control by choosing languages on a per-app basis. For example, someone may set their iPhone’s language to English, but want to use a social media app in Arabic.</p><p>Good news: If your project is built with iOS 13 or macOS Catalina and localized into more than one language, you won’t have to add any additional code to your app. Simply build and deploy your app to test.</p>
2417 <p>Here’s how someone might check per-app language switching for a specific app, using AllTrails as an example.</p>
2418 <ol>
2419 <li><strong>Open</strong> the Settings app.</li>
2420 <li>Navigate to <strong>AllTrails &gt; Preferred Language &gt; Language</strong>.</li>
2421 <li>Change the preferred language to <strong>Spanish</strong>.</li>
2422 <li>Launch <strong>AllTrails</strong> from your home screen (or from the App Switcher, if the app is already open).</li>
2423 </ol><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/488F508F-597F-41E3-AC19-D498DFBB2DC0/2048.jpeg" data-hires="false" alt="Once someone has set their preferred languages for an app in Settings, it will then render accordingly in your app."><p class="typography-caption">Once someone has set their preferred languages for an app in Settings, it will then render accordingly in your app.</p></div><p>AllTrails will now render in Spanish, while the rest of the device continues to display the system language.</p><h3>Restore your state after a change in the language setting</h3><p>If someone decides mid-activity that they’d like to view your app in a different language, you can make the experience even smoother for them by restoring their previous state when they return. For example, say you’re living abroad and looking for food using a restaurant delivery app. By default, you use English, but might want to switch the app’s language when viewing a certain restaurant’s menu so that you can better understand its native dishes.</p>
2424 <p>If that app supports state restoration, you can exit to the Settings app and return to the restaurant you were viewing — now in the new language. If not, you’ll have to start from the app’s main screen and find that restaurant again.</p>
2425 <p>If your app supports scene-based state restoration, you can implement <code>stateRestorationActivity(for scene)</code> and return an <code>NSUserActivity</code> that encodes the scene state. (And if you still support view controller state restoration, you can enable state restoration on your app delegate.)</p><hr><p><a href="http://developer.apple.com/news/?id=4ixc0yxs">Learn more about implementing state restoration &gt;</a></p><hr><h3>How to load custom content in the correct language</h3><p>If you need to load content from other sources, such as a server, you can do so and ensure that you match the app’s language with a few bundle APIs.</p>
2426 <p><code>Bundle.main.preferredLocalizations.first</code> will get the system’s current language in priority order.</p>
2427 <p>If you need to check against a custom set of available languages (say, from a server or other source), you can do so with a simple modification to the previous API call. First, find out what available languages there are:</p><pre class="code-source"><code><span class="syntax-keyword">let</span> availableLanguages = <span class="syntax-type">Server</span>.requestAvailableLanguages()</code></pre><p>Then, use the <code>preferredLocalization</code> API with those languages:</p><pre class="code-source"><code><span class="syntax-type">Bundle</span>.preferredLocalizations(from: availableLanguages).first.</code></pre><p>If it’s not possible to have ongoing communication with the server due to connectivity or other constraints, you can also send the output of <code>Bundle.main.preferredLocalizations.first</code> to the server; that way, it will know which language the app has been launched in and deliver content accordingly.</p><h3>How to transition away from a custom language selector in your app</h3><p>With systemwide support for in-app language selectors, you no longer need to provide a way to select languages within your app if you support iOS 13 or macOS Catalina or later. If you currently offer such a UI, you should remove it to avoid customer confusion and potential conflict with the system.</p>
2428 <p>If you’d like to guide people to the system settings for language selection, you can replace your app’s custom UI with a flow that launches directly into the Settings app on iOS.</p>
2429 <p>On iOS, add the following: </p><pre class="code-source"><code><span class="syntax-type">UIApplication</span>.shared.<span class="syntax-keyword">open</span>(<span class="syntax-type">URL</span>(string: <span class="syntax-type">UIApplication</span>.openSettingsURLString)!)</code></pre><p>On macOS, direct people to <strong>System Preferences &gt; Language &amp; Region</strong> to add a per-language setting for your app.</p><hr><h3>Resources</h3><p><a href="https://developer.apple.com/videos/play/wwdc2019/403">Watch “Creating Great Localized Experiences with Xcode 11” &gt;</a></p>
2430 <p><a href="https://developer.apple.com/localization/?cid=developer80">Learn more about expanding your app to new markets &gt;</a></p>
2431 <p><a href="https://developer.apple.com/localization/resources/?cid=developer80">Get more resources for localization &gt;</a></p></description>
2432 <pubDate>Thu, 30 Apr 2020 12:35:23 PDT</pubDate>
2433 </item>
2434 <item>
2435 <title>Ready your app for a localized launch</title>
2436 <link>https://developer.apple.com/news/?id=trcy3pi0</link>
2437 <guid>https://developer.apple.com/news/?id=trcy3pi0</guid>
2438 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/119F5757-7157-4DEE-9909-49393C65B45A/2048.jpeg" data-hires="false" alt="An App Store screen in China displaying a localized fruit selling app"></div><p>Once you’ve localized your app, it’s time to get ready for an international and localized launch. Here’s how you can localize your App Store product page, set international pricing, and adapt your marketing strategy.</p><h3>Localize your product page</h3><p>Localize your App Store metadata, such as your app description, keywords, and screenshots, for each of the countries or territories in which you offer your app. You can also translate your app’s name and tailor your keywords to reflect the values of each market so your app might better resonate with the local audience.</p><hr><p><a href="https://help.apple.com/app-store-connect/#/deve6f78a8e2">Learn more about localizing your App Store information &gt;</a></p>
2439 <p><a href="https://developer.apple.com/app-store/product-page/?cid=developer80">Learn more about optimizing your product page &gt;</a></p><hr><h3>Learn about international payment methods and pricing</h3><p>The App Store handles payment processing, so it’s easy to offer your content to users around the world. Users pay for your apps and in-app purchases with credit or debit cards, carrier billing, digital wallets, or App Store and iTunes gift cards, depending on regional availability.</p>
2440 <p>When pricing your apps and in-app purchases, you’ll choose a price tier in App Store Connect that contains prices already adjusted appropriately for the market in each country or region. For auto-renewable subscriptions, you can choose from 200 price points across all available currencies and price tiers to offer appropriate pricing for each location.</p><hr><p><a href="https://help.apple.com/app-store-connect/#/dev0d56b50d9">Learn more about setting in-app purchase pricing &gt;</a></p>
2441 <p><a href="https://developer.apple.com/app-store/subscriptions/?cid=developer80#territory">Learn more about pricing subscriptions for each territory &gt;</a></p><hr><h3>Adapt your marketing strategy</h3><p>When launching your app in a new market, adapt your marketing strategy to the region to help your audience easily learn about your app and the value it provides. Research which social networks or other channels are most popular with local audiences, as these may vary significantly across markets, and use them to spread the word about your app. Localize any materials you use in your marketing and user acquisition efforts, such as screenshots, banners, and advertisements.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/AD8A2BF7-87C6-4222-806D-A942CC1AFD4F/2048.jpeg" data-hires="false" alt=""></div><p><strong>App Store Badges</strong></p>
2442 <p>Use the Download on the App Store badge in your communications as a clear call to action to download your app. Localized badges are available to let your international audience know that your app is tailored for them. Download badges from the <a href="https://developer.apple.com/app-store/marketing/?cid=developer80">App Store Marketing Guidelines</a>.</p>
2443 <p><strong>Search Ads</strong></p>
2444 <p>In addition, you can drive discovery of your app with Apple Search Ads, which lets you promote your app at the top of relevant App Store search results in more than 59 countries and regions. See <a href="https://searchads.apple.com/">Search Ads</a> to learn more and read developer success stories.</p><hr><h3>Resources</h3><p><a href="https://developer.apple.com/localization/?cid=developer80">Learn more about expanding your app to new markets &gt;</a></p>
2445 <p><a href="https://developer.apple.com/localization/resources/?cid=developer80">Get more resources for localization &gt;</a></p></description>
2446 <pubDate>Wed, 29 Apr 2020 18:51:51 PDT</pubDate>
2447 </item>
2448 <item>
2449 <title>How to localize your app</title>
2450 <link>https://developer.apple.com/news/?id=jzqnn1av</link>
2451 <guid>https://developer.apple.com/news/?id=jzqnn1av</guid>
2452 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/ECC72997-C6C5-47AD-89AE-0DF1FE6C7DBE/2048.jpeg" data-hires="false" alt="A winter holiday app displaying multiple different translations of different holidays"></div><p>When you deliver great localization in your app, you can support your customers in their native language and provide a better overall experience. Here’s how you can get started localizing your content quickly and effectively inside Xcode.</p><h3>Translate your app’s content</h3><p>Use the <a href="https://developer.apple.com/documentation/xcode/localizing_your_app">Xcode Export For Localization</a> feature to automatically extract all localizable content, including strings referenced from code, stringsdict files, and Interface Builder files, as well as any localized assets. This process shouldn’t require modifications to your source code, making it easy to work on translations in-house or with an external localization service. Be sure to also localize <a href="https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources">purpose strings</a> for a consistent app experience, and consider localizing your privacy policy so that all users have a clear understanding of how their data may be handled.</p><p><strong>Apple Services</strong> </p>
2453 <p>Use Apple APIs to automatically present localized buttons, payment sheets, errors, and more for <a href="https://developer.apple.com/apple-pay/implementation/">Apple Pay</a>, <a href="https://developer.apple.com/documentation/passkit/wallet">Apple Wallet</a>, and <a href="https://developer.apple.com/documentation/sign_in_with_apple">Sign in with Apple</a>.</p>
2454 <p><strong>Audiovisual Media</strong></p>
2455 <p>You can also provide localized support for audiovisual media in your app using AVKit and AVFoundation. These <a href="https://developer.apple.com/documentation/avfoundation/media_assets_playback_and_editing/adding_subtitles_and_alternative_audio_tracks">frameworks</a> provide built-in support for easily presenting subtitles and closed captions, and for selecting alternative audio and video tracks.</p>
2456 <p><strong>Localization Services</strong></p>
2457 <p>If choosing an external localization service to help translate content, find out if they specialize in localizing for particular languages, cultures, or categories, and confirm the levels of quality assurance they provide. Providing the service with context about your app and content can help increase efficiency and minimize translation errors. Consider creating a guide with important details — for example, a playbook with character names and personalities, explanations of jokes or humor, a glossary of frequently used terms, and screenshots that show where the translations will be used. Avoid machine translation as your only translation method, since this can lead to inaccurate and low-quality translation because it does not account for context, cultural sensitivities or language nuances. For example, the “book” button in a hotel app might be incorrectly translated to be “novel” rather than “reserve”.</p><hr><p><a href="https://developer.apple.com/documentation/xcode/localizing_your_app">Learn more about localizing your app in Xcode &gt;</a></p><hr><h3>Test your localization</h3><p>Configure test plans in Xcode to easily run tests with different settings and define your testing variants in one place. This helps flag any instances of clipping, truncation, layout overlapping, or issues with right-to-left formatting for the devices and languages you support.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/31DA8033-13AE-4DDC-BAB5-A41C64DE227D/2048.jpeg" data-hires="false" alt="Xcode testing screen running variations of a localized app"></div><p>You can use the Localization Screenshots feature to generate localized screenshots from successful tests and export these screenshots for use in tutorials, marketing materials, or your App Store product page. Once your app is localized, use <a href="https://developer.apple.com/testflight/?cid=developer80">TestFlight</a> to share your app with a group of users in the market to get feedback and gather opportunities for improvement.</p><hr><h3>Resources</h3><p><a href="https://developer.apple.com/videos/play/wwdc2019/413/">Watch “Testing in Xcode” &gt;</a></p>
2458 <p><a href="https://help.apple.com/xcode/mac/current/#/dev9d917045f">Learn more about testing your app in Xcode</a></p>
2459 <p><a href="https://developer.apple.com/localization/?cid=developer80">Learn more about expanding your app to new markets &gt;</a></p>
2460 <p><a href="https://developer.apple.com/localization/resources/?cid=developer80">Get more resources for localization &gt;</a></p></description>
2461 <pubDate>Tue, 28 Apr 2020 18:39:14 PDT</pubDate>
2462 </item>
2463 <item>
2464 <title>How to prepare your app for a global audience</title>
2465 <link>https://developer.apple.com/news/?id=vdo2w6y4</link>
2466 <guid>https://developer.apple.com/news/?id=vdo2w6y4</guid>
2467 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/483985DB-0734-442E-987E-8C5009F0EA5D/2048.jpeg" data-hires="false" alt="Three app screens showing different localizations of a fruit app"></div><p>The App Store is available in 175 countries and regions and 40 languages to make it easy for people around the world to discover and download your app. This week, we’re showing you how localizing your app can help make it more relevant to local cultures and languages and help you grow your business — and that starts with preparing your app for a global audience.</p><h3>Structure your app for localization</h3><p>Internationalization, the process of structuring your app’s code and UI for localization, is a fundamental first step in building apps for a global audience. With Apple’s powerful tools and technologies, including Xcode 11, Apple APIs, Auto Layout, and Unicode support, it’s easy to prepare your apps to support multiple languages and regions, even before you know which languages you’d like to add.</p>
2468 <p>In Xcode, make sure your user-visible text and images are separate from your executable code. When you translate these elements into other languages, you can integrate the content back into your app as separate localized resource files stored within the app bundle. </p>
2469 <p>Images — including image sets, Apple Watch complications, Apple TV image stacks, Sprite Atlases, and symbol sets — can be localized directly in your Asset Catalog. You can also use localized <a href="https://developer.apple.com/design/human-interface-guidelines/sf-symbols/overview/">SF system symbols</a> and set the directionality for custom symbols — for example, for right-to-left languages like Arabic and Hebrew.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/43D041DE-3FAB-4C0E-BCE7-D21E5C8E03DF/2048.jpeg" data-hires="false" alt="An Xcode screen displaying localized assets"></div><p>Use Apple APIs to correctly express user-visible or dynamically-generated values, such as dates, lengths, weights, prices, and currency symbols, across different locales. Ensure your app accepts user-generated text in any language and in multiple languages at once, independent of the user interface language. This allows app content to appear in someone’s preferred language and format. </p>
2470 <p>You can also take advantage of Auto Layout to automatically adjust the dimensions and layouts of views, extensive Unicode support to work with text from any language, the powerful text handling technologies of Cocoa and Cocoa Touch to display, lay out, and edit text in many languages, and much more.</p><hr><p><a href="https://developer.apple.com/videos/play/wwdc2019/403/">Watch “Create great localized experiences with Xcode 11” &gt;</a></p>
2471 <p><a href="https://developer.apple.com/documentation/xcode/localizing_your_app">Learn more about localizing your app in Xcode &gt;</a></p><hr><h3>Investigate market factors</h3><p>Market-specific demographics, such as population, language, and purchasing power, can help you better understand areas that might have an affinity or need for your app. Every market has its own preferences for the types of apps or categories customers most enjoy. For example, games are popular worldwide, however strategy games may be more popular in a particular region. </p>
2472 <p>Consider selecting markets with similar attributes to those in which you have already established success, such as strong app downloads, sales, usage, or retention metrics, as this may make for easier growth. When selecting a market, assess how your app might fit in and how its value and functionality aligns with that market’s needs. You may even identify a need in the market that is not yet filled, allowing you to bring unique value to people with your app.</p><h3>Use App Analytics to determine potential markets</h3><p>If you offer your app worldwide but haven’t localized for particular regions, you can look at key performance metrics, such as Product Page Views, App Units, Sales, and Active Devices, filtered by territory. This can help you determine if your app is attracting people in a particular territory that might benefit from localization. For example, if your app is primarily in English and you see lower than average retention or Sessions per Active Device in Germany, you might consider adding German language support. Keep in mind that some markets may have greater proficiency with your app’s primary language, while others may require more significant localization work. Usage data such as active devices, sessions, and retention include only users who have agreed to share their diagnostics and usage information with you.</p><hr><p><a href="https://developer.apple.com/app-store-connect/analytics/?cid=developer80">Learn more about gaining insights with App Analytics &gt;</a></p><hr><h3>Consider local culture and customs</h3><p>While your app and product page should each provide a consistent experience across all markets, it’s sometimes valuable to refine certain elements for cultural relevance. For example, you might try incorporating market-specific content or cultural moments, such as special holiday content or regional art styles. You may want to consider any local policies and market regulations, as well as any political or religious sensitivities, to increase the likelihood that your app is well received.</p><hr><h3>Resources</h3><p><a href="https://developer.apple.com/localization/?cid=developer80">Learn more about expanding your app to new markets &gt;</a></p>
2473 <p><a href="https://developer.apple.com/localization/resources/?cid=developer80">Get more resources for localization &gt;</a></p></description>
2474 <pubDate>Mon, 27 Apr 2020 18:16:59 PDT</pubDate>
2475 </item>
2476 <item>
2477 <title>Apple Search Ads Now Available in Russia</title>
2478 <link>https://developer.apple.com/news/?id=04272020a</link>
2479 <guid>https://developer.apple.com/news/?id=04272020a</guid>
2480 <description><p>Promote your apps to customers on the App Store in Russia with Apple Search Ads — an efficient and easy way for people to discover your app the very moment they’re searching for apps like yours. If you sign up for a new Apple Search Ads account, you can take advantage of a 100 USD credit to reach customers in 60 countries and regions. </p><p><a href="https://searchads.apple.com/?cid=sa-us-in-A173-dr-a-news">Learn about <span class="icon icon-after icon-chevronright nowrap">Search Ads</span></a></p></description>
2481 <pubDate>Mon, 27 Apr 2020 09:03:43 PDT</pubDate>
2482 </item>
2483 <item>
2484 <title>Meet the developer: Philip Lam</title>
2485 <link>https://developer.apple.com/news/?id=wk9cj822</link>
2486 <guid>https://developer.apple.com/news/?id=wk9cj822</guid>
2487 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/B6FFF57A-FA47-47FB-AE68-BFF6C95533CD/2048.jpeg" data-hires="false" alt="The A.I.-powered app has revolutionized basketball practice."><p class="typography-caption">The A.I.-powered app has revolutionized basketball practice.</p></div><p>HomeCourt is quite possibly the biggest thing to happen to basketball practice since the invention of the sneaker. </p>
2488 <p>The app uses artificial intelligence (A.I.) and augmented reality (AR) to create and shape on-court basketball drills. It can tell whether you’re shooting off the dribble, catching and shooting, or just practicing free throws. It will measure your release time and the angle of your shot. It knows how fast you’re moving before you shoot. It calculates your vertical leap. And after your workout, you can see performance charts and a video breakdown right away. It’s a metrics fan’s dream.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/AF949544-D50C-47A4-BF7D-AD03F5A4CFDE/2048.jpeg" data-hires="false" alt="HomeCourt lets you watch your dribbling skills in real time."><p class="typography-caption">HomeCourt lets you watch your dribbling skills in real time.</p></div><p>HomeCourt offers real-time coaching as well. With the help of your iPhone or iPad’s front-facing camera, you can get real-time feedback from coaches across town or on the other side of the globe. </p>
2489 <p>As people shelter in place around the world, HomeCourt has made its services free to everyone through May 31. A recent feature update also lets coaches create a virtual team roster in the app, so players, coaches, and parents can participate in remote workouts, drills, and competitions. The company is also working on other ways it can support basketball players and coaches while school activities, practices, and tournaments are being cancelled or postponed.</p>
2490 <p>Cofounder Philip Lam says the company’s shot-tracking prototype kicked everything off. “Even though it could only track shots in a few specific situations,” he says, “it made us believe it was possible to use a single smartphone camera to track complex basketball activities.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/03454FE9-B553-45AC-892A-BAA37B6A761D/2048.jpeg" data-hires="false" alt="Get instant feedback right on the court."><p class="typography-caption">Get instant feedback right on the court.</p></div><p>Today the company has 22 employees in Hong Kong and San Jose, California, and players across the globe. </p>
2491 <p>Here Lam explains how HomeCourt got into the game:</p>
2492 <p><em>”Before we launched, we played pickup basketball every week, and we started talking about how great it would be if we could get our stats — who hit the most shots, who got the most rebounds, all that stuff. And the idea just came up: Can we actually use the camera on the phone to do that for us? That’s how it started.</em></p>
2493 <p><em>We built HomeCourt on mobile to make it affordable to players around the world. We came up with the idea of simulating the Stephen Curry tennis-ball drill with an interactive AR experience. That turned out to be the foundation of HomeCourt’s dribble workout. Everyone on the team was really excited to try it and compete with each other.”</em></p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/C8E799E1-3C62-445E-8D1F-5A80D845C5ED/2048.jpeg" data-hires="false" alt="Yes, the app keeps track of this many stats."><p class="typography-caption">Yes, the app keeps track of this many stats.</p></div><p><em>”Most other basketball training applications are content-based — no other mobile solution provides this system of proven training techniques combined with real-time A.I.-powered analysis.</em></p>
2494 <p><em>In mid-2018, we built a prototype that could track advanced metrics, like release angle, release time, and vertical jump. We named this feature Shot Science. At that time, the iPhone X was the latest iOS device. It was powerful, but it still wasn’t fast enough to run Shot Science in real time and enable players to hear audio shot analysis during a live practice.</em></p>
2495 <p><em>The new iPhone series came in September 2018, and it was a much more powerful device for running machine-learning algorithms. We found our algorithm [ran] six times faster in the iPhone series with the A12 Bionic chip. With the optimization in our algorithm, we could finally offer Real-Time Shot Science. The opportunity to demonstrate that at the 2018 Apple iPhone event [was] definitely one of the most special days in our journey so far.”</em></p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/6C4080D2-3099-4CD2-9139-6BFC62AA830D/2048.jpeg" data-hires="false" alt="A sketch of the design that eventually became HomeCourt."><p class="typography-caption">A sketch of the design that eventually became HomeCourt.</p></div><p><em>”We’ve had parents tell us that it becomes a competition with videogames: “Oh, they really do practice more, and they play fewer videogames, and I’m really happy about it!” And I’m really happy about it too!</em></p>
2496 <p><em>And, yes, we still definitely play every week.”</em></p><hr><p><em>Originally published on the App Store.</em></p></description>
2497 <pubDate>Fri, 24 Apr 2020 10:44:04 PDT</pubDate>
2498 </item>
2499 <item>
2500 <title>Design launch screens for seamless starts</title>
2501 <link>https://developer.apple.com/news/?id=voseytot</link>
2502 <guid>https://developer.apple.com/news/?id=voseytot</guid>
2503 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/4BA466BD-84A5-48AB-BB84-F97AB8164464/2048.jpeg" data-hires="false" alt="Two iPhone screens side by side displaying the launch screen and the full interface of Safari"></div><p>Instantaneous app launches are a big part of providing a great experience on iPhone or iPad. Whether someone is tapping on your app icon for the first time or returning from elsewhere, they should be able to get started immediately. A launch screen lets you provide that seamless and adaptive experience while your app loads any pertinent information in the background, and you can create it directly in Xcode.</p>
2504 <p>Designing the right storyboard for your launch screen can make a world of difference in how quickly you can immerse people into your user interface. Here are a few recommendations and tips to help you create great launch screens for your app.</p><h3>Support all device screen sizes by creating launch screen storyboards in Xcode</h3><p>Although people won’t be able to interact with your launch screen, you should always build your screen using an Xcode storyboard. Storyboards are flexible and adaptable and support all device screen sizes, which allows you to use a single storyboard to manage your launch screens for every platform you support.</p>
2505 <p><em>Note: Don't use a static image for your launch screen. Static images have been deprecated and all App Store apps must use an Xcode storyboard to provide an app’s launch screen by June 30, 2020. Learn more <a href="https://developer.apple.com/news/?id=03262020b">here</a>.</em></p><h3>Mirror your main screen</h3><p>The fastest way to convince someone your app is responsive and ready to go is to show them the same interface in your launch screen that they expect on your app’s main screen. </p>
2506 <p>When an app first starts up, it shows its launch screen before transitioning to the main interface. When someone switches away, the app automatically saves an App Snapshot of its interface so that it can return to where they left off; if an app can’t restore its state in this way, however, it will display the launch screen instead.</p>
2507 <p>As such, you want to make sure your launch screen storyboard looks close to identical to your main interface. If you include elements that look dramatically different, it may be confusing or jarring when your app shifts to the main screen. If you have an app that might take a bit longer to load, like a game, and you’d like to provide any kind of animated experience during that time, we recommend using a solid color background; from there, the app can move gracefully to the game’s first screen.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/13281207-EE0F-4F4E-9216-E52E4C92AB2D/2048.jpeg" data-hires="false" alt=""><p class="typography-caption"></p></div><h3>Consider the light and the dark</h3><p>When someone launches your app, you want them to feel immersed — no matter their appearance settings. We’ve already addressed how to create adaptive launch screen storyboards, but it’s also important to think about a device’s appearance. If your app supports Dark Mode, your launch screen storyboard should as well. Make sure that your storyboard uses adaptive colors, and set the background of the view to the System Background Color.</p><h3>Assess your assets</h3><p>Anything you add to your launch screen storyboard should be optimized appropriately. If you want to add an asset to your storyboard, such as a static image that normally appears as part of your app’s user interface, make sure that its image dimensions are no larger than the view it's going to be placed in. Your storyboard may not display if you use assets at larger resolutions.</p><h3>Launch with a global audience in mind</h3><p>Unlike your app’s interface, your app’s launch screen can’t be localized into other languages: Any text you display in your storyboard will remain in the original language you select. As such, it's best to avoid including any text at all.</p><hr><h3>Resources</h3><p><a href="https://developer.apple.com/videos/play/wwdc2019/423/">Watch “Optimizing app launch”</a></p>
2508 <p><a href="https://developer.apple.com/library/archive/documentation/ToolsLanguages/Conceptual/Xcode_Overview/DesigningwithStoryboards.html">Learn more about designing with storyboards in the Developer Library</a></p>
2509 <p><a href="https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/launch-screen/">Learn more about launch screens in the Human Interface Guidelines</a></p>
2510 <p><a href="https://help.apple.com/xcode/mac/11.4/#/dev31645f17f">Learn how to create a Storyboard using Interface Builder</a></p>
2511 <p><a href="https://developer.apple.com/documentation/uikit/app_and_environment/responding_to_the_launch_of_your_app">Learn more about responding to app launches in the Developer Library</a></p>
2512 <p><a href="https://help.apple.com/xcode/mac/11.4/#/dev62c993289">Learn more about storyboards, scenes, and connections in the Xcode guide</a></p>
2513 <p><a href="https://developer.apple.com/documentation/xcode/supporting_dark_mode_in_your_interface">Learn more about supporting Dark Mode in your interface in the Developer Library</a></p></description>
2514 <pubDate>Thu, 23 Apr 2020 11:08:10 PDT</pubDate>
2515 </item>
2516 <item>
2517 <title>How to implement UI state restoration</title>
2518 <link>https://developer.apple.com/news/?id=4ixc0yxs</link>
2519 <guid>https://developer.apple.com/news/?id=4ixc0yxs</guid>
2520 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/C093FF5F-7F32-4ABF-8BB5-B0C2AF6A1703/2048.jpeg" data-hires="false" alt="Multiple scenes in the foreground of the multitasking switcher on iPad"></div><p>People naturally multitask on their devices. Whether they’re switching from app to app, bringing together apps on iPad using Slide Over or Split View, or creating multiple windows of the same app, they should be able to pick up right where they left off — and UI state restoration is a core part of making that experience seamless.</p>
2521 <p>When your app goes out of view, the app’s process is typically put on pause; it’s not given any more CPU time, which keeps the processor free for other tasks. If your app has background processes that are running, the system can even terminate those if an active app needs more resources than currently available.</p>
2522 <p>Restoring the state of your UI is a crucial part of making your app feel responsive — and it’s especially important if you plan to support multiple windows in your iPadOS app. If you have a note-taking app that has four different notes open in different Split View pairings, for example, state restoration helps preserve each note, rather than returning someone to the main screen when they open one of the windows.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/AD4008A5-831B-4D78-9AA9-1D8059D4BB33/2048.jpeg" data-hires="false" alt="Two different types of scenes can be backgrounded and processes halted. These scenes’ states should be saved to restore later."><p class="typography-caption">Two different types of scenes can be backgrounded and processes halted. These scenes’ states should be saved to restore later.</p></div><h3>Meet NSUserActivity</h3><p><code>NSUserActivity</code> is a core part of modern state restoration with <code>UIScene</code> and <code>UISceneDelegate</code>: It provides a lightweight way to capture the state of your app and put it to use later, holding key information for both view controllers and important view states — information that can also be used when constructing view controllers for <a href="https://developer.apple.com/documentation/foundation/task_management/implementing_handoff_in_your_app">Handoff</a> and <a href="https://developer.apple.com/documentation/uikit/inter-process_communication/allowing_apps_and_websites_to_link_to_your_content">Universal Linking</a>.</p>
2523 <p>While what you store in <code>NSUserActivity</code> is up to you, we recommend collecting only the bare minimum so that your app can quickly restore itself. Think of the most unique and simple way you can identify your view controller, like a clear identifier or URL. Include that information, and make sure you can identify where the view controller lives in your navigation and how content should appear within it. For example, when using an Xcode storyboard you may want to store and retrieve view controllers using restoration IDs.</p><h3>Get started with UI state restoration</h3><p>The best way to implement UI state restoration is to make your app scene-based, which requires iOS 13, iPadOS 13, Mac Catalyst 10.13, or tvOS 13 or later. (For more information on working with scenes in your app, check out the <a href="https://developer.apple.com/documentation/uikit/app_and_environment/scenes">Developer Library</a>.) Here’s how to get started with scene-based state restoration: </p>
2524 <ol>
2525 <li>Create a <code>NSUserActivity</code> object to save the app's state. This can be created in your scene delegate.</li>
2526 <li>In this <code>NSUserActivity</code>, store relevant information (like the current navigation’s state, and view controllers that have been presented or pushed) along with your user’s intent.</li>
2527 <li>Return this <code>NSUserActivity</code> within <code>stateRestorationActivity(for:)</code> in the scene delegate.</li>
2528 </ol><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/C4E81D37-61B8-4384-ADF9-B825B1AA59E2/2048.jpeg" data-hires="false" alt="You need to collect the right information in each UIScene to pick up where someone left off."><p class="typography-caption">You need to collect the right information in each UIScene to pick up where someone left off.</p></div><p>This <code>NSUserActivity</code> will now be stored inside the scene’s <code>stateRestorationActivity</code> property. When your app needs to restore its state, it should do so by looking for this saved <code>NSUserActivity</code> under <code>scene(_:willConnectTo:options:)</code> in the scene delegate.</p>
2529 <p><strong>What about the older view controller-based state restoration APIs?</strong> </p>
2530 <p>If you need to support older versions of iOS, macOS, or tvOS, you can use older view controller-based APIs for state restoration via restoration classes and the app delegate. This also means if you want to update your app to adopt UIScene as well as implement UI state restoration across multiple versions of iOS, you will need to implement both scene-based and view-controller based APIs. However, we highly recommend building scene-based UI state restoration.</p>
2531 <p>Compared to the older APIs, modern state restoration requires a different approach to how you define, save, and restore your UI state and your user’s intent. With a scene-based app, you have to separate events in an application’s life cycle and the scene’s life cycle, which means tracking changes also differs. Having multiple scenes means there are many more windows to track, each with unique user actions and navigation history. For some of those windows, you may choose not to restore state depending on their function, requiring state restoration to be more flexible and dependent on how you define the user’s intent.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/4AA05114-11D2-4E36-B59C-EC89461A6763/2048.jpeg" data-hires="false" alt="Prior to the introduction of UIScene, each app had a singular life cycle."><p class="typography-caption">Prior to the introduction of UIScene, each app had a singular life cycle.</p></div><p>If you can update your app to scene-based restoration and take advantage of <code>NSUserActivity</code>, you’ll also unlock easier pathways to implementing features like Spotlight search, Handoff, enabling Universal Links, and creating new scenes as primary or auxiliary windows. And you’ll provide a smoother and frictionless experience for people using your app, too.</p><hr><h3>Resources</h3><p><a href="https://developer.apple.com/videos/play/wwdc2019/258/">Watch “Architecting your app for multiple windows”</a></p>
2532 <p><a href="https://developer.apple.com/videos/play/wwdc2019/259/">Watch “Targeting content with multiple windows”</a></p>
2533 <p><a href="https://developer.apple.com/videos/play/wwdc2019/246/">Watch “Window management in your multitasking app”</a></p>
2534 <p><a href="https://developer.apple.com/documentation/uikit/view_controllers/preserving_your_app_s_ui_across_launches">Learn more about restoring state in non-scene based apps</a></p>
2535 <p><a href="https://developer.apple.com/documentation/uikit/uiviewcontroller/restoring_your_app_s_state">Explore sample code for restoring your app’s state</a></p></description>
2536 <pubDate>Wed, 22 Apr 2020 11:37:15 PDT</pubDate>
2537 </item>
2538 <item>
2539 <title>The App Store Expands to 20 New Countries</title>
2540 <link>https://developer.apple.com/news/?id=04212020a</link>
2541 <guid>https://developer.apple.com/news/?id=04212020a</guid>
2542 <description><p>You can now distribute your apps in 175 countries and regions on the App Store, allowing you to increase your impact and grow your business. As you deliver great experiences to an even more diverse audience, learn how you can localize your apps, product pages, and marketing materials to better connect with customers in different locations.</p><p>As a reminder, to allow your app to appear in these new countries, your membership Account Holder first needs to accept the updated Program License Agreement by signing in to their account on the Apple Developer website. If you have a Paid Applications Agreement, the Account Holder will also need to accept this updated agreement in App&nbsp;Store Connect. To make your app automatically available in all new countries, select the “New Countries or Regions” checkbox. </p><p><a href="https://developer.apple.com/account/">View <span class="icon icon-after icon-chevronright nowrap">your account</span></a></p><p><a href="https://developer.apple.com/localization/">Learn about expanding to <span class="icon icon-after icon-chevronright nowrap">new markets</span></a></p></description>
2543 <pubDate>Tue, 21 Apr 2020 13:33:02 PDT</pubDate>
2544 </item>
2545 <item>
2546 <title>Updated Guidelines for HealthKit</title>
2547 <link>https://developer.apple.com/news/?id=04202020a</link>
2548 <guid>https://developer.apple.com/news/?id=04202020a</guid>
2549 <description><p>HealthKit allows your app to provide valuable health-related insights to users by working with the Apple Health app. The updated HealthKit Human Interface Guidelines include guidance on using the Apple Health icon in your app, enhanced editorial guidance on using Apple Health-related terms, and clarified privacy and data-usage guidelines.</p><p><a href="https://developer.apple.com/design/human-interface-guidelines/healthkit/overview/">View Human <span class="icon icon-after icon-chevronright nowrap">Interface Guidelines</span></a></p><p><strong>Works with Apple Health badge now available.</strong> You can also now use the Works with Apple Health badge to promote your HealthKit-enabled apps. Download the badge and review the guidelines for using the badge on marketing communications.</p><p><a href="https://developer.apple.com/health-fitness/works-with-apple-health/">Learn about <span class="icon icon-after icon-chevronright nowrap">the badge</span></a></p></description>
2550 <pubDate>Mon, 20 Apr 2020 21:59:22 PDT</pubDate>
2551 </item>
2552 <item>
2553 <title>Meet the developer: Brian Mueller</title>
2554 <link>https://developer.apple.com/news/?id=8xd0lp1u</link>
2555 <guid>https://developer.apple.com/news/?id=8xd0lp1u</guid>
2556 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/1D0AA298-AF55-4EFB-B16D-D81E457543C5/2048.jpeg" data-hires="false" alt="Brian Mueller can make anything hilarious. Even the weather."><p class="typography-caption">Brian Mueller can make anything hilarious. Even the weather.</p></div><p>Brian Mueller is something of a Renaissance man. He single-handedly codes, designs, illustrates, and writes all of the dialogue for his wisecracking Carrot apps, which fall into categories that typically don’t have a lot of personality: to-do lists, alarm clocks, calorie counters.</p>
2557 <p>To call his style droll would be an understatement. The exercise app <em>Carrot Fit</em>, for instance, implores you to “jump flabby human, jump for freedom!” in a deadpan robotic voice.</p><hr><p><em>For more about Brian Mueller and his approach, check out <a href="https://developer.apple.com/app-store/grailr/?cid=developer80">this video interview</a> where he details Carrot Weather’s evolution on Apple Watch.</em></p><hr><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/FA00E49D-477F-4EE9-A8AF-990F6F53AC9A/2048.jpeg" data-hires="false" alt="Each Carrot app delivers surprising punch lines."><p class="typography-caption">Each Carrot app delivers surprising punch lines.</p></div><p><em>Carrot To-Do</em> is equally sardonic — “It’s been 18 hours since you did anything useful” — while <em>Carrot Weather</em> takes liberties with its forecasts. “It’s a beautiful day! Ha ha, just kidding. It’s raining.”</p>
2558 <p>A smack-talking to-do list app might not seem like the big idea that would let you quit your day job. In fact, Carrot’s success caught even Mueller off guard. “For some reason, people have responded to this. I still can’t believe sometimes any of this caught on,” he says.</p>
2559 <p>Working out of a spare room in his Philadelphia-area home, the former aspiring screenwriter has penned thousands of lines of dialogue for his apps, which he constantly updates to nod to current events. (A recent one-liner from <em>Carrot Weather</em>: “Don’t tell anyone, but I regularly send bad weather to areas with high concentrations of stay-at-home order protesters.”)</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/0B9918C1-55F0-4D10-BE54-0A86F0F2B7A9/2048.jpeg" data-hires="false" alt="Mueller is a one-man team, making half a dozen apps from home."><p class="typography-caption">Mueller is a one-man team, making half a dozen apps from home.</p></div><p>As for the inspiration for <em>Carrot</em>, Mueller credits those closest to him: his mom, sister, and wife — all of whom tease one another relentlessly.</p>
2560 <p>“A lot of the dialogue for <em>Carrot</em> is drawn out of stuff that we’ve actually said to each other,” he says. “Every time my wife says something funny, I write it down for the apps. Sometimes she gets annoyed by that, but she’s a lot funnier than I am.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/39ABBAA6-B324-42F0-895B-C8901CC12DE8/2048.jpeg" data-hires="false" alt="Brian Mueller’s wife, Greta, is one of Carrot’s biggest inspirations."><p class="typography-caption">Brian Mueller’s wife, Greta, is one of Carrot’s biggest inspirations.</p></div><p>When Mueller dreamed up the idea to create a character-driven app, he had zero coding experience. “I’m an English major with a creative-writing minor. I love to write and create characters and tell stories, but I had no real idea of what I would do with my life.” </p>
2561 <p>Mueller’s first instinct was to hire a developer to realize his vision. “I didn’t want to sound like a jerk when talking to a programmer, so I bought a book on iOS programming for beginners, just to know what terms to use,” he says. As he read <em>iOS Programming: The Big Nerd Ranch Guide</em>, Mueller was surprised by how easy it is to make an app. By January 2013, <em>Carrot To-Do</em> had launched on the App Store. It took him about a month to create.</p><blockquote class="article-quote"><p>I love to write and create characters and tell stories, but I had no real idea of what I would do with my life.</p><cite>Brian Mueller, Carrot creator</cite></blockquote><p>Initially, sales were tepid. It took a couple of years, and a few more apps, before <em>Carrot</em> found a broad-enough audience for Mueller to quit his day job and become a full-time developer. </p>
2562 <p>The <em>Carrot</em> universe continues to expand. Mueller has built seven iOS apps and an iOS sticker pack, as well as Apple Watch, Apple TV, and Mac versions of <em>Carrot Weather</em>. With the arrival of AR (augmented reality) technologies on iOS, Mueller taught himself how to add an AR component to <em>Carrot Weather</em>. Now you can see the surly character Carrot as a spherical “ocular sensor” hovering in your surroundings. She turns red if you annoy her.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/E642736A-A29B-4CAB-9EBC-0369D7EF4675/2048.jpeg" data-hires="false" alt="Watch Carrot float around your world in Carrot Weather’s AR mode."><p class="typography-caption">Watch Carrot float around your world in Carrot Weather’s AR mode.</p></div><p>Although being a one-man app shop isn’t easy, Mueller enjoys wearing all the hats. “When I hit a road block with coding, I can take a break and switch to writing or doing some design work,” he says. “I’m not stuck doing the same thing over and over.</p>
2563 <p>“It's a weird way to work, but I'm a bit of a perfectionist and it allows me to make exactly what I want.”</p>
2564 <p><em>Originally published on the App Store.</em></p></description>
2565 <pubDate>Fri, 17 Apr 2020 16:42:42 PDT</pubDate>
2566 </item>
2567 <item>
2568 <title>Upcoming price and tax changes in Barbados, Malaysia, Moldova, and Uzbekistan</title>
2569 <link>https://developer.apple.com/news/?id=04142020a</link>
2570 <guid>https://developer.apple.com/news/?id=04142020a</guid>
2571 <description><p>When taxes or foreign exchange rates change, we sometimes need to update prices on the App Store. In the next few days, prices of apps on the App Store and in-app purchases (excluding auto-renewable subscriptions) will change in Barbados, Moldova, and Uzbekistan due to new value-added taxes. Your proceeds will be adjusted accordingly and will be calculated based on the tax-exclusive price.</p><p>A low value-added tax was also introduced in Malaysia. Prices on the App Store in Malaysia will not change and proceeds will be adjusted accordingly.</p><p>You can download the updated price tier charts now. Once these changes go into effect, the Pricing and Availability section of My Apps will be updated. You can change the price of your apps and in-app purchases (including auto-renewable subscriptions) at any time in App Store Connect. If you offer subscriptions, you can choose to preserve prices for existing subscribers.</p><p><a href="https://itunespartner.apple.com/assets/downloads/0420-Apps-Pricing.pdf">View updated <span class="icon icon-after icon-chevronright nowrap">price tiers</span></a></p></description>
2572 <pubDate>Tue, 14 Apr 2020 18:42:16 PDT</pubDate>
2573 </item>
2574 <item>
2575 <title>Meet the developer: Catana Chetwynd</title>
2576 <link>https://developer.apple.com/news/?id=ab1gdyed</link>
2577 <guid>https://developer.apple.com/news/?id=ab1gdyed</guid>
2578 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/A5E69232-C8E3-425D-87B1-691876D6B960/2048.jpeg" data-hires="false" alt="For fans of Catana Comics, her sticker app was love at first sight."><p class="typography-caption">For fans of Catana Comics, her sticker app was love at first sight.</p></div><p>Thanksgiving with her boyfriend’s parents, a bout of the flu, and a “very old” iPad. These were the circumstances that gave rise to Catana Chetwynd’s beloved cartoons back in 2016, when she was 21 years old.</p>
2579 <p>“I had been playing around with drawing on the iPad for a few months and John [now her fiancé] suggested that I make a comic,” she says. “It seemed like a good way to pass the time, since I wasn’t feeling well. Turns out, it was really fun!”</p>
2580 <p>Over the next few days, she drew five more comics based on everyday situations in her relationship, like not-so-subtly requesting back rubs from John and rolling her eyes at his juvenile jokes.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/F83A3965-F100-4223-9B0E-666B8F976C97/2048.jpeg" data-hires="false" alt="John and Catana: the real-life couple behind the cartoons."><p class="typography-caption">John and Catana: the real-life couple behind the cartoons.</p></div><p>John, a software engineer, posted them on Reddit, and the internet fell hard: more than 2,000 comments poured in.
“We were really surprised by the flood of positive responses,” Chetwynd says. John set up a website and she created an Instagram account—which now has nearly 3 million followers—and Catana Comics was born.
“There are some incredibly awesome webcomics out there,” Chetwynd says, “but when we started, there weren’t really any based on a couple.” She has found that most of her fans enjoy sharing her comics with a significant other.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/A82AEA90-53EC-4497-940D-43836A6526E7/2048.jpeg" data-hires="false" alt="How Catana Comics go from sketch to screen."><p class="typography-caption">How Catana Comics go from sketch to screen.</p></div><p>It makes sense, then, that the number-one request Chetwynd got from her followers was for a sticker pack. With the Catana Comics iMessage app, fans can easily exchange her big-eyed, huge-hearted caricatures with a special someone.
“Shortly after we came out with the first batch of stickers,” Chetwynd says, “I received an email from a woman who said that her husband was on a very long business trip in a different time zone. She loved that the stickers allowed them to quickly send emotive messages without using words.”</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/19A625F0-EAEA-4FB4-916C-F5E2F68651A7/2048.jpeg" data-hires="false" alt="Fans demanded stickers—and here they are."><p class="typography-caption">Fans demanded stickers—and here they are.</p></div><p>Chetwynd can relate, since she and John connect via her stickers too: “We both work from home, but in different rooms, and there are so many days where the only communication we’ll have is sending each other a sticker every hour or so.”
One of her go-tos: a drawing of John looking at a picture of her saying, “I miss you.”
“It was in the very first release and I wasn’t thinking it could be funny when I made it, but now John will go to the bathroom and I’ll send it to him,” she says. “I use it almost every day.”</p>
2581 <p><em>Originally published on the App Store.</em></p></description>
2582 <pubDate>Fri, 10 Apr 2020 10:30:52 PDT</pubDate>
2583 </item>
2584 <item>
2585 <title>How to support Route Guidance in CarPlay Dashboard</title>
2586 <link>https://developer.apple.com/news/?id=tsmnvknj</link>
2587 <guid>https://developer.apple.com/news/?id=tsmnvknj</guid>
2588 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/C75DE8B0-854D-4582-9506-EF587989D1A5/2048.jpeg" data-hires="false" alt="CarPlay Dashboard showing Maps"></div><p>CarPlay Dashboard consolidates music, maps, and Siri suggestions into a single screen inside your car for a safer, smarter experience. Starting with iOS 13.4, you can add support for CarPlay Dashboard in your navigation app, too: Make your map, upcoming maneuvers, and dashboard buttons available at a glance by adopting a few new capabilities inside the CarPlay framework.</p>
2589 <p><em>Note: To integrate your app with CarPlay Dashboard, your CarPlay navigation app needs to support <a href="https://developer.apple.com/documentation/uikit/app_and_environment/scenes">UIScene</a>. For more information on adopting UIScene, check out <a href="https://developer.apple.com/videos/play/wwdc2019/212/">“Introducing Multiple Windows on iPad”</a>.</em></p><h3>Get started with CarPlay Dashboard</h3><p>To support CarPlay Dashboard inside your navigation app, you’ll need to update to <a href="https://developer.apple.com/download/">Xcode 11.4</a> if you haven’t already. </p>
2590 <p>iOS 13.4 offers new capabilities within the CarPlay framework: <code>CPDashboardButton</code>, <code>CPDashboardController</code>, and <code>CPTemplateApplicationDashboardScene</code>.</p>
2591 <p>CPTemplateApplicationDashboardScene is a new UIScene subclass that CarPlay creates when it determines that your app should appear in CarPlay Dashboard.</p>
2592 <p>CPDashboardController and CPDashboardButton let you manage controls that appear in CarPlay Dashboard.</p><h3>How to add support for CarPlay Dashboard</h3><p>To take advantage of CarPlay Dashboard, start by supporting CPTemplateApplicationDashboardScene and its related protocol CPTemplateApplicationSceneDelegate.</p>
2593 <p><em>Note: You need use CPTemplateApplicationSceneDelegate instead of CPApplicationDelegate to support this feature.</em></p>
2594 <p>We’ll take you through each step below. In addition, we’ve provided a sample application scene manifest for your reference.</p><pre class="code-source"><code><span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>UIApplicationSceneManifest<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
2595 <span class="syntax-tag">&lt;<span class="syntax-name">dict</span>&gt;</span>
2596 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>CPSupportsDashboardNavigationScene<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
2597 <span class="syntax-tag">&lt;<span class="syntax-name">true</span>/&gt;</span>
2598 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>UISceneConfigurations<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
2599 <span class="syntax-tag">&lt;<span class="syntax-name">dict</span>&gt;</span>
2600 <span class="syntax-comment">&lt;!-- For device scenes --&gt;</span>
2601 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>UIWindowSceneSessionRoleApplication<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
2602 <span class="syntax-tag">&lt;<span class="syntax-name">array</span>&gt;</span>
2603 <span class="syntax-tag">&lt;<span class="syntax-name">dict</span>&gt;</span>
2604 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>UISceneClassName<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
2605 <span class="syntax-tag">&lt;<span class="syntax-name">string</span>&gt;</span>UIWindowScene<span class="syntax-tag">&lt;/<span class="syntax-name">string</span>&gt;</span>
2606 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>UISceneConfigurationName<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
2607 <span class="syntax-tag">&lt;<span class="syntax-name">string</span>&gt;</span>Phone<span class="syntax-tag">&lt;/<span class="syntax-name">string</span>&gt;</span>
2608 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>UISceneDelegateClassName<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
2609 <span class="syntax-tag">&lt;<span class="syntax-name">string</span>&gt;</span>MyAppWindowSceneDelegate<span class="syntax-tag">&lt;/<span class="syntax-name">string</span>&gt;</span>
2610 <span class="syntax-tag">&lt;/<span class="syntax-name">dict</span>&gt;</span>
2611 <span class="syntax-tag">&lt;/<span class="syntax-name">array</span>&gt;</span>
2612 <span class="syntax-comment">&lt;!-- For the main CarPlay scene --&gt;</span>
2613 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>CPTemplateApplicationSceneSessionRoleApplication<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
2614 <span class="syntax-tag">&lt;<span class="syntax-name">array</span>&gt;</span>
2615 <span class="syntax-tag">&lt;<span class="syntax-name">dict</span>&gt;</span>
2616 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>UISceneClassName<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
2617 <span class="syntax-tag">&lt;<span class="syntax-name">string</span>&gt;</span>CPTemplateApplicationScene<span class="syntax-tag">&lt;/<span class="syntax-name">string</span>&gt;</span>
2618 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>UISceneConfigurationName<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
2619 <span class="syntax-tag">&lt;<span class="syntax-name">string</span>&gt;</span>CarPlay<span class="syntax-tag">&lt;/<span class="syntax-name">string</span>&gt;</span>
2620 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>UISceneDelegateClassName<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
2621 <span class="syntax-tag">&lt;<span class="syntax-name">string</span>&gt;</span>MyAppCarPlaySceneDelegate<span class="syntax-tag">&lt;/<span class="syntax-name">string</span>&gt;</span>
2622 <span class="syntax-tag">&lt;/<span class="syntax-name">dict</span>&gt;</span>
2623 <span class="syntax-tag">&lt;/<span class="syntax-name">array</span>&gt;</span>
2624 <span class="syntax-comment">&lt;!-- For the CarPlay Dashboard scene --&gt;</span>
2625 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>CPTemplateApplicationDashboardSceneSessionRoleApplication<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
2626 <span class="syntax-tag">&lt;<span class="syntax-name">array</span>&gt;</span>
2627 <span class="syntax-tag">&lt;<span class="syntax-name">dict</span>&gt;</span>
2628 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>UISceneClassName<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
2629 <span class="syntax-tag">&lt;<span class="syntax-name">string</span>&gt;</span>CPTemplateDashboardScene<span class="syntax-tag">&lt;/<span class="syntax-name">string</span>&gt;</span>
2630 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>UISceneConfigurationName<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
2631 <span class="syntax-tag">&lt;<span class="syntax-name">string</span>&gt;</span>CarPlay-Dashboard<span class="syntax-tag">&lt;/<span class="syntax-name">string</span>&gt;</span>
2632 <span class="syntax-tag">&lt;<span class="syntax-name">key</span>&gt;</span>UISceneDelegateClassName<span class="syntax-tag">&lt;/<span class="syntax-name">key</span>&gt;</span>
2633 <span class="syntax-tag">&lt;<span class="syntax-name">string</span>&gt;</span>MyAppCarPlayDashboardSceneDelegate<span class="syntax-tag">&lt;/<span class="syntax-name">string</span>&gt;</span>
2634 <span class="syntax-tag">&lt;/<span class="syntax-name">dict</span>&gt;</span>
2635 <span class="syntax-tag">&lt;/<span class="syntax-name">array</span>&gt;</span>
2636 <span class="syntax-tag">&lt;/<span class="syntax-name">dict</span>&gt;</span>
2637 <span class="syntax-tag">&lt;/<span class="syntax-name">dict</span>&gt;</span></code></pre><p><strong>Step 1: Create a scene delegate</strong></p>
2638 <p>To begin, define a scene delegate for CPTemplateApplicationSceneSessionRoleApplication. This can be done dynamically in your UIApplicationDelegate by returning a configuration in application:configurationForConnectingSceneSession:options:, or ahead of time in your app's Info.plist in the Application Scene Manifest. </p>
2639 <p>The delegate must conform to CPTemplateApplicationSceneDelegate, where it will be given an instance of CPInterfaceController and CPWindow, as you've been used to with CPApplicationDelegate.</p>
2640 <p>Additionally, to support CPTemplateApplicationDashboardScene, include a new key in your Application Scene Manifest to declare support for CarPlay Dashboard: CPSupportsDashboardNavigationScene with a value of true.</p>
2641 <p><strong>Step 2: Define the dashboard delegate</strong></p>
2642 <p>Next define your delegate to the dashboard scene just like you would for the main template application scene. This delegate conforms to CPTemplateApplicationDashboardSceneDelegate and will be given an instance of CPDashboardController and UIWindow. </p>
2643 <p><strong>Step 3: Draw your CarPlay Dashboard content</strong></p>
2644 <p>Use the provided window to draw navigation related content for display in the CarPlay Dashboard, similar to the CPWindow given to the main template application scene. You can also provide two instances of CPDashboardButton to CPDashboardController that appear in the guidance card widget while your app is not actively navigating.</p>
2645 <p><strong>Step 4: Use your app in CarPlay Dashboard</strong></p>
2646 <p>People can interact with your app through both the dashboard buttons as well as within your main app interface. When navigation begins in your app using CPMapTemplate and CPNavigationSession, CarPlay will automatically display maneuvers in the guidance widget. When navigation ends, it will revert to your currently set dashboard buttons.</p><hr><h3>Resources</h3><p><a href="http://developer.apple.com/carplay">Learn more about creating apps for CarPlay</a></p>
2647 <p><a href="https://developer.apple.com/documentation/carplay/integrating_carplay_with_your_navigation_app">Learn more about integrating CarPlay with your navigation app in the Developer Library</a></p></description>
2648 <pubDate>Thu, 09 Apr 2020 13:53:07 PDT</pubDate>
2649 </item>
2650 <item>
2651 <title>How to scan and analyze surroundings with the LiDAR Scanner on iPad Pro</title>
2652 <link>https://developer.apple.com/news/?id=qwhaoe0x</link>
2653 <guid>https://developer.apple.com/news/?id=qwhaoe0x</guid>
2654 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/19D84ED0-2828-48F0-A76F-8338C27049EF/2048.jpeg" data-hires="false" alt="A table with a mesh, virtual text on top of it, and occluded virtual text below it"></div><p>ARKit 3.5 can take advantage of the LiDAR Scanner on the iPad Pro 11-inch (2nd generation) and iPad Pro 12.9-inch (4th generation) to help your apps better understand physical environments. </p>
2655 <p>Learn how your apps can use information from the cameras and LiDAR Scanner to analyze the real world, get depth information, and form 3D meshes that:</p>
2656 <ul>
2657 <li>Accurately locate points on physical surfaces</li>
2658 <li>Recognize and classify physical objects</li>
2659 <li>Occlude virtual objects with real-world objects</li>
2660 <li>Enable realistic interactions between virtual and physical objects</li>
2661 </ul>
2662 <p>For example, An AR game might use mesh generated by Scene Geometry, which uses information from the LiDAR Scanner, to let someone realistically bounce a virtual ball off a physical wall inside their room.</p>
2663 <p><a href="https://developer.apple.com/documentation/arkit/world_tracking/visualizing_and_interacting_with_a_reconstructed_scene">Learn more and explore a sample app in the Developer Library</a></p></description>
2664 <pubDate>Thu, 02 Apr 2020 14:30:29 PDT</pubDate>
2665 </item>
2666 <item>
2667 <title>New Financial Report Coming to App Store Connect</title>
2668 <link>https://developer.apple.com/news/?id=04012020a</link>
2669 <guid>https://developer.apple.com/news/?id=04012020a</guid>
2670 <description><p>Starting April 2020, you can get more details on the final proceeds of your apps and in-app purchases, including the transaction and settlement dates for purchases, as well as the state or province for transactions in the United States and Canada. Simply download the “All Countries or Regions (Detailed)” report in App Store Connect.</p><p><a href="https://help.apple.com/app-store-connect/#/dev716cf3a0d">View App Store <span class="icon icon-after icon-chevronright nowrap">Connect Help</span></a></p></description>
2671 <pubDate>Wed, 01 Apr 2020 14:02:38 PDT</pubDate>
2672 </item>
2673 <item>
2674 <title>Meet the developer: Rich Siegel</title>
2675 <link>https://developer.apple.com/news/?id=r2xowjrr</link>
2676 <guid>https://developer.apple.com/news/?id=r2xowjrr</guid>
2677 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/E914381A-67BB-4236-8645-48483C67B47A/2048.jpeg" data-hires="false" alt="Why BBEdit creator Rich Siegel has always put the user above all."><p class="typography-caption">Why BBEdit creator Rich Siegel has always put the user above all.</p></div><p>BBEdit may be one of the most beloved developer tools on any platform, but its creator, Rich Siegel, had relatively modest ambitions. He started writing the first version of the software back in 1989 because he needed an editor that could handle “large” files—something north of 32 KB.</p>
2678 <p>“One of the limitations of Macintosh Pascal was that source files couldn’t be more than 32 kilobytes,” he explains. </p>
2679 <p>Over a quarter century has passed since BBEdit’s commercial debut, and the app has become a favorite among developers, scientists, web designers, and writers alike for its sheer power and speed. (Siegel regularly tests 12 GB files these days.)</p>
2680 <p>Siegel remains BBEdit’s principal architect and lead engineer, and the caffeine molecule tattooed on his arm says a lot about his work ethic. We spoke with him from his Bare Bones Software headquarters north of Boston, which Siegel shares with a pair of African gray parrots.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/AC00999C-26CF-4096-9325-2F058066B538/2048.jpeg" data-hires="false" alt="One of Siegel’s parrots perches on his finger at the table of a local diner with a tabletop jukebox in the background."></div><hr><p><em><a href="https://developer.apple.com/contact/app-store/promote/">Developers, do you have an interesting story to tell? The App Store‘s editorial team would love to hear it!</a></em></p><hr><p><strong>What were the early days of BBEdit like?</strong></p>
2681 <p>Back then, the way to put Mac software out in the world was to submit it to the Info-Mac Archive, an FTP repository hosted by Stanford. So that’s what I did, and word started to spread pretty fast online. </p>
2682 <p>I had mentioned that if anyone wanted a copy on disk, they could mail a floppy and a self-addressed return envelope to me at my home. I was inundated with floppies.</p>
2683 <p><strong>BBEdit has been around for a lifetime by software standards. How have you seen the user base change?</strong></p>
2684 <p>Our base started as Mac software developers, scientists, system administrators, and other technical users. The first big change was popularity among HTML authors and web back-end developers. As word spread, we were able to help folks understand that the internet was built with text—that you could treat text as data or you could treat it as a document. So the next wave brought in internet architects, cryptanalysts, and scientists from unexpected disciplines.</p>
2685 <p>The third wave has been mostly writers and other content creators—folks who see their text not as data but as words, and who want as little as possible between them and their words.</p>
2686 <p>However, as many changes as we’ve seen, there has been a delightful constancy to our customers: They’re people who simply want to get work done. They’re not distracted by shiny things in their software tools. </p>
2687 <p><strong>What are some of the more surprising projects you’ve seen people create with BBEdit?</strong></p>
2688 <p>There’s been so much! Our customers have used BBEdit to create novels, doctoral theses, and other long written works. One customer has used BBEdit as part of the development workflow to fly UAVs [unmanned aerial vehicles] the size of an F-16; the flight control system sends data to BBEdit in real time, where the engineers examine it, change it, and send it back to the aircraft in just a few seconds. And the Human Genome Project even uses BBEdit to help analyze long sequences of DNA.</p><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/C3DDA113-1489-486E-AF99-0657F57C7B2B/2048.jpeg" data-hires="false" alt="Version 3.0 of BBEdit, “accelerated for Power Macintosh,” from 1994."><p class="typography-caption">Version 3.0 of BBEdit, “accelerated for Power Macintosh,” from 1994.</p></div><p><strong>How has the software evolved over the years?</strong></p>
2689 <p>BBEdit has undergone one huge technical transformation after another. First there was the port to PowerPC. We developed an OpenDoc component, and some of the internal architecture work we did for that is still in use.</p>
2690 <p>Then came a nearly complete rewrite of its internal architecture, followed closely by a port to Mac OS X—BBEdit was the first third-party application to run natively on that new OS—and then the port to Intel. Last year we finished rewriting BBEdit again, this time as an AppKit application. </p>
2691 <p>In between PowerPC and OpenDoc, there was another development: the emergence of the World Wide Web. BBEdit had a plug-in model at the time, and two of our customers—one in the UK and one in Spain—independently wrote HTML markup tools. This was 1995, and we had no idea what HTML was, but we could tell that it was going somewhere. So we evaluated the tools, chose a set of them to bundle with BBEdit, and off we went. Little did we know...</p>
2692 <p><strong>BBEdit is one of the most beloved apps out there. Why do you think that is?</strong></p>
2693 <p>We’ve always had the utmost respect for the user. Every internal decision about look and function answers the questions “What does the customer need?” and “How can we help them be more productive?” (Not “How can we give them what they’re asking for?” because that isn’t the right question to answer.) The Macintosh was introduced to help anybody do great things. It’s something we believe in completely.</p><p><em>Originally published on the Mac App Store.</em></p></description>
2694 <pubDate>Fri, 27 Mar 2020 11:47:37 PDT</pubDate>
2695 </item>
2696 <item>
2697 <title>Deadline for App Updates Has Been Extended</title>
2698 <link>https://developer.apple.com/news/?id=03262020b</link>
2699 <guid>https://developer.apple.com/news/?id=03262020b</guid>
2700 <description><p>We greatly value the worldwide developer community, and appreciate your commitment to making a difference in people’s lives through the power of technology. To accommodate developers who may need additional time to update their existing apps on the App Store, the deadline for adhering to the requirements below has been extended to June 30, 2020.</p><ul>
2701 <li>
2702 <p>Apps for iPhone or iPad must be built with the iOS 13 SDK or later and use an Xcode storyboard to provide the app’s launch screen.</p>
2703 </li>
2704 <li>
2705 <p>iPhone apps must support all iPhone screens and all iPad apps must support all iPad screens.</p>
2706 </li>
2707 <li>
2708 <p>Apps for Apple Watch must be built with the watchOS 6 SDK or later.</p>
2709 </li>
2710 <li>
2711 <p>Apps that authenticate or set up user accounts must support Sign in with Apple if required by guideline 4.8 of the App Store Review Guidelines.</p>
2712 </li>
2713 <li>
2714 <p>Apps in the Kids category must be in full compliance with guideline 1.3 and guideline 5.1.4. of the App Store Review Guidelines.</p>
2715 </li>
2716 <li>
2717 <p>Apps using HTML 5 must be in full compliance with guideline 4.7 sections 4, 5, and 6 of the App Store Review Guidelines.</p>
2718 </li>
2719 </ul><p><a href="https://developer.apple.com/app-store/review/guidelines/">Read the App Store <span class="icon icon-after icon-chevronright nowrap">Review Guidelines</span></a></p>
2720 <p><a href="https://developer.apple.com/ios/submit/">Learn about <span class="icon icon-after icon-chevronright nowrap">submitting apps</span></a></p></description>
2721 <pubDate>Thu, 26 Mar 2020 14:22:37 PDT</pubDate>
2722 </item>
2723 <item>
2724 <title>Apple Developer App Update Now Available</title>
2725 <link>https://developer.apple.com/news/?id=03262020a</link>
2726 <guid>https://developer.apple.com/news/?id=03262020a</guid>
2727 <description><p>The Apple Developer app delivers in-depth information from Apple experts all year round with the latest developer news, informative videos, and more. This new version lets you watch videos at multiple playback speeds, interact with the full video transcripts, and share stories from the Discover tab. It also includes accessibility improvements and other&nbsp;enhancements.</p><p><a href="https://apps.apple.com/us/app/apple-developer/id640199958">Download on the <span class="icon icon-after icon-chevronright nowrap">App Store</span></a></p></description>
2728 <pubDate>Thu, 26 Mar 2020 14:21:09 PDT</pubDate>
2729 </item>
2730 <item>
2731 <title>ARKit 3.5 Now Available</title>
2732 <link>https://developer.apple.com/news/?id=03242020a</link>
2733 <guid>https://developer.apple.com/news/?id=03242020a</guid>
2734 <description><p>ARKit 3.5 takes advantage of the new LiDAR Scanner and depth-sensing system on iPad&nbsp;Pro to support a new generation of AR apps that use Scene Geometry for enhanced scene understanding and object occlusion. And now, AR experiences on iPad Pro are even better with instant AR placement, and improved Motion Capture and People Occlusion — all without the need to write any new code.</p><p><a href="https://developer.apple.com/augmented-reality/arkit/">Learn more about <span class="icon icon-after icon-chevronright nowrap">ARKit 3.5</span></a></p></description>
2735 <pubDate>Tue, 24 Mar 2020 18:44:32 PDT</pubDate>
2736 </item>
2737 <item>
2738 <title>How to debug your SwiftUI previews in Xcode</title>
2739 <link>https://developer.apple.com/news/?id=8vkqn3ih</link>
2740 <guid>https://developer.apple.com/news/?id=8vkqn3ih</guid>
2741 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/76AFFD7A-ACC8-4FA4-B63B-26EEE2510BEC/2048.jpeg" data-hires="false" alt="The scene debugger in Xcode "></div><p>With SwiftUI and Xcode 11, it’s much faster to create great user interfaces for apps on iOS, macOS, watchOS, and tvOS. As you write your app, use Xcode‘s design tools at any point to see live previews of your app in different states and on different compatible devices — all without launching Simulator.</p>
2742 <p>And here’s a valuable tip: We’re going to break down how you can debug that SwiftUI code live in Xcode, too.</p><h3>Enable Debug Preview in Xcode 11</h3><p>When creating an interface for your app in SwiftUI, you‘ll see a preview inside Xcode that displays your app, formatted for your currently-selected device.</p>
2743 <p>If you’re hitting an issue in your code, however, and don’t know where to troubleshoot, you can instead enable Debug Preview to quickly find that pesky bug. Here’s how to do it.</p><ol>
2744 <li>Open your Swift project in Xcode 11.</li>
2745 <li>Right-click (or Control-click) on the Live Preview button in the bottom right corner of the preview.</li>
2746 <li>Select Debug Preview.</li>
2747 </ol><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/954E17C3-FA6F-4FA5-A502-E3B0AA10B9A6/2048.jpeg" data-hires="false" alt="The Debug Preview mode in Xcode provides easy access to an assortment of debugging tools for your app, including a visual breakdown of your app’s elements."><p class="typography-caption">The Debug Preview mode in Xcode provides easy access to an assortment of debugging tools for your app, including a visual breakdown of your app’s elements.</p></div><p>Now, you can troubleshoot your SwiftUI project using all of the usual debugging tools, such as breakpoints, view debugging, memory graph debugging, and logging to the Console.</p><h3>Resources</h3><p><a href="https://developer.apple.com/xcode/swiftui/">Learn more about SwiftUI</a></p><p><a href="https://developer.apple.com/tutorials/swiftui/">Check out Apple’s SwiftUI Tutorials</a></p><p><a href="https://developer.apple.com/wwdc19/233">Check out Mastering SwiftUI Previews</a></p></description>
2748 <pubDate>Tue, 24 Mar 2020 07:12:34 PDT</pubDate>
2749 </item>
2750 <item>
2751 <title>Universal Purchase for Mac Apps Now Available</title>
2752 <link>https://developer.apple.com/news/?id=03232020b</link>
2753 <guid>https://developer.apple.com/news/?id=03232020b</guid>
2754 <description><p>The macOS version of your app can now be included in a universal purchase, allowing customers to enjoy your app and in‑app purchases across iOS, iPadOS, macOS, watchOS, and tvOS by purchasing only once. Get started by using a single bundle ID for your apps in Xcode and setting up your app record for universal purchase in App Store Connect.</p><p><a href="https://developer.apple.com/support/universal-purchase/">Learn more about <span class="icon icon-after icon-chevronright nowrap">universal purchase</span></a></p></description>
2755 <pubDate>Mon, 23 Mar 2020 19:30:33 PDT</pubDate>
2756 </item>
2757 <item>
2758 <title>The App Store is Expanding to New Countries</title>
2759 <link>https://developer.apple.com/news/?id=03232020a</link>
2760 <guid>https://developer.apple.com/news/?id=03232020a</guid>
2761 <description><p>Thanks to the creativity and innovation of developers like you, the App&nbsp;Store has become much more than the world’s safest marketplace. It’s grown into a vibrant platform with great apps that influence culture and change lives, with over half a billion visitors each week. This wide-reaching platform has helped generate over $155 billion in developer earnings — just from sales of apps and in-app purchases. Today, the App&nbsp;Store gives you the opportunity to connect with users in 155 countries or regions. We’re pleased to announce that the App&nbsp;Store will expand even farther this year with upcoming support for 20 new countries, allowing you to increase your impact and grow your business in new markets.</p><p>To allow your app to appear in these new countries, your membership Account&nbsp;Holder first needs to accept the updated Program License Agreement by signing in to their account on the Apple&nbsp;Developer website. If you have a Paid Applications Agreement, the Account&nbsp;Holder will also need to accept this updated agreement in App&nbsp;Store&nbsp;Connect. You can then select the “New Countries or Regions” checkbox in the Pricing and Availability section of your app information page to automatically make your app available in all new countries. Completing these steps by April 10, 2020 will help make sure your app is ready to be published as content initially becomes available across new locations. We’ll let you know when you can choose from specific new countries and update the default subscription pricing for these locations.</p><p><a href="https://developer.apple.com/account/">View <span class="icon icon-after icon-chevronright nowrap">your account</span></a></p></description>
2762 <pubDate>Mon, 23 Mar 2020 14:17:58 PDT</pubDate>
2763 </item>
2764 <item>
2765 <title>Ensuring the Credibility of Health &amp; Safety Information </title>
2766 <link>https://developer.apple.com/news/?id=03142020a</link>
2767 <guid>https://developer.apple.com/news/?id=03142020a</guid>
2768 <description><p>The App&nbsp;Store should always be a safe and trusted place for users to download apps. Now more than ever that commitment takes on special significance as the world fights the COVID-19 pandemic. Communities around the world are depending on apps to be credible news sources — helping users understand the latest health innovations, find out where they can get help if needed or provide assistance to their neighbors.</p><p>To help fulfill these expectations, we're evaluating apps critically to ensure data sources are reputable and that developers presenting these apps are from recognized entities such as government organizations, health-focused NGOs, companies deeply credentialed in health issues, and medical or educational institutions. Only developers from one of these recognized entities should submit an app related to COVID-19. Entertainment or game apps with COVID-19 as their theme will not be allowed.</p><p>We understand the need to get these apps into the hands of customers as soon as possible. We encourage developers that meet this criteria to select <span class="nowrap">“Time-Sensitive Event”</span> on the expedite request form to ensure prioritized review since App&nbsp;Store review may take longer.</p><p>If you are developing an app on behalf of a client, please advise your client to add you to the development team of their Apple Developer account. If your client does not yet have an Apple Developer account, they can enroll in the <a href="/programs/">Apple Developer Program</a>. Nonprofit organizations, accredited educational institutions, and government entities that plan to distribute only free apps on the App&nbsp;Store can request to have their annual membership fee waived, if based in an eligible country.</p><p><span class="nowrap"><a class="icon icon-after icon-chevronright" href="/support/membership-fee-waiver/">Learn about membership fee waivers</a></span></p><p><span class="nowrap"><a class="icon icon-after icon-chevronright" href="/app-store/review/guidelines/">Read the App&nbsp;Store Review Guidelines</a></span></p><p><span class="nowrap"><a class="icon icon-after icon-chevronright" href="/contact/app-store/?topic=expedite">Request an expedited review</a></span></p></description>
2769 <pubDate>Sat, 14 Mar 2020 12:15:00 PDT</pubDate>
2770 </item>
2771 <item>
2772 <title>WWDC20. Coming this summer.</title>
2773 <link>https://developer.apple.com/news/?id=03132020a</link>
2774 <guid>https://developer.apple.com/news/?id=03132020a</guid>
2775 <description><p>This June, WWDC20 brings a completely new online experience to millions of talented and creative developers around the world. Join us for a fully packed program — including Keynote and sessions — to gain early access to the future of Apple platforms and engage with Apple engineers. Dive into an exciting learning experience and discover how to create your most innovative apps yet using the latest Apple technologies.</p><p>Stay tuned for details on the <a href="/wwdc20/">WWDC20 website</a>, by email, and in the <span class="nowrap"><a href="https://apps.apple.com/us/app/apple-developer/id640199958/">Apple Developer app</a></span>.</p></description>
2776 <pubDate>Fri, 13 Mar 2020 09:00:00 PDT</pubDate>
2777 </item>
2778 <item>
2779 <title>Choosing a business model</title>
2780 <link>https://developer.apple.com/news/?id=lg75r3q8</link>
2781 <guid>https://developer.apple.com/news/?id=lg75r3q8</guid>
2782 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/BD0FA017-23FA-416E-9519-F5A506B7B027/2048.jpeg" data-hires="false" alt=""><p class="typography-caption"></p></div><p>The right business model for your app will balance your goals with your target market’s expectations. Consider choosing your business model before you start developing your app so that you can build it seamlessly into the user experience.</p><p><a href="https://developer.apple.com/app-store/business-models?cid=developer80">Learn more</a></p></description>
2783 <pubDate>Mon, 09 Mar 2020 09:00:55 PDT</pubDate>
2784 </item>
2785 <item>
2786 <title>Ratings, reviews, and responses</title>
2787 <link>https://developer.apple.com/news/?id=1jtr1i20</link>
2788 <guid>https://developer.apple.com/news/?id=1jtr1i20</guid>
2789 <description><div class="inline-article-image"><img src="https://devimages-cdn.apple.com/wwdc-services/articles/images/B5B939D7-E0D8-4302-A857-0CFBA3911E7C/2048.jpeg" data-hires="false" alt=""></div><p>Customers provide ratings and reviews on the App Store to give feedback on their experience with an app and help others decide which apps they’d like to try. You can ask for ratings and respond to reviews to improve your app’s discoverability, encourage downloads, and build rapport with people who use your app.</p>
2790 <p><a href="https://developer.apple.com/app-store/ratings-and-reviews/">Learn more</a></p></description>
2791 <pubDate>Thu, 05 Mar 2020 10:00:25 PST</pubDate>
2792 </item>
2793 <item>
2794 <title>Updated App&nbsp;Store Review Guidelines Now&nbsp;Available</title>
2795 <link>https://developer.apple.com/news/?id=03042020a</link>
2796 <guid>https://developer.apple.com/news/?id=03042020a</guid>
2797 <description><p>The <span class="nowrap">App Store</span> is dedicated to the best store experience for everyone. To continue providing a safe experience for users and help you successfully develop apps that are secure, high-quality, reliable, and that respect user privacy, the <span class="nowrap">App Store</span> Review Guidelines have been updated. The changes impact replies to reviews, spam, push notifications, Sign&nbsp;in&nbsp;with&nbsp;Apple, data collection and storage, mobile device management, and more.</p><p><a href="/app-store/review/guidelines/">Read the App&nbsp;Store <span class="icon icon-after icon-chevronright nowrap">Review Guidelines</span></a></p></description>
2798 <pubDate>Wed, 04 Mar 2020 09:00:00 PST</pubDate>
2799 </item>
2800 <item>
2801 <title>Submit Your iPhone Apps to the App&nbsp;Store</title>
2802 <link>https://developer.apple.com/news/?id=03042020b</link>
2803 <guid>https://developer.apple.com/news/?id=03042020b</guid>
2804 <description><p>iOS&nbsp;13 is now running on 77% of all iOS devices introduced in the last four years, worldwide. Deliver great user experiences by seamlessly integrating with Dark&nbsp;Mode, Sign&nbsp;in&nbsp;with&nbsp;Apple, and the latest advances in ARKit&nbsp;3, Core&nbsp;ML&nbsp;3, and Siri. Starting April&nbsp;30, 2020, all iPhone apps submitted to the <span class="nowrap">App Store</span> must be built with the iOS&nbsp;13&nbsp;SDK&nbsp;or&nbsp;later.</p><p>Take advantage of Xcode features such as storyboards (including launch storyboards), Auto&nbsp;Layout, and SwiftUI, to ensure your app’s interface elements and layouts automatically fit the display of all iPhone models, regardless of size or aspect ratio. Starting April&nbsp;30, 2020, all apps submitted to the <span class="nowrap">App Store</span> must use an Xcode storyboard to provide the app’s launch screen and all iPhone apps must support all iPhone&nbsp;screens.</p><p><a target="_blank" href="https://developer.apple.com/ios/submit/">Learn about submitting <span class="icon icon-after icon-chevronright nowrap">your apps</span></a></p></description>
2805 <pubDate>Wed, 04 Mar 2020 09:00:00 PST</pubDate>
2806 </item>
2807 <item>
2808 <title>Submit Your iPad Apps to the App&nbsp;Store</title>
2809 <link>https://developer.apple.com/news/?id=03042020c</link>
2810 <guid>https://developer.apple.com/news/?id=03042020c</guid>
2811 <description><p>iPadOS is now running on 79% of all iPad devices introduced in the last four years, worldwide. With iPadOS, you can deliver multiwindow experiences, add full drawing experiences for Apple&nbsp;Pencil, and contribute fonts for systemwide use. You can also take advantage of Dark&nbsp;Mode, Sign&nbsp;in&nbsp;with&nbsp;Apple, and the latest advances in ARKit&nbsp;3, Core&nbsp;ML&nbsp;3, and Siri. Starting April&nbsp;30, 2020, all iPad apps submitted to the <span class="nowrap">App Store</span> must be built with the iOS&nbsp;13&nbsp;SDK or later.</p><p>Take advantage of Xcode features such as storyboards (including launch storyboards), Auto&nbsp;Layout, and SwiftUI, to ensure your app’s interface elements and layouts automatically fit the display of all iPad models, regardless of size or aspect ratio. Starting April&nbsp;30, 2020, all apps submitted to the <span class="nowrap">App Store</span> must use an Xcode storyboard to provide the app’s launch screen and all iPad apps must support all iPad screens.</p><p><a target="_blank" href="https://developer.apple.com/ios/submit/">Learn about submitting <span class="icon icon-after icon-chevronright nowrap">your apps</span></a></p></description>
2812 <pubDate>Wed, 04 Mar 2020 09:00:00 PST</pubDate>
2813 </item>
2814 <item>
2815 <title>Updated Resources and&nbsp;Guidelines for Sign&nbsp;in&nbsp;with&nbsp;Apple</title>
2816 <link>https://developer.apple.com/news/?id=03042020d</link>
2817 <guid>https://developer.apple.com/news/?id=03042020d</guid>
2818 <description><p>Make it easy for users to sign in to your apps and websites using the Apple&nbsp;ID they already have. With built-in privacy and security features, Sign&nbsp;in&nbsp;with&nbsp;Apple is a great way to help users set up an account, sign in, and engage with your app quickly and easily. All accounts are protected with two-factor authentication, and Apple will not track users’ activity in your app or website.</p><p>See the latest <span class="nowrap">App Store</span> Review Guidelines and Human Interface Guidelines to learn how to provide great user experiences with Sign&nbsp;in&nbsp;with&nbsp;Apple, and get new downloadable design resources, including left-aligned, center-aligned, and logo-only buttons. All new apps and app updates submitted to the <span class="nowrap">App Store</span> must follow these guidelines by April&nbsp;30,&nbsp;2020.</p><p><a href="/app-store/review/guidelines/#sign-in-with-apple">View the App&nbsp;Store <span class="icon icon-after icon-chevronright nowrap">Review Guidelines</span></a></p><p><a href="/design/human-interface-guidelines/sign-in-with-apple/">View the Human <span class="icon icon-after icon-chevronright nowrap">Interface Guidelines</span></a></p></description>
2819 <pubDate>Wed, 04 Mar 2020 09:00:00 PST</pubDate>
2820 </item>
2821 <item>
2822 <title>Swift Playgrounds Now Available on Mac</title>
2823 <link>https://developer.apple.com/news/?id=02122020a</link>
2824 <guid>https://developer.apple.com/news/?id=02122020a</guid>
2825 <description><p>Now you can learn and explore coding using Swift&nbsp;Playgrounds on Mac. Take advantage of the same great experimenting environment from iPad, updated with a unique Mac experience that includes a new sidebar, Touch&nbsp;Bar support, and code suggestions that provide additional help. You can even use the same playground file on both platforms. Swift&nbsp;Playgrounds is an easy way to try out new code for your app, then use that code for development in Xcode.</p><p><span class="nowrap"><a class="icon icon-after icon-chevronright nowrap" target="_blank" href="https://apps.apple.com/us/app/swift-playgrounds/id1496833156?mt=12">View on the Mac App Store</a></span></p></description>
2826 <pubDate>Wed, 12 Feb 2020 17:30:00 PST</pubDate>
2827 </item>
2828 <item>
2829 <title>Offer Custom Apps on Apple&nbsp;School&nbsp;Manager</title>
2830 <link>https://developer.apple.com/news/?id=02062020a</link>
2831 <guid>https://developer.apple.com/news/?id=02062020a</guid>
2832 <description><p>You can now meet the unique needs of educational institutions by privately offering apps you’ve customized just for them. Organizations that you identify in <span class="nowrap">App Store Connect</span> will see the app and be able to purchase it in volume on Apple School Manager, a service that lets educational institutions buy content, configure automatic device enrollment, and create accounts for students and staff. Educational institutions can also use this feature to distribute proprietary apps for internal use.</p><p><a href="/support/volume-purchase-and-custom-apps/">Learn about distributing <span class="icon icon-after icon-chevronright nowrap">custom apps</span></a></p></description>
2833 <pubDate>Thu, 06 Feb 2020 16:00:00 PST</pubDate>
2834 </item>
2835 <item>
2836 <title>Get Your watchOS Apps Ready for In&#8209;App&nbsp;Purchase</title>
2837 <link>https://developer.apple.com/news/?id=02052020b</link>
2838 <guid>https://developer.apple.com/news/?id=02052020b</guid>
2839 <description><p>With the public release of watchOS&nbsp;6.2, you’ll be able to offer in&#8209;app purchases directly in your watchOS apps, so users can access premium content, digital goods, subscriptions, and more, all right from their wrist. Get started today by downloading Xcode&nbsp;11.4&nbsp;beta, implementing the StoreKit&nbsp;API, and build for the beta version of watchOS&nbsp;6.2.</p><p><span class="nowrap"><a class="icon icon-after icon-chevronright" href="https://developer.apple.com/documentation/watchkit/creating_independent_watchos_apps">View WatchKit documentation</a></span></p><p><span class="nowrap"><a class="icon icon-after icon-chevronright" href="https://developer.apple.com/documentation/storekit/in-app_purchase">View StoreKit documentation</a></span></p></description>
2840 <pubDate>Wed, 05 Feb 2020 10:45:00 PST</pubDate>
2841 </item>
2842 <item>
2843 <title>Updates to Universal Purchase and App&nbsp;Store&nbsp;Categories</title>
2844 <link>https://developer.apple.com/news/?id=02052020a</link>
2845 <guid>https://developer.apple.com/news/?id=02052020a</guid>
2846 <description><p>Starting in March 2020, you’ll be able to distribute iOS, iPadOS, macOS, and tvOS versions of your app as a universal purchase, allowing customers to enjoy your app and in&#8209;app purchases across platforms by purchasing only once. You can choose to create a new app for these platforms using a single app record in <span class="nowrap">App Store Connect</span> or add platforms to your existing app record. Get started by building and testing your apps using a single bundle ID with Xcode 11.4 beta.</p><p>In addition, categories will be unified across the <span class="nowrap">App Store</span> and <span class="nowrap">Mac App Store</span> to align with this change, and to help make your apps more discoverable. The following changes will be made.<ul class="list"><li>You’ll be able to select the following categories for iOS apps: “Developer Tools” and “Graphics &amp; Design”.</li><li>You’ll be able to select the following categories for macOS apps: “Books”, “Food &amp; Drink”, “Magazines &amp; Newspapers”, “Navigation”, and “Shopping”.</li><li>The “Photography” and “Video” categories on the <span class="nowrap">Mac App Store</span> will be combined into “Photo &amp; Video”. Mac apps and pending updates with the “Photography” or “Video” category selected in <span class="nowrap">App Store Connect</span> will be moved automatically to the combined category.</li><li>“Kids” will no longer be a subcategory within “Games” on the <span class="nowrap">Mac App Store.</span></li></ul></p><p>As a reminder, you can change the categories and subcategories associated with your app at any time with an app update.</p><p><a href="https://developer.apple.com/download">Download Xcode <span class="icon icon-after icon-chevronright nowrap">11.4 beta </a></span></p><p><a href="https://help.apple.com/app-store-connect/#dev97865727c">Learn how to edit app information <span class="icon icon-after icon-chevronright nowrap">in App Store Connect</a></span></p></description>
2847 <pubDate>Wed, 05 Feb 2020 10:30:00 PST</pubDate>
2848 </item>
2849
2850 </channel>
2851