Spuren von XPC in iOS 6: Interprozess Kommunikation auf dem iPhone – Ein Beispiel
Eine halbe Stunde freie Zeit, gute Englischkenntnisse und Spass am Programmieren vorausgesetzt, empfehlen wir die Lektüre des Artikels „Remote View Controllers in iOS 6“ von Ole Begemann. iOS-Entwickler und verantwortlich für die App „Pictue Effects“ . Begemann hat einen Blick unter die Haube des aktuellen iPhone-Betriebssystems geworfen und dabei eine bislang nicht dokumentierte Änderung der Mail-Darstellung gefunden, die den Beginn weitreichenden Änderungen in Apples mobilem Betriebssystem anzudeuten scheint. So blendet iOS 6 in all jenen Anwendungen, die ihre Inhalte per eMail teilen können, nicht mehr nur einen „View“ ein, der das Verfassen neuer Mails ermöglicht, sondern startet im Hintergrund eine eigene Applikation – die MailCompositionService.app – die sich um die zu erstellende eMail kümmert, das Verfassen und Versenden übernimmt, und anschließend wieder deaktiviert wird.
Was auf den ersten Blick wenig spannend klingt, darf als sachtes Herantasten Apples, an eine noch immer schmerzlich vermisste Lösung zur Interprozess-Kommunikation gewertet werden. Ähnliche Konzepte werden von OS X seit Lion aktiv genutzt (Stichwort: XPC) und sorgen dafür, dass Sandbox-Applikationen, die in den Ordnern anderer Apps nichts verloren haben, sich mit kleinen Hilfs-Prozessen gegenseitig unter die Arme greifen können.
Ein Beispiel: Setzt Apple die Interprozess-Kommunikation auf dem iPhone unter iOS 7 um, könnten ausgewählte Anwendungen eigene Hilfsprozesse mitbringen, die von der momentan aktiven App nachzuladen sind.
Stellen wir uns die Twitter-Anwendung unter iOS 7 vor. Ihr habt ein Bild, das in eurem Twitter-Stream erscheinen soll, wollt den Schnappschuss vor seiner Veröffentlichung aber noch mit Camera+ nachbearbeiten. Unter iOS 6 müsst ihr Twitter verlassen, die Camera+ Applikation öffnen, das Bild bearbeiten, speichern und wieder zurück in die Twitter-App hüpfen, ehe ihr das Foto der Welt präsentieren könnt.
Die XPC-These, vorausgesetzt Apple setzt Begemanns Annahmen um, simplifiziert den gleichen Arbeitsablauf unter iOS 7 erheblich. Mit dem nächsten iPhone Betriebssystem könnte Camera+ einen Hilf-Prozess im App-Bundle mitbringen, nennen wir diesen „CameraPlusEdit.app“, der von Twitter gestartet werden kann, sobald ihr ein Bild bearbeiten wollt. So wie sich jetzt die Formulare zum Erstellen neuer Mails über der aktiven App ausrollen, könnte Camera+ bald seinen Foto-Editor einblenden, euch das Bild bearbeiten lassen und das Ergebnis (ohne App-Wechsel) an Twitter übergeben.
Der Hilfs-Prozess „CameraPlusEdit.app“ würde sich während der Erst-Installation von Camera+ einmalig beim Betriebssystem registrieren und könnte anschließend von alle Anwendungen in denen Fotos eine Rolle spielen, gestartet und integriert werden.
How could this work? Apple could ask developers who want to provide a sharing UI to other apps to include a second executable in their app bundle. This executable would be an XPC service that looks a lot like the MailCompositionService.app we analyzed above. Its main component would be a stand-alone view controller that was able to communicate via XPC and implemented some standard Apple-defined protocols named something like UISharingRemoteHost and UISharingRemoteService. Apple’s existing UIActivityViewController would then maintain a list of registered sharing services and present these options to the user.
Ein Feature das überfällig ist. Danke Tim.