Inter Process Communication (IPC) is a method that allows processes to send each other messages and data. It is a form of communication available on multiple multitasking platforms and implemented on various languages. This page focuses on C family based IPC for iOS programs. Wikipedia entry.
Processes are assigned independent spaces of memory. This prevents the modification of other processes' variables and states, adding to the overall security and stability of a program. This also disables direct communication between programs. To address this, IPC allows different processes to communicate between each other to send and receive information such as notification flags or chunks of data.
Depending on the kind of information to be sent, different methods will be more appropriate for each situation. Notifying that a process has finished a task would require just a flag to be raised but sending an image would require each byte that composes the image to be sent.
These are some of the existing methods to implement IPC on iOS:
XPC is used for remote views and one such application is third party keyboards on iOS 8.
- NSHipster IPC article
- RocketBootstrap is a workaround to an issue on iOS 7 and newer, described here.
- Tweaks on a multi-process iOS by Ryan Petrich, for JailbreakCon 2016.