Presentation is loading. Please wait.

Presentation is loading. Please wait.

Project Rome: Cross device interactions

Similar presentations


Presentation on theme: "Project Rome: Cross device interactions"— Presentation transcript:

1 Project Rome: Cross device interactions
Carmen Forsmann Hi, I’m Carmen Forsmann, a Program Manager from the Project Rome team. In this video I’m going to introduce you to the Project Rome platform. Program Manager

2 Agenda What is Project Rome? The Opportunity Project Rome in action
9/14/2018 9:52 AM Agenda What is Project Rome? The Opportunity Project Rome in action Build Project Rome into your apps Today, I’m going to cover what Project Rome is, the opportunity we have and how we address that opportunity using the platform, then we’ll take a look at the basics showing some of the APIs available for developers, like you, to build into your apps. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

3 9/14/2018 9:52 AM What is Project Rome? A device runtime for connecting and integrating Windows-based and cross-platform devices to the Project Rome infrastructure services. A set of infrastructure services in the Microsoft cloud for Windows-based, and cross-platform devices. A programming model delivered as APIs for Windows, Android, iOS, and Microsoft Graph, enabling client and cloud apps to build experiences using the Project Rome capabilities. Our mission is simple, drive app engagement across devices and platforms. We do this by offering APIs on multi-platforms including: Windows, Android, and iOS. The idea is that we want to deliver a personal OS that is not tied to a particular device or platform. We know that users will choose different devices for different jobs. Through the Project Rome APIs, developers can build experiences that allows users to move between these devices, seamlessly. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

4 ROME Remote Control & Sessions Remote Control & Sessions Activities
Device Discovery Device Discovery Launch Launch App services App services User Activity User Activity Activity Feed Activity Feed Adaptive Cards Adaptive Cards The easiest way to think about Project Rome is like an umbrella of functionality grouped into experiences happening now and later. In this video, I’ll be discussing the Remote Control and Session APIs, these are the APIs focused on experiences happening now. If you are interested in the Activities APIs, or providing experiences that happen “later”, I encourage you to check out Megan Brown’s session on Activities.

5 A typical day Morning 1-2 hours Work 8–10 hours Evening 4–6 hours
9/14/2018 9:52 AM A typical day Work 8–10 hours Commute 0-2 hours Morning 1-2 hours Evening 4–6 hours For us, the opportunity is very clear, let’s look at an example of a typical day. We use multiple different devices throughout the day for different reasons. In the morning, as we are start our day we could be using our phone or the tv, during the day we may sit in front of a larger screen device, but the phone is always close by. As the day comes to an end it is very likely that you’re back to your devices, whether it’s browsing the internet on a tablet or back to the tv to watch your favorite shows. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

6 A tale of two devices Device discovery Remote launch
9/14/2018 9:52 AM A tale of two devices Device discovery Remote launch Remote app services The RemoteSystem APIs can be best described in 3 separate pillars. The first step is, discovering the devices in your device graph, meaning all devices registered with the same MSA account. Once you choose a discovered device and connect to it, now you can command the remote device by launching a browser or app on it. Or, for an even richer experience, you can use remote app services to send messages between devices. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

7 Augment the experience
9/14/2018 9:52 AM Augment the experience Some examples include enhancing the experience by using all the “glass” of your devices, transferring the experience from one device to the next. Or, you could use one device as a remote control for the other. Use all “glass” Remote control © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

8 Extend the experience Companion experiences 9/14/2018 9:52 AM swipe
Perhaps you have an app that would be perfect for providing a companion experience between devices. Companion experiences © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

9 Discover Devices // create a RemoteSystemDiscovery object
RemoteSystemDiscovery discovery = new RemoteSystemDiscovery.Builder() // add filters // set listener for discovery events .setListener(new IRemoteSystemDiscoveryListener() { // … }) // return a RemoteSystemDiscovery instance .getResult(); As I mentioned before, Project Rome has SDKs available on Windows, Android, and iOS platforms. In this example, we’ll look at device discovery using the Android SDK. You’ll use the RemoteSystemDiscovery object, using the Builder to define the filters and the discovery listener to handle when devices are discovered.

10 Launch URI // create Launch URI command
RemoteLauncher().LaunchUriAsync( RemoteSystemnConnectionRequest, " new IRemoteLauncherListener() { // handle listener events } so each concept would have a single slide and then the all languages slide Once connected to the target device, you’ll use the RemoteLauncher APIs with the LaunchUriAsync() which takes the “remote system” that was discovered, the URI that will be launched, and the IRemoteLauncher listener to handle the event.

11 App Services // create AppServiceConnection
appServiceConnection = new AppServiceConnection(“MyAppService”, “MyPackageFamilyName”, connectionRequest, connectionListener, responseListener); // send message appServiceConnection.sendMessageAsync("This is a message"); Let’s take a look at app services. These are the set of APIs used for messaging. You start by creating the AppServiceConnection passing in the App service name running on the target device, the package family name for the windows device, the “remote system” and listeners for the connection and response. Once that is established, now a message can be sent using sendMessageAsync.

12 // handle response event to sent message
class AppServiceResponseListener implements IAppServiceResponseListener { // Handle the interface events responseReceived(AppServiceClientResponse response) // check status } In the AppServiceResponse listener implementation, you’ll use responseReceived to check that the message has been sent successfully and choose to send a new message, or not.

13 Demo Continue on PC Let me show you an example of an app, available today, called Continue on PC, that is built on top of Project Rome.

14 Share the experience Multi-User Collaboration
Ok, we’ve taken a look at RemoteSystems APIs that are centered around experiences between your devices. What about multi-user experiences? That’s where the RemoteSystemSession APIs come in! Multi-User Collaboration

15 Remote Sessions // create your session
9/14/2018 9:52 AM Remote Sessions // create your session RemoteSystemSessionController sessionController = new RemoteSystemSessionController("TestSession"); sessionController.JoinRequested += SessionController_JoinRequested; // watch for session participants private async void SessionController_JoinRequested(RemoteSystemSessionController sender, RemoteSystemSessionJoinRequestedEventArgs args) { args.JoinRequest.Accept(); } Let’s look at the different parts of the Remote Session APIs. To host, or create, a session, you would use the RemoteSystemSessionController, including the name of the session. Handle the the JoinRequested event and accept participants as they join. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

16 Microsoft Build 2017 9/14/2018 9:52 AM // discover a session RemoteSystemSession sessionWatcher = RemoteSystemSession.CreateWatcher(); sessionWatcher.Start(); // message between participants var info = await args.SessionInfo.JoinAsync(); if (info.Status == RemoteSystemSessionJoinStatus.Success) { currentSesson = info.Session; mainChannel = new RemoteSystemSessionMessageChannel(_currentSession, "Main"); mainChannel.ValueSetReceived += Channel_ValueSetReceived;   await _mainChannel.BroadcastValueSetAsync(new ValueSet() {["Type"] = "Hello"}); If you are not hosting a session, but just a participant looking for an existing session… You will call createwatcher on the RemoteSystemSession to search for available sessions. Once a participant has successfully joined a session, messaging can flow between participants using RemoteSystemSessionMessageChannel. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

17 Demo Quiz Game Let me show you an application of these APIs in action.

18 Release Schedule Anniversary update Creator’s update
9/14/2018 9:52 AM Release Schedule Anniversary update Creator’s update Fall Creator’s update APIs Remote Launch Remote App Services Remote Systems ✓+ Remote Sessions ✓ (PC <--> PC) User Activity ✓ (REST only) Platforms Windows SDK Android SDK iOS SDK MS Graph SDK The RemoteSystems APIs are available today, supporting discovery, launch, and message on Windows, Android, and iOS. The RemoteSessions APIs are available on Windows in the Fall Creator’s update. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

19 https://aka.ms/projectrome
9/14/2018 9:52 AM I hope you are as excited about the Project Rome platform as I am. To try out the Project Rome platform please visit us at aka.ms/projectrome to get more information. We’d love to hear from you! Windows 10 Insider Preview SDK | Project Rome SDK for iOS and Android Microsoft Graph REST APIs © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

20 Thank you! https://github.com/microsoft/project-rome
Thank you!


Download ppt "Project Rome: Cross device interactions"

Similar presentations


Ads by Google