Every web page, app, café and even individual cans of drink now provide you with the ability to ‘share’ your current experience. Tell your friends on Facebook that you’re in a castle in Wales exploring the medieval dungeon (I did that last weekend). Inform your followers on Foursquare that you’re in an airport thousands of miles away (I also did that rather gloatingly recently). Scan a QR code on your coffee cup to tweet that you’re enjoying piping hot coffee (I’m currently resisting that experiment as I sit on a train writing this – the castle was fun, the airport a great boast, the coffee is just hot and wet). The point is, we are in a technological age where we are able to share almost anything that we do. We are also in an age where we expect devices and applications to be able to seamlessly share relevant information too. I have a wireless NFC speaker which I carry around with me when on trips, to play music from my phone to the speaker, I simply place my phone on top of the speaker. I don’t even have to turn the speaker on, that small amount of power sent from my phone to the speaker brings it to life, tells it that I’m playing music and that I want to hear it louder. It works seamlessly, it works every time. There was a time when we expected technology like that to fail but these days, it really does just work, and it works well. When it comes to applications, I still think of apps like I think of posts on my blog. There was a plugin that I ran for a while which would allow readers to choose which places they could share a particular post – the options were endless to the point of hilarity – hang on, I’m going to turn it on briefly and screen grab it...
That’s not even all of the options. Admittedly this still happens, but maybe not to the extreme that we can see above. Some have withered away into the digital graveyard, some are so specialized that we don’t include them, some solved the issue by creating their own toolbars, but the point is, we still share or expect to be able to easily share content – but we expect to be able to do it in a more visually pleasing way. On the web, we used to be able to do that with a quick copy/paste (and we still can) but there’s a fantastic new way of sharing information that’s built into the very heart of Windows 8 and understanding how it works and more importantly, how users of your applications could share information from your app is one of the basic features that will help your application not only stand out from others, but it can make your app more powerful and useful.
People want to share the things the love and they often want content from one app into another app. The Share Charm provides a lightweight, in-context experience for app to app sharing. Also, it’s universally accessible — users can always access it with just a single swipe from the right (or by pressing Windows C) to share content from your app. The key thing to bear in mind here is that the share contract is facilitated by Windows, you design and develop the parts of the experience that are unique to your app. Sharing works by you (the experience designer) deciding which pieces of content may be shared from each screen, Windows then handles how this gets shared, it is then up to the application designer to decide if the type of content that is being shared can be then 'consumed' by their app. From your application you can share:
By developer defined data I am referring to any pre-defined schema – restaurant info, hotel info, a TV Series, even down to the anatomical makeup of a medical condition. The best place to look for these so you don’t have to invent them yourself is http://schema.org. Sharing breaks down into 3 parts as follows:
The Share Source is your application. The way to think about this is, for every screen in your application, what would a user want to be looking to share? It is as important as adding navigation to a web page – you need to consider in each screen what sort of content would/could be shared. Is it an image or a screen shot of a page they’re currently on? Is it a piece of text that they’ve selected? Is it a developer defined schema of a recipe – an incredibly powerful point to make here is that from a cookery application it would be possible to share the list of ingredients to a shopping application. That application could then add the ingredients to your order. Magic. Not every application can share, if you try and share from the desktop, you'll get a message saying "Nothing can be shared from the desktop".
It is only Windows Store applications that can share content - desktop applications can take advantage of this. Some applications require that you have selected an item to share, such as if I open the photos app but don’t select a photo it tells me "There's nothing to share right now. Select some photos, or videos, and try again."
This is a powerful feature to experience designers – you have the ability to lead your user so that they are able to understand what it is that they have to do in order to share information. I don’t believe that any application should ever outright say ‘this application cannot share’. Even if it is to give someone the ability to send a link to your application on the web store to promote your app and push for more downloads, a screenshot of the app, a description of what it does, a link to download it – there is always some content that your app can share.
The Share Pane is part of the Windows OS but you do have control over how this is presented to the user. It is not a separate app, it’s a scenario that should provide a consistent look and experience as the rest of your app. There are 2 widths available to you, a short pane (346px) or a wide pane (646px). When you decide what the experience is that you’re going to share within here is going to be, choose your width and my advice would be, only use the wider pane if you really need to – you want to avoid obscuring the user’s other content where possible. Some tips and advice:
Your app can act purely as a share source, that means that it can share content out of the app, but not receive content. If you want your app to be a Share Target, ie, allow content to be consumed by your app then you need to decide what data formats you want to support. If your application is an image editor, you probably want to be able to accept images. If your app is a postcard creator, you may want to be able to accept the standard address schema and then allow the user within your share experience to choose an image to add to a postcard. It really is up to you to decide how your application can receive content and what it can then do with that content. The image below shows how the Puzzle Touch application handles images as a share target.
Key point to mention here again is that if you’re going to accept different types of data, design the share target experience so that it is customized for each of those scenarios. A great way of looking at this is to go to Modern Internet Explorer and select different elements and then share. Depending on whether you’ve selected text, an image or nothing at all, the share experience you receive from other applications will be different.
An important thing to bear in mind is that the user has full control over what apps appear in this sharing list. If I open the charms bar and go to the settings charm at the bottom, under ‘Change PC Settings’ there’s an option for ‘Share’. If I feel your application does a particularly good job of sharing, I can decide maybe to pin it to the top of the list so that it is always there. If I think otherwise I have the option of making sure that your app never appears when I invoke the Share Charm. Keep this in mind. Where the user is in full control you have to be respectful and relevant or they may just turn you off. I can also choose to pin your app to the top of the list. If when I invoke the Share Charm and I touch and hold, the context menu that appears gives me the option to ‘pin’ which means that application would always be at the top of that list.
Applications that I feel provide a great sharing experience include Puzzle Touch and Rowi. Puzzle Touch is a brilliant example because it takes any picture and creates a puzzle from it. It’s not that I particularly like puzzles, but the power here is that whilst these applications know nothing about each other, they can extend themselves to take advantage of each other's capabilities. Fresh Paint allows you to draw an image, but the developers of this application were concentrating on allowing a user to create an image. On the list of features they didn't think that they would enable a jigsaw creating API but by taking advantage of the Share Charm, it means that you can have a jigsaw of any image you create with Fresh Paint. The power here is that neither of these apps know anything about each other, but the operating system can let the apps talk to each other. So I can take a picture from my holiday snaps and let my kids then put the image back together in a jigsaw format. That’s just one example of the power of sharing in Windows 8. Below you can browse links to some developer resources on the subject, however, feel free to hit me up on Twitter if you have any specific questions.
This about how you can take advantage of the power of share in your applications. Can I share a piece of text to a dictionary app that will then give me a definition of that word. Or a thesaurus that will offer alternative words? Can you share a piece of music with a clothing store which will return results of clothes I should wear based upon that piece of music? Can you share a photo from your favourite picnic spot with a grocery app and be presented with a shopping list ideally suited to that location, on that day, for the known weather conditions? Really, the possibilities are endless here, clearly some require more effort than others but there is a basic requirement from you as the designer or developer of an application to consider - what will happen when the user touches on the Share Charm on each screen of your app? It’s a new world of sharing. Share it.