Sharing from one app to another has been a mainstay of Android for years and years. It was one of the features that first drew me to Android: no more copying and pasting, no more having to open Twitter or WhatsApp to send a picture I just saw in my Gallery. Apps could talk to each other and the experience felt cohesive and seamless.

But with time, the Share UI in Android has languished, stuck with the same features and problems. It switched from a vertical list to a grid, it added direct share in Android 6.0 and app pinning in Android 7.0, yet these felt like putting lipstick on a pig: the Share UI remains slow, bloated, convoluted, and if you pay close attention to it, one of the most inconsistent experiences on Android to date. Android P, like Oreo before it, appears to bring no improvements to the Share interface, but that's a big oversight in our opinion. It's high time Google gave it the attention it deserved and fixed its many issues.

The irregular Share icon

As I researched this article, opening and closing dozens of apps and testing their share interface, it dawned on me how inconsistent it is to just start sharing. Having grown with Android since the Froyo days, looking around for a sharing option isn't tough for me, but I have to imagine the experience is nowhere near intuitive for average users. Even in Google's own apps, which may be the biggest offenders, finding the share icon is an exercise in frustration.

In some apps, like the Play Store and Google Maps, it's in the middle of the page and you have to scroll to get to it.

Share icon in the Play Store (left) and Google Maps (right).

In other apps, like Google Photos, it can be anywhere really. When you're selecting photos, it pops up in the title bar (same happens in Contacts, Messages, and Downloads, so at least that's a little consistent). But when you're viewing a photo, it's in the bottom row of quick icons.

Share icon in Google Photos when selecting multiple photos (left) or viewing a single photo (right).

Worse yet, if you're viewing an album inside Photos, the share icon may or may not, depending on some circumstance I can't guess, show up in the title bar or be hidden in the overflow menu.

Sharing icon in Google Photos' Albums (left) and lack thereof (right).

Then there are the times when the share icon isn't an icon, but a properly spelled text item. Chrome is one example. Another is when you tap and hold on a link or when you select text. Chrome also does something funny where it gives you a quick shortcut to share to one app right there, so you don't have to open the Share UI to begin with.

Share option in Chrome with its default app target (left) and when selecting text (right).

And then there's YouTube. I needn't say more.

I rest my case.

That's without even beginning to mention the ways third-party apps display sharing. From eBay to Amazon, every developer has decided on where and how to present the sharing option, and that does indeed give freedom to devs to adapt it to their use case, but from a user's perspective, it's a blind fumble until you get used to how each app does it.

The slow and ever-refreshing Share UI

Congratulations, you found the icon! Now you wait, and sometimes wait a little bit longer, for the Share UI to populate. Depending on your phone's processor, how bogged down it's gotten with recent usage, and how many apps you have installed, you may end up staring at an empty grid for a few seconds. In the GIF below, it only takes a second for the menu to populate, but that can slow down even further.

The issue is that Android is indexing apps to share to each time the menu is being called upon (thanks, Ron!). There's no cache telling it what icons to show in which circumstances, it has to look for them every time. Arguably, the best way to solve this is to do it after a reboot and then when an app is updated because that's when new sharing functionality might be implemented. Indexing every time makes no sense.

Empty grid while the Share UI loads.

With the introduction of Direct Share, that process has been slowed down even further: first the main share interface shows up, then a second or two later, the top row of direct share items loads. Beside the fact that it slows you down, it creates a lot of confusion and wrong taps too. If you already started scrolling through the apps list, the Direct Share rows will push the apps grid down when they load. Also, the system isn't accurate in recognizing your taps right away so you may think you chose an app but another is in its place after the menu fully loads or refreshes, so it gets selected instead. And that's how you end up sharing your Spotify "Twerk it!" playlist to your Slack work channel instead of your WhatsApp Zoomba group.

Have you also noticed that if you keep the share menu open for a few seconds it refreshes by itself and loads the Direct Share items in a different order? I did. In the GIF below you'll see it happen after about ten seconds (wait for it) without me doing anything, but in reality, sometimes it happens after a mere two to three seconds.

The many, many faces of the Share UI

The current default sharing interface on Android looks something like the screenshots below when it loads. A grid with three rows of four app icons each on a white background, with one to two rows of direct share targets above them. Swiping to expand the menu to fullscreen reveals more apps you can share to. (Not in my case, because I took the screenshots on a secondary phone that doesn't have many apps installed.)

Default Share UI when it opens (left) and expanded to fullscreen (right).

This sharing menu shows up on stock Android in several apps: Chrome, Contacts, Messages, Downloads, and more. Many third-party apps also implement it, thus not worrying themselves with any quirky customization.

It's also worth noting, that depending on your OEM skin and some third-party apps, you may end up with a Share menu that's vertical, and even then it can be inconsistent (thanks, @mepthoughts!) But I won't get into that now, as it's a whole other can of worms. So let's stick to stock Android and its apps.

Developers have the freedom to customize the Share menu, which results in unique and inconsistent implementations across the board. Google Photos, for example, lets you share to contacts directly and includes two rows of four icons each (one of which opens more contacts). It keeps the main grid of app icons below, but all icons are smaller than the default implementation. Also notice how the colors are inverted - grey for the app icons, white for the contacts - contrary to the default sharing menu. YouTube also lets you share directly to contacts, but it has gone for a different look. There's a scrolling carousel of the contacts you've shared to on one row, the background is white for both sections, and the grid below has three icons per row instead of four.

Share UI from Google Photos (left), YouTube (middle), and Amazon Shopping (right).

And just for fun, I added the Amazon Shopping app's sharing menu up there. This is what happens when apps can make their own custom Share UI. I don't blame Amazon for this abomination, I blame Google.

The case of Google Maps

In the world of customized sharing menus, Google Maps stands tall as the most baffling of the bunch. Leaving alone the fact that I don't understand why it doesn't use the default share interface and requires a special menu to begin with, Maps is a special snowflake in the Android apps universe.

Sharing a place opens a menu that fills about three-quarters of the screen, regardless of whether you have enough apps to populate it or not. White background, three icons per row, no direct share. We're already off to a questionable start. Sharing your current location, however, opens up a much smaller overlay with a few options that are relevant to Maps itself. This one is understandably customized, but wait a second.

In Google Maps, sharing a place (left) and your current location (right).

Tapping on More in that location sharing menu pops up the full list of apps you can share to. Unlike Maps' place sharing menu above, notice how a) the overlay's height fits the numbers of icons available, b) we moved back to a four-apps-per-row grid, and c) for the laughs, in the second screenshot, the icon alignment is so off (Copy to clipboard and Add as a comment are the most obvious) that I had to do a double take when I saw them the first time.

Sharing location to "More" apps opens this adaptive menu. (Taken on two different phones.)

It's usable, there's no denying that, but by golly, did no designer on the team stop to wonder what went wrong there?

The case of Google Photos

I already mentioned Photos in the main section, but we really need to stop and appreciate the idiosyncrasies of its own sharing menu. Take the case of selecting multiple images to share versus sharing just one image. You'd think the interface would be the same, and you'd be mistaken. Sharing multiple photos opens the menu we discussed earlier. Sharing one photo opens that menu, but pushes it down so it can display a carousel of images to let you select more. If both menus are geared toward multiple image sharing, eventually, why is one offering me the option to change my selection while the other isn't?

Google Photos: sharing multiple photos (left) and a "single" photo (right).

Again, just for fun, try expanding these two menus to fullscreen. Even there, one of them goes all the way up while the other keeps a title bar with the number of selected images. Oh Google!

Google Photos: sharing in fullscreen multiple photos (left) and a "single" photo (right).

We're nitpicking, sure, but this is all part of the experience any power user or new user sees each time they use these apps. All these small differences can throw someone off. And while we like the flexibility of the sharing interface, which lets developers implement their own, that does open the door for more inconsistencies like these.

Icon packs and shapes are neglected

One last thing to note, since we're talking about looks: the sharing menu doesn't use your chosen icon pack or icon shape. So if an app looks like something in the drawer and on the homescreen, it might have a different look altogether in the share menu because it's not affected by any changes you make in the launcher.

Sharing is unpredictable

Beside the external look of the sharing menu, two functional issues irritate me about it, and both of them boil down to unpredictability.

Order, what order?

Say you open Chrome and try to share a page. You get a certain order of apps you can share to. All good. A couple of hours later, you open the same page and get another order. You wait a bit without tapping on any share intent, opening any other app, or doing anything that might influence that order. You try again for fun, and get another order.

Sharing from Chrome at 11:59am, 3:13pm, and 3:37pm. Imagine if I had more than 11 apps.

There is no rhyme or reason to the way the icons are ordered in the Share menu. Apps I've never used always show above apps I constantly use (I know I can pin, but I'll get to that later). Apps I never ever shared to take precedence over those I share to from time to time. And the order is ever-changing. No instance of the Share menu is like the other, no matter your apps, pins, habits, usage. Say b-bye to your reflexes. You can't reorder by usage or alphabetical naming, you just have to rely on Android guessing which apps you're most likely to share to now and populate that list accordingly. Most of the time, the results don't even approach accuracy.

Sharing targets change, sometimes

Depending on the content you're sharing, you'll see different target apps. That's understandable because you don't want Instagram when you're sharing a link, or YouTube when you're sending a PDF. But still, even with the same content, you see small idiosyncrasies. Take for example an image. Sharing it from a regular gallery app (say Camera Roll) and from Android's file browser (the Downloads "app") results in the same share target apps (in a different order, obviously). But that same image being shared from Photos gives me 5 new options. Two of them are exclusive to Photos, but the other three (DS get, SeriesGuide, and JotterPad) are only showing up because Photos treats images as links too.

Sharing the same image from Camera Roll (left), Downloads (middle), and Google Photos (right).

I'll concede that this point is as bit of a stretch and a super special case, but it can be confusing for users who don't know why this is happening.

Direct Sharing is nothing short of a mess

Oh how this one grates me! When it was introduced, Direct Share was supposed to speed up the process of sharing something directly into a specific target inside the recipient app. In reality, however, it is a bloated, unpredictable, confusing mess. Beside its slow loading and intermittent refreshes that we discussed earlier, there are many issues with it:

On average, you get 4 direct share targets from 2 apps, but sometimes, you get 4 from one, 3 from another, and 1 from a third app.

Usually, direct share targets from the same app are grouped together, but sometimes they're not. There's no reason why they should be grouped to begin with (you may share only to one target inside an app, but it will still display four) and no explanation as to why they sometimes aren't.

The order of direct share targets changes all the time.

The apps that direct share targets come from can be apps you often use, or apps you don't really use.

The direct share targets can be ones you've never shared to or did so many, many months/years ago.

The direct share targets can also be ones you've never even used in the original app they came from. Ever seen a share to a Twitter contact you never DM'ed or mentioned? We did.

Pinning an app pins its direct share targets. You can't pin a single target by itself.

Even if you only pin two apps, there's no guarantee that their targets will populate the menu. Sometimes, a third app takes over four of the spots, pushing away the targets from your pinned app.

Above is a collection of direct share menus I got when trying to share the same image in the same app on my phone. Each time I loaded the share menu, I saw a different order, different targets, and different apps.

Pinning is inconsistent

When pinning was added, we hailed it as one way to solve the Share UI's mess. If you could pin your most used apps and targets, you wouldn't have to hunt and peck for them each time you wanted to share something, right? Wrong.

Tap and hold any app in Share to pin it. Handy, but terribly executed.

We discussed the issue with pinning and direct share in the previous section, so let's just focus on pinning apps here, starting with the order.

A different order

There's no way to pin items in the disposition you want. In the GIF below, you'll see how pinning Pushbullet then Bluetooth then Gmail results in this pinned order: Bluetooth, Gmail, Pushbullet. No matter what I try, they don't follow the succession that I pinned them in or the order in which they showed up in the current Share menu. That leaves me scratching my head until I realize: pins are alphabetically ordered! What? Why? Of all places, this is where you choose to follow the alphabetical order, Google?

Did you also notice how the Share menu reloads with every pin/unpin? That's anything but smooth. The alphabetical order leaves me baffled, but also makes me wonder: if I pinned all my apps, would they show up alphabetically? That'd be the quirkiest of workarounds.

Pin-unfriendly apps

The second inconsistency for the pins is that they're only valid in the default share menu and don't carry through to the special customized share menus, like Maps, Photos, and YouTube. In the GIF below, you'll see me pin Pushbullet, Copy to clipboard, Gmail, and Translate while trying to share a page from Chrome (default share menu). Then I switch over to Maps and the custom share menu has whatever order it wants, no pinned apps at all.

That is not to mention that switching between devices doesn't save your pinned apps, so you have to manually set them on each device.

What Google needs to do

When I first started looking into Android's Share menu, I had little to no idea that I'd come across so many issues, big and small. In day-to-day use, it's true that the slowness and inconsistent order are the most grating of problems, and even then, they don't really affect my personal workflow too much. But now that I delved into it, I can't unsee some things and I know that the implementation can be done so much better.

We have to hold Google to a higher standard than "good enough" and "tolerable." If the company can use AI and ML and other fancy things to tell me that a dog is a Bolognese, it sure can fix the basic interface elements of its sharing menu. I realize this same sentence can be said about countless things in Android, but we're talking about sharing now, so let's leave the other debates for another day.

In no particular order, here are the things that we think Google should fix in the Share UI.

Cache the list of shareable targets upon reboot and every time an app is updated. Don't redraw the menu with each instance.

Load the list of app and direct share targets in one go, no more two-step loading. That will result in fewer mistaken shares to unintended apps.

Stop refreshing the share menu when it's already open.

If a default share interface can't be reinforced, put in place the basis to allow developers to customize it without breaking the main functionality (grid size, pinning, order) and while allowing a unified approach to in-app targets (like Photos and YouTube do with contacts).

Allow users to reorder the sharing app targets, and hide apps they never use from the share menu.

Allow users to pin share targets separately, without pinning the app.

Allow users to hide direct share targets coming from certain apps, and choose the logic behind which direct share targets show up in the menu.

Stick to a single share icon design. I'm looking at you, YouTube.

Be consistent in showing that sharing icon in the same place in various apps, at least when the UI permits it.

There's already a corresponding issue for fixing the Share Intent in the Issue Tracker that you can star, but please don't post useless comments because that gets forwarded to everyone who starred it too (thanks, @Stanzilla!). It may not do much, but it's one way to raise awareness about it and escalate it with the Android team.

I end this with the hope that, one day, Android will have a fast, powerful, and customizable share interface, unlike the inconsistent mess you see in the four screenshots above. One can dream.