Virtual Developer Workshop: Containerized Development with Docker
We live in a multi-platform, multi-device world as we access desktop PC's, laptops, smartphones, VR and wearable devices, and now IoT and game box. As we increase our device count, it's becoming more complicated to get things done on one platform. During the Microsoft Build Event 2017, a new concept of connected devices with Windows was introduced. As per this concept, the central hub of the process allows data and experience to be shared across devices. User experience across all platforms (Windows, iOS, or Android) will be seamless among different hardware.
Project Rome has solved this user experience and seamless integration problem. Microsoft Graph and Windows 10 will deliver the ability to pick up activities between devices with no hassle. The key benefits for developers with Project Rome are driving adoption and installation of app across all these devices.
What Is Project Rome?
According to Microsoft, the Project Rome initiative is to build a cross-device experiences platform. Project Rome is a platform for creating experiences to transcend a single device to connect across devices. It delivers fundamental advances that enable an app on a local client to interact with apps and services on a remote host.
Programmers now can write a cross-device and cross-platform program focused on user tasks rather than on the devices. The cross-platform experience is added by Microsoft Graph by enabling devices and activities. Project Rome has an API-based programming model, which includes platforms such as Windows, Android, and iOS. It also has a Cloud-based, cross-platform infrastructure and a device runtime to connect Windows-based and cross-platform devices and integrate them. Microsoft's vision with Project Rome is to deliver a personal operating system that is not tied to a device or a platform.
Figure 1: A breakdown of Project Rome
Microsoft Graph API (Devices and Activities)
Microsoft Graph enables user experiences with various devices and activities. Developers can use Project Rome APIs in Microsoft Graph to discover and connect to user's devices, perform remote app launching, and send messages to apps from different devices. Using Graph APIs, developers can build apps that creates rich user experiences across devices, list user's devices, send a command to a device, and get a command status.
Project Rome with Microsoft Graph REST APIs
Microsoft Graph will make applications smarter. Graph allows developers to use a single endpoint to access Microsoft data without calling different APIs. Microsoft added several new API endpoints to Graph during 2017 build, such as integration with Azure Active Directory, Outlook (mail, calendar, and contacts), Office 365 Groups, OneDrive drives and files, Excel, and APIs for Planner, OneNote, and SharePoint sites. Through Project Rome integration, Windows now can connect to Microsoft Graph and access data and intelligence from multiple Microsoft Cloud services.
Figure 2: The Microsoft Graph API Connector
By using Microsoft Graph, developers will be able to access all devices used by users. Graph API provides cross-device experiences.
Project Rome on iOS and Android
Microsoft has released Android and iOS versions of the Project Rome SDK. This SDK works with Java and with Xamarin.
The Project Rome Android SDK
Project Rome Android SDK can use the remote Systems API to discover other Windows devices that a user owns. Once discovered, the Remote Launch API will launch its app on another Windows device. Once his app is launched on the other device, the user can use remote app services to control his app running on Windows from his Android device. By using Project Rome Android SDK, developers can bridge the experience gap between Android and Windows devices.
The Project Rome iOS SDK
With the Project Rome iOS SDK, Microsoft has added support for remote launch abilities onto other Windows devices. It also has provided Objective C-based projections onto the Project Rome device runtime and app services-based messaging.
With Project Rome, Microsoft has given a cross-platform experience to connect all Windows devices. The user is no longer constrained to a single device. The key benefits for developers with Project Rome is driving adoption and installation of apps across all of the devices if you have it available in the Android and iOS app stores. Project Rome uses Microsoft Graph REST endpoints to deliver the ability to pick up activities between devices in a no-hassle manner. The Windows 10 remote system API is a key piece for driving user engagement and productivity for applications across all devices using Project Rome.