The share sheet is both the best and the worst thing to happen to Android. Theoretically, it's a powerful built-in feature that allows you to share content from one app to another and that should make it easy to send photos, files, videos, and links to your most precious contacts with just two or three taps. The reality is far from this ideal, though. Suggested contacts in the top "direct share" row rarely consist of people you regularly talk to, and far too many apps (including Google apps!) have started implementing their own custom share sheets that prevent any muscle memory from building up.

Sharing on Android has already improved in recent years, but it's still far from ideal. Prior to Android 10, loading up the system share sheet was an exercise in frustration. It wasn't cached at all, meaning that whenever you pulled it up, the system had to check which apps you've got installed and which you're most likely to share to based on some unspecified cues. That lead to apps randomly changing spots and a super slow loading experience. It's likely that this unsatisfactory situation also gave rise to so-called custom share sheets — alternate in-app sharing capabilities implemented by app developers that often mostly mirror the system-wide sharing dialog.

Back then, we already begged Google to fix the worst of the woes, and the company mostly listened. Android 10 introduced the fast and responsive system share sheet as we know it today, with a top row of suggested contacts from different apps, a second row of suggested apps based on what you're sharing, and an alphabetical collection of other targets (all other eligible apps for the content in question).

While the share sheet is much faster and plain better these days, sharing stuff on Android remains a frustrating experience.

The problems and potential solutions

Custom share sheets

There are two problems with the current implementation of the share menu: Custom share sheets and direct share targets. Let's dive into the first topic. Tons of apps use their own share sheets, with Google apps being among the prime offenders. These custom versions offer some functionality that isn't available in the Android system share sheet, but often also come with much fewer sharing targets than their system pendant. There's also no consistency at all. Every app does things slightly differently, making it difficult to remember how to move around each menu.

Custom share sheets in a variety of apps, including Google apps.

In Google Photos, you can select more images to share after hitting the share button, and it's possible to send photos to contacts within the app. Google Maps also allows you to share with in-app contacts. Google Chrome lets you access some neat features in its share menu, too, like the option to send a tab to your other devices or generate a QR code. Twitter also has a custom share sheet with options to bookmark a tweet, DM it to another user, or add it to a Fleet. Drive and the rest of Google's productivity suite don't even tap into the Android share menu at all. The list could go on and on, with TikTok, Facebook, and many other, but you get the gist of it — there's no visual consistency and actions can differ vastly depending on the app.

Solution 1: Sub-options in the system share sheet

If you look at some of the apps in your system share sheet on Android 11 (or 12), you'll notice that they have small drop-down arrows next to their name, signaling that you'll open a menu when tapping them. In this menu, you'll find some of the same specific sharing options that you can sometimes spot in the app's custom share sheet.

Left: Chrome custom share sheet. Middle & Right: Chrome's options in the system share menu.

That's the case for Chrome: Its custom share sheet has five options — sharing a screenshot, copying the current link to your clipboard, sending a link to your devices, creating a QR code, and printing. In the system share sheet, the app still offers two of these options, printing and sending to your devices. It's probably trivial to add QR code functionality here, and the system share sheet already supports copying a link to your clipboard, so there's no need to duplicate this option. You'd lose out on the screenshot feature, but then again, you could just take a screenshot via your system — there's actually no need for Chrome to have a built-in variation of this feature at all. That leaves us with the conclusion: Google Chrome could easily do without its custom share sheet (and it has in fact done without it until August 2020).

Left: Maps custom share menu. Right: Mockup for Maps sharing options in the system sheet.

Things are a little more complicated when it comes to apps like Maps or Photos that offer sharing with in-app contacts. But here, developers could simply add an entry to the drop-down menu in the system share sheet that offers something like "Send to your contacts". If you share from within Photos or Maps this might leave you with an extra step, but at least the share menu would be consistent across all apps. In any case, Twitter proves that this is possible. In addition to its custom share sheet, it has a drop-down menu in the system share menu that lets you select to tweet, DM, or add to a Fleet.

Solution 2: Modular share sheet

There might be a better option that would give us the best of both worlds, if I may suggest as much. What if app developers could get an extra row in the system share sheet for some custom in-app actions?

Left: Chrome custom share menu. Middle: Android share menu. Right: Mockup with Chrome options in Android share menu.

I've created a mockup of what I'm envisioning using Chrome as an example above. I added the relevant four sharing options from its custom menu to the system share sheet, and I feel like this might be the most elegant solution. App developers could keep their specialty sharing options, but users wouldn't have to make extra steps just to share to an app that a developer hasn't included into their custom share sheet. For Google Photos and Maps, developers could add in-app contacts as sharing targets to this row, perhaps with an extra button to pull up more contacts. I know that these contacts could clash with the contact suggestions in the top row, but maybe in-app contacts could outright replace the usual direct share suggestions instead?

Solution 3: In-app forwarding

Forwarding as an option to avoid an in-app share menu in Telegram (left) and WhatsApp (middle & right).

Then there are also apps that go a different path altogether. Messengers like Telegram and WhatsApp found an elegant solution for in-app sharing by introducing the concept of forwarding via an extra button. By hitting that forward button, you can exclusively select a contact from WhatsApp or Telegram to forward media or a message to, but if you hit the Android share icon, the regular sharing sheet pulls up and you can go ahead and share with another app. That might also be an option for Maps and Photos, though I recognize that with people used to hitting the regular share button in those, changing this up might not be a good idea from a UX perspective.

Direct share contact suggestions

The Android system share sheet itself still needs work, too. I don't know about you, but anecdotally, I've heard of loads of people who never get any relevant contacts in the top direct share row, which is instead filled with recommendations to chat with that one guy you DM’ed on Twitter once back in 2014 (okay, maybe I'm exaggerating here, but you get the point). Either Google needs to fully overhaul the mechanism it uses to pull these share targets or remove them altogether. If you ask me, we could get rid of this direct share row altogether and use the space to introduce the custom in-app sharing options as detailed above — at least if Google is unwilling to change anything about the algorithm that picks contacts.

Another idea for this direct share section is the option to pick and pin specific contacts from your favorite apps, much like you can pin apps to the row below the direct share targets. If I could just pin my fiancée whom I chat with all the time, I'd already be happy.

If that seems familiar, you probably own a Samsung phone. Samsung has successfully tackled these issues in One UI, its custom interface on top of Android. The manufacturer allows for extensive system UI modifications thanks to its suite of Good Lock apps, with Home Up being responsible for changing the share sheet (among other things). In it, you can decide which contacts to pin to direct share and select which apps should show up in the menu at all. You can also turn off direct share altogether.

It's great to see this solution from Samsung, and I'm glad it exists, but I'd prefer if Google could tackle it on its own and make it available on all Android phones. After all, Google often picks up features from manufacturers and adds them to the underlying system for everyone to use. The company only recently added scrolling screenshots, a gaming dashboard, and bigger headers — all features that were previously created by manufacturers.

What you can do in the meantime

If you want to enhance your share sheet in the meantime, there's basically only one thing you can do. You can tap and hold individual app icons in the sheet and pin them to the second row filled with suggested apps, below the direct share targets. If you often find yourself chatting and sharing to WhatsApp, Telegram, and Google Messenger and pin these apps, this might already make things easier for you.

Unfortunately, there is nothing you can do to prevent custom share sheets from popping up — that's completely up to Google and developers to sort out.