Wayback Machine
46 captures
24 Jun 2020 - 11 Mar 2026
Mar APR May
20
2020 2021 2022
success
fail
About this capture
COLLECTED BY
Collection: Common Crawl
Web crawl data from Common Crawl.
TIMESTAMPS
loading
The Wayback Machine - https://web.archive.org/web/20210420123830/https://developer.apple.com/videos/play/wwdc2020/10087
  • Global Nav Open Menu Global Nav Close Menu
  • Apple Developer
Search Developer
Cancel
  • Apple Developer
  • Discover
  • Design
  • Develop
  • Distribute
  • Support
  • Account

Videos

Open Menu Close Menu
  • Collections
  • Topics
  • All Videos

More Videos

Streaming is available in most browsers,
and in the WWDC app.

  • Overview
  • Transcript
  • Design for intelligence: Make friends with "The System"

    The building blocks of the intelligent system are simple: Define, learn, execute. Discover how you can use intents to define your app's key features, create donations to help the system learn and make predictions about the future, and implement extensibility to ensure your app is ready to execute at just the right moment. Learn from teams at Apple about how their technologies use intents and donations in different ways, all for the same goal: to make the everyday easier.

    Resources

    • Have a question? Ask with tag wwdc20-10087
    • Search the forums for tag wwdc20-10087
      • HD Video
      • SD Video

    Related Videos

    WWDC 2020

    • Add configuration and intelligence to your widgets
    • Broaden your reach with Siri Event Suggestions
    • Create quick interactions with Shortcuts on watchOS
    • Design for intelligence: Apps, evolved
    • Design for intelligence: Discover new opportunities
    • Design for intelligence: Meet people where they are
    • Design high quality Siri media interactions
    • Evaluate and optimize voice interaction for your app
    • Expand your SiriKit Media Intents to more platforms
    • What's new in SiriKit and Shortcuts
  • Download

    Hello and welcome to WWDC.

    Hey. My name is Sofiane, and I work on Proactive Intelligence here at Apple. Today, I want to talk to you about how your app can make friends with the system. As Radhika showed in the previous video, system intelligence can help people at every step of their journey in using their apps and the devices that those apps are installed on.

    The better job you, as a developer, do to integrate with the system, and the more people use your apps, the more we can help them over time. But how do you do a good job of integrating with the system? I'll explain by talking about a few key concepts shared across all of our intelligence technologies.

    Then I'll have my colleagues, Mert and Chad, talk about how their teams use these foundational concepts in slightly different ways, all to achieve the same goal: making everyday things easier.

    And then Mark will come back to recap exactly what we hope you do next.

    So, let's talk about what makes the intelligent system work.

    We all live busy lives, and for many of us, our iOS devices have become an important part of how we get things done.

    People rely on apps dozens of times every day, for tasks ranging from communication, ordering food, or even tracking water intake. And again, our goal is to make these everyday interactions as smooth and frictionless as possible so you can get time back to focus on your life.

    And for this to happen, the system and your app need to work together. And by working together, what I really mean is that we need to speak the same language. For that common language, we built the Intents framework. There are three key concepts you should know about, and these are define, learn and execute.

    Understanding them will help you accelerate your users along your apps' critical paths, and adapt to their preferences over time.

    Let's first talk about what we mean by "Define." Ultimately, you, as developers and designers, just need to ask yourself, what are the important actions that people want to perform with your app? The goal is simply to determine what are the key and repeatable things that people want to accomplish.

    You can define these actions using what we call "intents." Intents represent the "what." What do people do in your app? Ask yourself, "What are those tasks? And what are all of the relevant attributes necessary to carry them out?" What, for example, does it mean to track your water intake? Or what's involved in checking the news? Or what does it mean to order coffee? Let's actually take a closer look at that example.

    So, to order coffee, you know you'll need an intent that represents that action. And, of course, people like their coffee made differently. There are obviously different types of coffee. Maybe the size of the drink matters too.

    Details like this are the attributes of the action, also known as the parameters of the intent.

    The Intents framework gives you the flexibility to define your intent and its parameters, making it easy for you to package all of the information about the action someone is performing inside your app.

    Here we're creating an "order coffee" intent and defining two of its parameters, representing the type of coffee item and its size.

    With those parameters defined, we can set these values to represent what the user is actually ordering, and here, it's a large iced latte. So, to summarize, the intents you define are a key building block that enable your app and the system to speak the same language.

    Now, a key piece of that intelligent system experience is learning how people do things in order to predict how they might do so again in the future. But how do we learn? All it takes is someone using your app, and as long as you, as a developer, do something called a "donation" as people use your app and perform the tasks that are important to them, these donations provide signals that the system can use to learn from. This happens using on-device intelligence, and eventually, we'll detect patterns that help us make predictions, like the Siri Suggestions we surface on the lock screen.

    And when someone uses a lock screen suggestion, not only do they save time, but we can tell that we did a good job, and that positive signal helps us make even better predictions in the future.

    So, let's dive deeper into this concept of donations.

    Donations help us answer questions like when do I order coffee? Or where does that typically happen? But time and location are only a few of the signals that we use to understand something more important, which is context. As JP said earlier, we want you to feel like you have superpowers. We pull that off when we match the task you want to accomplish with just the right moment. Now, a donation is simply a record, a snapshot in time, of an intent that's actually been executed.

    Maybe today, your app donates your large latte order because that's just what you crave as you start the day. And a bit later in the day, you order something more refreshing, like a lemonade.

    But the next day, you start your morning off again with another large latte.

    And as people continue to use your app, these signals accumulate over time. And while there might be changeups, patterns emerge and the system can learn them.

    Once we learn these patterns, we make predictions. We try to match the right task to your context, and we get better the more we learn. And again here, privacy is at the very core of what we do. The information you donate never leaves the device. The system uses your donations locally to offer an amazing, personalized intelligent experience. What happens on your device stays on your device.

    So, we keep returning to this point that an intelligent system should save you time, but it can only do that if we drastically reduce the amount of friction required to get something done.

    A key way we do that is by accelerating people to the things they want to accomplish.

    So, as a developer, it's important for you to be prepared to perform an action even when your app is not running.

    When we make a prediction, we may reconstruct an intent from the information gleaned from your app donations.

    When our prediction is right and someone engages with it, we pass the underlying intent back over to you so you can execute it in your app.

    Now, your goal is to execute that action, and there are two ways you might go about this.

    Whenever possible, you should execute the action in the background. If you support background execution, the action is performed right then and there and the user doesn't have to switch between apps.

    You even have the ability to display your beautiful app UI right in this flow.

    Here, we're showing a dialogue to let the user confirm their order before placing it.

    Alternatively, we can launch your app. Here, you should execute the action and take the user right to the relevant part of your app. In that case, it's our order confirmation screen. These were some of the important concepts you should know about so your app can take full advantage of our intelligent system experience.

    Now to share more about how teams at Apple use intents and donations in greater detail, I'm going to hand it off to my colleague Mert to talk about Shortcuts. Mert? Thanks, Sofiane.

    To illustrate how we use intents and donations, I'm going to use an example some of you might be familiar with called Soup Chef. We've used this as an example app for Shortcuts since we launched, and it's a great way for me to use the real plural of "soup," which is, in fact, "soups." This app is pretty basic. You can launch it, take a look at today's soups and place an order for one of them.

    But let's step back for a second. What can you do using the Soup Chef app? You can order one of the available soups, check the remaining delivery time for a soup order, or get your order history. But how does the app actually get these features in front of people? All of these things, this functionality, is contained in the app itself.

    So, to build on what Sofiane was talking about, that means I have to stop whatever it is I'm doing at that moment to unlock my device, find the app icon, and maneuver through some layers of that app's UI, all just to get soup. I mean, let's say I'm driving and I really, really want soup. This has been known to happen. I should not reach out to my phone, launch an app, and dig around some nested table views. And, yes, I won't drink my soup until I'm stationary at some later time.

    For that, we have Siri.

    We have CarPlay for the car, HomePod in the home, or even AirPods when you're on the go. There's always some device that can respond to "Hey Siri." So, stepping back into the role of the app user, this is why we often talk about how Shortcuts can accelerate everyday tasks.

    Using my voice to ask Siri to order soup is mostly convenient because it makes this thing I already do easier.

    And for someone who's looking for ways to make their everyday routines easier, setting up a shortcut and getting into the habit of using your voice is very much worth it. So, whatever that thing is for your app, that killer feature, which may even differ between different people, that's the thing you should expose as a shortcut.

    And it doesn't need to be limited to a single shortcut either. After placing an order for a delicious soup, I might want to use Siri to check the delivery time until my delicious soup arrives. So, how can you make this a reality? As Sofiane described: intents.

    For general categories of actions like sending a message, we have system-defined intents that you can adopt. For describing any other action unique to your app, like ordering soup, you can define entirely custom intents in Xcode. When you say, "Hey, Siri, order soup," Siri runs your "order soup" intent.

    And when you say, "Hey, Siri, check delivery," Siri runs your "check delivery time" intent.

    For more on understanding intents, make sure to check out the Human Interface guidelines. It's a great resource for engineers and designers alike. For your users, adding custom intents to Siri in the form of a shortcut is as easy as tapping on an "Add to Siri" button.

    And the parameters that Sofiane was talking about earlier, which describe the important aspects of the thing that's being done even appear right here in the Add to Siri flow.