LoginSignup
6
5

More than 5 years have passed since last update.

Inter Process Communication for iOS

Last updated at Posted at 2015-12-20

この記事は iOS Jailbreaking Advent Calendar 2015 の12日目の記事です。

Inter Process Communicationについて

Inter Process Communicationつまり、プロセス間通信とは、通常プロセス同士が会話をするためのものです。プロセスは、メモリが独立した空間が割り当てられていて、プログラムの全体的なセキュリティと安定性に加え、悪意に他プロセスの変数や状態変更をさせないためのものであり、プログラム間の直接な通信を遮断してくれます。
IPCは、別のプロセスがこのような通信フラグやデータを塊として情報を送受信を可能とします。

参考 iPhone Dev Wiki

libobjcipc

Alan Yipさんが作成した簡単に IPC を実現出来るフレームワーク(libobjcipc)があります。
GitHubのdescriptionにも書いてあるとおり、jailbreak iOSにて、SpringBoardとアプリのIPCを実現するものです。
ProWidgetsでも使用され、ProWidgetsのExtensionを作るときにも有効に利用されました。
私もProWidgets経由でIRKitのシグナルを送信するExtension(IRKit for ProWidgets)を作った際にも利用しました。
ブロックで情報の受け渡しができ、実に簡単に実装することが出来ます。

RocketBootstrap

ActivatorなどiOS Jailbreakをしたあと必須アプリとなるものを作り続けるRyan Petrichさんが作成した、アプリサイドからSpringBoardへのコミュニケーションを実現するフレームワーク(RocketBootstrap)です。

CPDistributedMessagingCenterを利用し、
rocketbootstrap_distributedmessagingcenter_apply(c);
を追加するだけで、アプリにNotificaitonを送信することが実現できます。

WebSocket

WebSocket経由でコミュニケーションを取る方法もあります。Qusicさんが作成した、CouriaのExtensionでも見受けれるように、(Whats App For Couria) WebSocket経由でもObjectの送信ができます。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5