2012-09-29 iOS6で大きく変わったアプリ間データ共有 iOS iOS6 先日、﹁iOS6でAndroidのインテントっぽいものができたって聞いたんですけど、ほんとですか?﹂と聞かれました。 うーん、聞きたいことはわかるんだけど、ちょっと違うんですよね。 ……というわけで、Xcodeでの設定方法もだいぶ前と変わったし、iOSの現時点でのアプリ間ファイル共有についてまとめてみました。 iOS6で大きく変化したところは…… まず、iOS6で大きく変わったのは次の二つです。 UIDocumentInteractionControllerを使った共有が、機能も見た目も大幅に進化したこと UIActivityViewControllerを使った共有ができるようになったこと それぞれ変更内容がいろいろあるので、三つにわけて書いてみました。 ●その1‥OpenURLを使ったデータ共有 ●その2‥UIDocumentInteractionControllerを使ったデータ共有 ●その3‥UIActivityViewControllerを使ったデータ共有 どちらかというと、Androidでいう﹁インテントっぽいもの﹂に一番機能が近いのはUIDocumentInteractionControllerでしょうね。 それぞれの利点、欠点 UIActivityViewControllerは機能拡張ができていろいろと使えそうですけど、iOS6でしか使えないのがちょっと難点。 ファイルタイプ︵またはUTI︶をベースにするのであれば、引き続きUIDocumentInteractionControllerを使った方がよさそうです。 サンプルソース 上の3つの機能を実装したサンプルソースをGithubにおきました。 ︵OpenURL、UIDocumentInteractionController、UIActivityViewControllerを使ったファイル連携が実装されています。︶ SendDataDemo︵情報を送る側︶ ReceiveDataDemo︵情報を受け取る側︶