Playgroundこの広告は、90日以上更新していないブログに表示しています。iOS4AppStore経由でリリースされているアプリは、Appleによって定められたガイドラインを守ることが義務付けられていることは、みなさん周知の事実です。マルチタスキング環境となったといっても、「バックグラウンドに常駐させて好きなように振舞う」ということは許されていません。開発者の方であれば、知っていることですが、バックグラウンド処理は、以下のような目的に限定して許可されています。Monitorのようなアプリが、常駐プロセスとして動作し、メモリ使用状況を定期的に記録するなんてことはできません。そもそも通信機能が制限されているので、アプリ間で通信してリアルタイムに連携することもできません。以上、「できないこと」ばかりを挙げて、ネガティブな感じになってしまいましたが、マルチタスキング機能とは別な形で、アプリ同士が連携するためのしくみは、いくつか用意されています。それらも一定の制限はありますが、うまく活用すれば、いずれもアプリの使い勝手を向上することができます。ここでは、その中の代表的なものを3つ紹介します。いずれも、多くの開発者の方はご存知ですし、ユーザのみなさんも、見たことがある機能だと思いますが、自分用のメモを兼ねて、概要を整理してみました。URLによるアプリの起動これは、初期の頃からサポートされている機能なので、開発者のほぼ全員がご存知だと思います。ユーザであれば、アプリを使っているときに、「メールを送信する」という操作をしたときに、標準のメールアプリが起動されるという動作を経験したことがある方は多いと思います。そのときに内部で使用されているのが、この機能です。標準でサポートされているURLは、以下のドキュメントにて説明されています。Reference一般のアプリも独自のURLスキームを定義して登録することで、他のアプリから起動されるということができるようになります。用途がないので公開していなかったのですが、例えば、私がリリースしているアプリでは、以下のURLスキームを密かに登録しています。sysstatsmon:これらのアプリを購入していただいている方は、上記のURLをiOSのSafariのアドレスバーに入力して、「Go」をタップすると、それぞれアプリを起動することができます。上記のアプリはサポートしていませんが、一般のURLと同様に、パラメタを渡すこともできますので、それを意識した実装をすれば、設定されたパラメタによって振る舞いを変えるといったこともできます。技術的なことは、以下の記事がわかりやすく説明されているので、参考になるかと思います。強火で進めPasteboardによるデータ共有iOS3.0より、コピー/ペースト機能がサポートされていますが、それを実現しているのがPasteboard(UIPasteboardクラス)です。MacOSXとiOSの中では、Pasteboardという呼称が使われていますが、一般的な「クリップボード」と同義です。Pasteboardの最も多い使われ方は、テキストフィールド内でのコピペだと思いますが、実際には、画像やドキュメントなどのバイナリデータも格納することができます。どのアプリからも、参照/登録を行うことができるので、アプリ間で簡単にデータを共有することが可能となります。pasteboardがあります。pasteboard標準的な、コピー/ペースト操作で使用されるpasteboardですが、アプリからも任意のデータを格納することができます。pasteboardアプリが任意の名称をつけて管理することができるpasteboardです。名称を知っているアプリだけがアクセスすることができます。Pasteboardの大きな特徴として、データの格納は常に上書きであるということが挙げられます。pasteboardを使うのが安全でしょう。URL起動では渡せないデータがあるときに、Pasteboardは有効な手段になると思います。UIDocumentInteractionControllerによるファイルの受渡し上記2機能は、MacOSXでサポートされているものを、iOSに適用したものですが、UIDocumentInteractionControllerは、iOS独自のものだと思われます。iOS3.2より追加された機能ですが、これも、すでに多くの方は見たことがあろうものです。代表的な例は、標準のメールアプリとiBookの連携だと思うので、まずはそのときの操作の流れを解説します。PDFが添付されているメールを受信し、添付ファイルを開くと、以下のようにドキュメントを参照することができます。ここで、右上の「次の方法で開く...」をタップすると、PDFを開くためのアプリの一覧が表示されます。その中から、iBookを選択することで、iBookが起動され、そのPDFファイルが表示されます。このようなことができるようにするためには、各アプリは以下のようなことをする必要があります。ファイル受取側のアプリ「自分はPDFファイルを開けるよ」ということを、宣言する。ファイルを渡す側のアプリUIDocumentInteractionControllerクラスを使って、ファイルを渡すための処理を実装する。アプリが起動されるところはURL起動と似ていますが、ファイルを渡せるところが大きな進化ですね。ファイルだけでなく、オプションでパラメタを渡すこともできるので、さらにありがたいです。概要をまとめてみましたが、いかがでしょうか?1本のアプリに多くの機能を詰め込み過ぎると、複雑化してしまい、使い勝手も保守性も悪くなってしまうことが考えられます。適度な単位でアプリを分割し、連携機能を活用するのも選択肢の一つではないかと思います。企業がiPhone/iPadを導入し、自社向けのアプリを作るような場合、1本のアプリに全機能を入れることはありえないので、このような連携機能は重要かもしれませんね。LiteにUIDocumentInteractionControllerを使った機能追加を考えていますので、またそれが完成したときにもう少し技術的な説明をしてみたいと思います。コーディングレベルでは、以下の記事がシンプルに解説してくれているので、参考になるかと。1.8がリリースされました。Communityリンクはてなブログブログをはじめる週刊はてなブログはてなブログProはてなブログをはじめよう!kimadaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。