PhotoAppLinkに対応してみた!その1(画像送信)

最近画像編集アプリが多くなってきています。 自分もひとつ画像編集アプリをこの前リリースしました。 その膨大な画像編集アプリを連携させようという企画があります。 アプリAで写真を取り、アプリBでフィルタを掛け、アプリCで画像を切り抜く流れが簡単にできる!というものです。 詳細はこちらで。 今回このPhotoAppLinkに対応してみたので、そのメモを残しておきます。 ほぼ100%企画元に書いてあるのですが、いかんせん英語なもので 開発よりも解読に時間がかかってしまう英語力のない自分としては日本語にして保存しておきたかったりするのです。 日本語なら簡単に読めるし、他の開発者の人もこの記事を見て対応を考えてくれればいいなと思います。

大まかな連携のイメージ

  • アプリ連携のボタンを押すとインストールされてる連携可能アプリ一覧が出る
  • そこからアプリを選択したらそのアプリで現在の画像を引き継いで編集ができる
  • 連携可能アプリのインストールされていないもの一覧を表示&AppStoreに飛ぶということができる
  • アプリ間の画像ファイルの受け渡しはURLスキームを使って行われる
  • 送るだけ/受け取るだけのアプリも可

イメージをより掴むためにもpocketpixels/PhotoAppLink - GitHubからソースをDLし、TestAppを実行して見ることをお勧めします。

PhotoAppLinkを使うための設定

画像をおくる/受け取るのどちらを使うときもこれを行う必要があります。

  1. pocketpixels/PhotoAppLink - GitHubからソースをDLし、PhotoAppLinkフォルダごとプロジェクトに追加する
  2. UIApplicationDelegateで
1
#import "PALManager.h"

を追加し、applicationDidBecomeActive:内でupdateSupportedAppsInBackgroundを行う。

1
- (void)applicationDidBecomeActive:(UIApplication *)application { ...//他の処理 [[PALManager sharedPALManager] updateSupportedAppsInBackground]; }

画像を送るための設定

こちらはすごい簡単です。

  1. PALSendToControllerを初期化する
  2. 画像をセットする
  3. navigationなりmodalViewなりで表示する

例)

1
PALSendToController \*sendToVC = [[[PALSendToController alloc] init] autorelease]; sendToVC.image = [self currentFullResolutionImage]; UINavigationController\* nav = [[[UINavigationController alloc] initWithRootViewController:sendToVC] autorelease]; [self presentModalViewController:nav animated:YES];

この方法以外にもActionSheetで表示する方法等もありますが、一番わかりやすい方法ということでViewControllerの方法のみ載せておきます。
画像受け取りの方は明日記事アップします!