Dev:IPC

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:


 * CPDistributedMessagingCenter
 * LightMessaging
 * Unix sockets
 * XPC
 * Notifications
 * libobjcipc

XPC
XPC is used for remote views. One such application is third party keyboards on iOS 8.