iOS 8 wants: Pervasive inter-app communications

Android has intents as a way to request an action from another app. Windows Phone has contracts and extensions (opens in new tab) to declare supported interactions. Apple added inter-app communication in iOS 7, but only for audio (opens in new tab). That's why more pervasive inter-app communications remains one of the most requested features for iOS 8. So what is it and why is it taking so long?

inter-app communication means different things to different people. For some it's the ability to push files from one app to another. For others it's the ability to pull data into any field in any app. For still others it's the ability to set default apps different than the current ones made by Apple. The core issue, however, is workflow. People just want an easier way to move their stuff around.

Working to complicate this is the nature of iOS itself, which is a security and privacy first operating system. That includes apps being locked into their own "sandboxes" so, if something somehow exploits a vulnerability to get into one app it can't then continue on to infect other apps or the system as a whole. This is in complete contrast to Android, which was built with flexibility and customizability at its core.

So, doing things like intents is likely intrinsically easier on Android than it would be on iOS, as any inter-app communication system Apple exposes to developers would have to be architected to punch through the sandbox in an absolutely secure way. It might also mean iOS inter-app communication could never be as broad as what Android's intents are. It could, however, be enough.

Apple's had URL schemes (opens in new tab) since the early days of iOS. Developers have used them, and figured out x-callback URL, as a way to move bits of data between apps. But it's cumbersome to coordinate and implement, and limited in what it can do.

XPC{.nofollow}, the Mac's interprocess communication mechanism, was ported to iOS a few year ago, but it remains private an unavailable to developers.

SpringBoard, the iOS interface system, was also broken into a smaller SpringBoard (foreground) and separate Backboardd (background) for event handling. But the ability to run headless apps hasn't been made available to developers either.

There are also various other things like Share Sheets and Open In which currently allow, with severe limitations, some files and data to be pushed out to other services and apps. Embedded Mail, App Store, and other sheets also bring bits of interface from other Apple apps into the current app to make it feel like inter-app communication is happening.

That last part, the perception, is what's most important. Back before iOS 4 people repeatedly asked for third-party multitasking. Apple, however, prioritized battery life and, realizing what people really wanted was the ability to surf Safari and listen to Pandora, offered very specific API to allow for very specific background processes instead. They also allowed apps to hibernate and resume instead of forcing them to quit and relaunch which made for a — admittedly clunky — illusion of full-on multitasking.

iOS 7 took this a step further with background refresh. Realizing that if content was available when a person wanted it, it didn't matter if it arrived hours or mere moments before. So, using a variety of triggers to create what's effectively just-in-time multitasking.

Could that same type of thinking and problem solving be used to create the perception of inter-app communication within the security model essential to iOS?

People want to move their photos from Camera+ to Snapseed to VSCO Cam without having to save them to and open them back up from the Camera Roll each and every step of the way. People want to have 1Password or LastPass insert their saved password into Settings, Safari, or Gmail without having to go to one app, search for the right bit of data, copy it, go back to the other app, and paste. People want to have links open in Chrome rather than Safari and locations open in Google Maps rather than Apple Maps.

These are the problems that need solving. Whether it involves securely surfacing XPC and leveraging BackBoardd, creating a plugin architecture — wait for it! — implementing a file repository and DocumentPicker controller, or figuring out a way for apps to declare the file and data types they can handle so those types can be assigned to them in Settings, I don't know.

What I do know, again, is that this is a problem people are facing. It's something that hinders their productivity on iOS and drives a segment of them towards other platforms, including the Mac.

If Apple could solve inter-app communications in a way that enabled workflows but maintained security, it would be a tremendous boost, and it would be something great to see, even in first-step form, in iOS 8.

Rene Ritchie
Contributor

Rene Ritchie is one of the most respected Apple analysts in the business, reaching a combined audience of over 40 million readers a month. His YouTube channel, Vector, has over 90 thousand subscribers and 14 million views and his podcasts, including Debug, have been downloaded over 20 million times. He also regularly co-hosts MacBreak Weekly for the TWiT network and co-hosted CES Live! and Talk Mobile. Based in Montreal, Rene is a former director of product marketing, web developer, and graphic designer. He's authored several books and appeared on numerous television and radio segments to discuss Apple and the technology industry. When not working, he likes to cook, grapple, and spend time with his friends and family.

13 Comments
  • This isn't even a 'wish' list anymore. Apple simply needs to improve inter-app communication in iOS 8 or risk becoming irrelevant in the face of Android. It's ridiculous how many times a link from one app opens in Safari when it could have easily opened in its relevant app which is installed.
  • Amen, brother. Moving a 2GB .mkv file from a "downloader" app to a "movie player" app is slow and nightmarish. This has caused apps that were meant to be good and simple to be more independent and multifunctioning. The only problem is that half the time it ends up being bloated, half-assed, and overlapping functionality when you have to keep a bunch of these kinds of apps on the device. Everything looks like a jack-of-all-trades but master-of-none app. This goes and extends to the loads of scanner and PDF apps, many still left in the iOS 6 world, some can annotate, some can OCR, some can reshape the snapped image, some are ugly, but I need to have all of them.
  • Yeah, it opens in Safari, and then you quickly hit the back button to go back. Then you realize there is no back button. It's amazing how slow the workflow on iOS is, and how some people are still forcing themselves to tolerate it in 2014. I use iOS every now and then only to remain familiar with the platform, not because it's faster at getting things done.
  • Exactly, even if Apple would allow users to set default apps in iOS8, I would be happy.
  • I am asking to rene . In ios 8 download in background I want to know from rene ????????? Sent from the iMore App
  • I only want to see apps play together better if the OS remains as secure as it is today. Compromising security so that iOS functions like a less secure operating system doesn't seem like a path that Apple would or should take.
  • When I read comments like your, my first question is, when has there been a huge Android exploit that has endangered the information of mass American Android users or Windows Phone users. "Safety" is an overused, no longer relevant phrase used by Apple users like, "It just works" used to be. Notice no one says that phrase anymore as iOS has become such a disaster for work low. Sent from the iMore App
  • Can't believe this doesn't even exist for ios yet. I don't know how one can accept not being able to select default or easily share. Posted via the Android iMore App!
  • Proper inter-app and widgets implemented as pinch to expand (that's a stupid name, pry to expand makes more sense) and I'd give the iPhone another look. As it is now, the things I want to do are needlessly cumbersome on iOS.
  • "These are problems that need solving" The question is...for whom? For you and me, definitely. For Apple, probably not. For better or for worse, the one thing Apple places above all else is control, and everything listed here either directly weakens Apple's control or provides developers and users a way to route around Apple's control. I badly want many of the things Rene lists, but, no matter what percentage of users clamors for them, I can't see Apple doing any unless Apple projects significant sales losses from not doing them. Sent from the iMore App
  • That's fine, but apple is about to lose it's US market share lead the way things are going. It's been a consistent slide over the last 3 years. Something needs to change for Apple if they want to stay relevant. If they don't, then no change is needed and they can focus on being a strong player in mobile, just no longer the leader. Sent from the iMore App
  • I still don't get why I have to DUPLICATE files to access a file in multiple apps. Couldn't they do a "RepoMan" app? Basically, a gatekeeper. As in, I must initiate and authorize. If you want to import/export a file in an app, you tap a button in the app, popup "FileBook" / "RepoMan" (Similar to the Open-In interface) on top of the app to select the file you want to interact with, now only that file(s) is allowed in/out of the repo. Don't ever allow any app full access to the repo. Only THAT file at THAT interchange. Further, Once that gatekeeper is there, streamline the Inter-App aspect. After I choose to save/share a file, next choose which app to send to- RepoMan or AdobeReader, etc. Once again only giving access to that file. Then if I want to open a file from app A in app B, RepoMan has an index of those files that live within app A, rather than apps saving their files straight into the repo on their own. This way we don't pile up files when we delete an app. (You could export to another app or the repo prior to deletion of the app). In fact I wish (hope) it worked this way across the board. I HATE when an app asks for permission to access my contacts. I always deny 3rd party apps.
    How do I know they don't download the whole list and send it to their server and sell emails / phone numbers? --- I could wrong on this, I can't find a reference of how this works.
  • Better inter app communication that would enable a more straight forward information sharing between applications and also a better app switching and back option instead of having to double click the home button would surely make it a smoother workflow experience.
    Very often, clicking on a link takes you to another app but many times you would like to go back easily to where you clicked, on the iPad I can swipe back, why not something similar on the iPhone?