Building a Web of Apps on Windows 10

If you haven’t heard the news, well, let me be the first one to let you know. The tools for building apps for Windows 10 are here: http://dev.windows.com/en-US/windows-10-developer-preview-tools. Sure, it’s still Visual Studio and a Windows SDK but the BIG difference this time is that not only can you build for Windows and Windows Phone, you can also build for potentially any platform that runs Windows out there. That includes Xbox, Hololens, Raspberry Pi, the Surface Hub, tablets, laptops, desktops, phones. And those are just the ones I know about!

The ambition of the Windows 10 release and the scope of this SDK is hard to overstate. Over the past year, we’ve been busy building a set of tools to connect apps on Windows in my little corner of the world. You see, my team work on a bunch of APIs that apps can use to talk to each other. These APIs give apps the ability to share data with each other using the share contract, launch each other using custom URI schemes and file associations, share files with each other using the file picker APIs. We also work on humble but important APIs such as the clipboard APIs. Basically, any time an app needs to talk to one of the other apps on a device, we come into play.

With Windows 10, our challenge was to extend these APIs all of the devices Windows is now available on. Now, not all the APIs work exactly the same everywhere. There’s no sense in making the share picker on the phone fly out from the right and cover only part of a small screen for example. The clipboard on an Internet of Things (IoT) device such as the Raspberry Pi will have **some** differences compared to the one on a full-blown desktop machine. Nevertheless, we wanted to make the majority of these APIs universally available so that apps on all these devices could talk to each other.

Our vision of app to app APIs (app to app is what we call ourselves and we’re still looking for a nicer name :D) has always been one of a web of apps. There is no reason apps have to be islands. Now that does not mean app isolation isn’t important. It is VERY important. In fact, the lack of true app isolation on most desktop class operating systems frequently means that a user’s experience can be held hostage by one or a handful of rogue apps (virii, malware et al). However, that does not imply that every app must be an island unaware of other apps on the device. The user forever doomed to shuttling in and out of the start (or home) screen trying to accomplish the simplest tasks.

When apps talk to each other beautiful things happen. You install one app and it enriches your experience in other apps you might already have. We’ve all seen this happen, but it is still something of a dark art. Our goal is to make app to app communication easier, less of a dark art and make your device as useful as your browser. You should never, ever have to choose an app before you choose what to do. We’re not quite there yet, but I think you’ll agree it is a noble goal.

Thanks for reading this far. For the next few posts, I will be talking about enhancements and new app to app features we have built for Windows 10. Please use comments or my twitter handle @aruntalkstech to reach out. The code will always be at http://www.github.com/arunjeetsingh. Happy hacking!

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s