With the release of iOS 8 the app ecosystem is becoming more connected than ever before. Until now, the only mechanism for inter-app communication was by using custom URL schemes. Other apps and websites that know about the custom URL scheme for your app are able to deep-link into specific screens within your app. In iOS 8 this technique is still a viable way to actively control user linking into your application. The level of effort for deep linking depends on the complexity of the problem but in general is a fairly straight-forward development effort per integration point.
In iOS 8 and Mac OSX Yosemite, Apple has introduced a user-empowering feature, called Handoff, that allows people to continue/transfer an activity between devices provided the devices have Bluetooth LE support and are using the same iCloud account. For example, you could start writing an e-mail on your iPhone and finish the e-mail on your desktop Mac. If you code to support this new feature you can support the following scenarios: iOS device to iOS device (for example iPhone to iPad), from iOS to native mac app, from webpage in safari on your mac to your native iOS app (though this requires some extra set up), iOS device to webpage on either platform as a fallback if a supported app is not installed on that device. In order to keep the hand off as natural as possible many hand off points should be added to the app to avoid synchronizing outdated data between devices.
In addition to the above features, Apple has added additional ways that blur the lines between apps through a new feature called extensions. Extensions allow you to surface app content through different supported extension types such as: widgets that show up in the today view of notification center, sharing widgets, and custom keyboards (to name a few). Extensions will allow you to start surfacing your content outside of your application and opt in to using existing app data such as the database layer and secure keychain while maintaining the secure sandbox environment and protecting your application data. Extensions will likely continue to be the way Apple allows you to extend your application beyond your existing app experience as they add more ways to interact with users outside of your app in future versions of iOS as well. The level of effort around supporting extensions is larger than the other 2 methods since you will want want to create a framework for your app to share common code between your app and extensions. Currently all extensions are only allowed to be used directly by apple so it doesn’t allow direct app-to-app communication.
David Palmer Tanner Oakes Kyle McGregor