Streaming is available in most browsers,
and in the Developer app.
-
Make a great SharePlay experience
Discover how you can design and build a great SharePlay experience. We'll show you how to identify activities in your app that can help bring everyone together — even while they're apart. Learn best practices to help you design for group activities, create intuitive interactions, and build support for different types of experiences.
Resources
Related Videos
WWDC22
WWDC21
-
Download
♪ Mellow instrumental hip-hop music ♪ ♪ ♪ Suspenseful classical music ♪ Ryan Williams: One call can change everything. Priya Shah: OK, are you sure you have everything you need for this demo? Because after I drop this call, you're on your own. Ryan: I’ve got this! It's going to be a breeze. It should have been a breeze. I just had to choose one great SharePlay experience to kick off our talk while my partner got some well-deserved shut-eye. I narrowed the list of suspects down but I couldn't choose. I'd have to call in my whole team to help me make a break in this switch case. First up, a test run with Adam in the gym. Adam: I'm so excited! We're always so down between the lines. Siri: Burpee. Adam: Calling functions, refactoring code. Siri: Butt kicks. Adam: It's nice to hit Run and check out what people are building. Siri: Rest. Ryan: Adam left me inspired and perspired, but I still had a few more if checks to evaluate. So I called Agnes and Gav to shop around. But much as I like browsing the toy market, I wasn't ready to make a bid just yet. Maybe a piano break with Justin would be the subroutine I needed. ♪ Somber piano music ♪ My thoughts were starting to compile. But first, I had one last spy game to play. Gav: Wow, here he is. Olivia: We thought... Adam: ...you thought... Olivia: ...you might be too overloaded. Ryan: My mother didn't instantiate a quitter. Let's go. As we played, somewhere -- somewhere deep, a synapse fired. The case was a simple one after all. I'd been looking for one great app, but the truth is, I learned something from them all. Not our usual demo, I know, but forgive a man a little virtualization now and again. Now if you'll excuse me, I'm off to my next case. All the great experiences still waiting to be found. ♪ Suspenseful classical music ♪ Hi. I'm Ryan, an engineer on the SharePlay team. Our team has had a lot of fun exploring all the incredible SharePlay experiences you've made. Your work has brought people together like never before, and we've also learned a lot over the past year about how you can give people the best SharePlay experience possible. So today, we're going to take you through how to design and build a great SharePlay experience in your app. We'll talk about using SharePlay as a new way to connect people. Then we'll go over how to foster a sense of presence, breaking down the digital barriers between people and making them feel like they're together in the same space. We'll go over the different types of SharePlay experiences you can design in your app, and then finally, we'll tell you some tips and tricks we've learned along the way for how to make it a seamless experience for people using your app. More people than ever are relying on FaceTime and iMessage in order to stay connected. With iMessage, we connect by sharing text or sharing images, and with FaceTime, we connect by sharing audio and video.
However, some of the most meaningful moments people have together are about more than just sharing a conversation. When we're together, we connect most by sharing experiences. So to foster that sense of closeness, we built SharePlay, and by adopting the Group Activities framework, you can connect people in this entirely new way by allowing them to participate in SharePlay activities in your app. It all comes down to this concept of activities. When someone in a FaceTime call starts an activity, SharePlay brings the group directly into your app, where you can create almost any type of experience. And an activity can really be anything; from cooking together, to playing piano together. We've seen a lot of creative examples of activities from you already. And this year, we focused on elevating the core SharePlay experience, making it even easier for people to share experiences in your app. Now, people can start SharePlay directly from your app. When someone finds that perfect piece of content in your app that they want to share with their friends, they can choose who they want to experience that content with and invite them to SharePlay directly from your app. This way, people can jump into a shared experience with their friends whenever it feels most natural for them, without having to plan in advance. They'll even get the option to start SharePlay from Messages, letting them share an experience with their friends without needing to be on a FaceTime call. We think people are going to love all the new ways they can start SharePlay from your app. We'll go over how to adopt all of these new features in the session "What's new in SharePlay." And that just scratches the surface of what SharePlay can do but we think the real potential of SharePlay is unlocked when you unleash your creativity to build experiences that bring people closer together. And a big part of that is fostering a sense of presence. So before we go into how to build these experiences, we first have to understand what it means to be present with others and how to take aspects of a great in-person experience and bring them into your apps. Typically, digital communication tools are designed to bridge the gaps in presence, but in order for SharePlay to create meaningful moments between people, we need to find ways to actually make people feel present with each other, as if they were in the same physical space. Now, knowing how to foster this sense of presence can be different for every experience but one trick we can do is to think about your app being used in the physical world. So, here's an exercise we recommend doing: think of SharePlay like a portal transporting people through their phones and into the same space. What would they do with your app if they were actually present with each other? If that sounds impossible, don't worry. We'll go over some ways that you can foster this sense of presence in your own apps. Let's do this exercise together. Imagine you're transported to a room with a physical record player. Everyone can go up to it and interact with it. They can put on their favorite song and once it's playing, anyone else in the room can also go up to the record player and interact with it. They can skip forward in the song or they can skip the song entirely. From this, we found that we needed to offer shared playback controls in our app. And in fact, it's critical that we don't put any limitations on who can interact with these controls. We want to create an engaging experience where everyone feels like they're able to walk up and control that same music player. OK, now someone has started playing some music. The next thing they might do is look around and see who's there listening with them. Now this may seem obvious, but that person may be playing their favorite song for someone and probably wants to be reminded of their friend there listening with them. When people are doing these experiences through their phones, we need to find ways to offer reminders that there are others there doing that experience with them.
This exercise is a great way to start thinking about the design considerations that will help to foster presence in almost any kind of experience. Now, I'm going to hand it over to Priya to talk through some things to keep in mind when designing your experience. Priya: Thank you, Ryan. When designing an experience for groups, the first thing to think about is what shared activities your app will support. It might be challenging at first since many apps have been designed with a single person in mind. Apps have been personalized to build engaging experiences for individual people but a great personalized experience might not always translate to a great group experience. Here is an opportunity for you to think of your app from a different perspective -- to think of an experience designed specifically for groups. When designing your activity, think about what people like to do when they're together. From cooking together with your friends, to breathing through a yoga flow, watching your favorite team win the finals or gasping at every "Severance" cliffhanger. All of these are good candidates for SharePlay because they're activities that people love to do together -- in person! SharePlay provides the ability to create rich coordinated experiences for groups where everyone has control and shares the same experience in sync, to help foster a sense of presence when people are apart. For example, when using SharePlay with Apple TV+, pressing play on a video enables everyone to watch together. Everyone's playhead is in sync, and pause, play, seek commands are all coordinated. So when Ryan pauses or Adam resumes, the video pauses and plays for everyone at the same time. Apple TV+ is a great example of a single-view coordinated experience, where everyone can watch and listen to the same thing. If you're building a coordinated media experience like this for your app, you can add shared playback controls by adopting AVPlaybackCoordinator and using the coordinateWithSession method. The system will keep everyone in perfect sync as if they were all in the same room sharing one remote. But sometimes, we share activities that participants experience differently. Some participants might have different views of the same coordinated experience. For example, when playing a game of Heads Up!, one person has to guess the words on the screen while their friends shout out or act out clues. Now, it wouldn't be a very difficult game if the guessers could see the answers… so there are two views in this game, and not all participants see the same view. If you're building a multiview coordinated experience like this, you can use the send method of the GroupSessionMessenger class and specify the subsets of the participants that should receive the message. So once you've decided on the activity you are designing and the views needed to support it, the next step is to build a great experience for the people interacting with your app. Let's discuss some of the factors that can make your app's SharePlay experience intuitive and easy to use. In order to build a great SharePlay experience, it is important to think through the different stages of a shared activity -- starting, during, and ending. We've added the ability to start a SharePlay session without the need for an active FaceTime call. So people can start a SharePlay session directly from your app when they come across content or an activity that they want to share with their friends. This helps bring everyone directly to the experience you've created in your app. When people browse your app and come across something they want to share with their friends, they might tap the Share button to present the Share Sheet. In order to surface the ability to SharePlay here, you can register your app's group activity by using the registerGroupActivity(_:) method. People will see the option to SharePlay the activity from your app directly from the Share Sheet. In order to make group activities in your app even more discoverable, you can support the ability to SharePlay directly in your app's UI with the SharePlay button. To do this, you can adopt the GroupActivitySharingContoller. This allows people to start a SharePlay session, select the friends they want to SharePlay with, and whether they want to SharePlay over messages or FaceTime. I'm going to go ahead and SharePlay some music with Adam and Ryan. The system will display information about the group activity to them, including the title, an optional subtitle and image. It's important that this information is descriptive so that Ryan and Adam know what to expect when they join the SharePlay session. So be sure to implement the metadata property for your group activity with meaningful information and return a GroupActivityMetadata instance. Also consider including a web-based URL for participants who might not have your app installed on their device already. This will make it quick and easy for them to download your app and join their friends in the activity. It's important to remember that just because someone's on a Messages group or FaceTime call doesn't mean that they have joined the group activity. To find out who else is participating in the SharePlay session, people can navigate to the details view. Looks like Ryan's listening with me, but Adam, who's on the FaceTime call, hasn't joined the SharePlay activity yet. When possible, you can also show similar information in your app's UI. This is a great way to know everyone is on the same page as you. It also helps maintain a sense of presence with the group. If you were all in the same room, you would know how many people were enjoying the activity with you just by looking around. Now we all have some friends who are always fashionably late to a party; so, depending on your app's experience, you might want to consider supporting a lobby where people can wait for people to join before beginning the experience. For example with Heads Up!, once everyone has joined the SharePlay session, you can tap Let's Play! to start the game. OK, so we've covered how to make starting and joining a SharePlay activity seamless. Now let's consider how to create an intuitive experience during an activity. As part of the ongoing activity, everyone will be interacting with your app at the same time. We have built a relationship with our devices that changes occur as a result of us directly touching something. But when you build a shared experience across different devices, it's possible that things would change on someone's screen due to someone else's interaction. So when things change during a SharePlay session, it is important to let everyone know why. For example, Ryan might pause the movie the group is watching on his device. When Ryan pauses the video, it pauses for everyone else as well, without any interaction with their devices. The system already handles communicating changes like these to the rest of the group with notices but, for some activities, people may benefit from in-app contextual information about what's going on during the activity as well. For example, when using SharePlay with the Flow app by Moleskin, multiple people might be drawing on the same page. When someone draws something, the app shows the initials of who drew it, and this makes for a much more intuitive experience for the entire group. It also helps reinforce the feeling of presence with the rest of the group. This is even more important now that you can SharePlay over Messages, where you may not have continuous feedback from your friends over audio or video. All right, so we've started a SharePlay activity with our friends. We've made sure everyone has joined. Now, the focus is on the activity itself. You might have a fully-immersive experience that supports full-screen viewing and might be hiding the status bar. For example, the Apple TV app hides the status bar and other interface elements when people are watching a video but… it is important to remember that the pill in the status bar gives people access to important controls. So, let people redisplay a hidden status bar using a simple, discoverable gesture to give them access to these types of controls during the ongoing activity. In the Apple TV app, a single tap shows the status bar again and reveals important experience controls in the UI. It is also important to remember that the activity in your app's interface is only one part of the whole experience. Think about how the people using your app will engage with the rest of the group during the SharePlay experience you've built. Whether they are on a FaceTime call or texting over Messages, people are multitasking so there may be instances when someone navigates away from your app while in a group activity. For cases like this, remember to support Picture in Picture for coordinated media experiences. This will allow everyone to continue watching with their friends, maintaining a sense of presence with the rest of the group. Whether someone is responding to a message or connecting with the group over FaceTime, the video doesn't have to pause every single time. Considerations like these when building group activities for your app will help make the end-to-end SharePlay experience seamless, breaking down the digital barriers to create meaningful moments where people feel present with each other. So make sure to register your group activity so people can start to SharePlay directly from your app; configure descriptive metadata so people know what to expect when they join the activity; have an experience for late joiners, and provide contextual information about why the UI might be changing; make sure controls are easy to access; and support Picture in Picture for media. We've talked about a lot today, so let's do a quick recap. Now, you can start a SharePlay session directly from your app without the need for an ongoing FaceTime call. This expands the opportunities for building a variety of group activities. So we recommend that you do the portal exercise to start thinking about how to design an experience for your app that helps people feel like they're in the same space together; reimagine your app's content and activities to create great experiences for groups; and use best practices when building your experience to prevent digital barriers from getting in the way. We cannot wait to see the creative uses of SharePlay that you all come up with. We hope you enjoyed the session. Adam and Priya: Thanks for watching! ♪
-
-
Looking for something specific? Enter a topic above and jump straight to the good stuff.
An error occurred when submitting your query. Please check your Internet connection and try again.