iOS開発用の簡単ソーシャル連携ライブラリ「ShareKit」

先日リリースしたアプリ[欠席カメラ]ではソーシャル連携の部分のプログラミングに「ShareKit」ライブラリを使用しました。

ShareKitとは

iOSアプリからTwitterやFacebookやその他SNSへ記事を投稿するプログラムを書こうと思ったら、各Webサービスは各々の仕様でAPIを発行していて、かつiOS内でもバージョンによって呼び出し方が違ったり、さらに各サービス内でも仕様がちょこちょこ変わってしまったりと、自分では把握して処理しきれない部分が多いのですが、ShareKitというライブラリを使用すれば上記の困った事はだいたい吸収してくれるので、アプリの制作に集中できます。

使い方

今回初めてShareKitを使用してみたのですが、既に色々なブログで既に使い方を丁寧に記載いただいていたので英語の不自由な自分にも非常に簡単にインストールする事ができました。

Xcode4でShareKitを使う Twitter や Facebook への投稿ライブラリ ShareKit の Tips - Over&Out その後

ダウンロード

上記のブログにも記載されていますが、まずダウンロードしようと思って検索をかけて最初に検索にひっかかるhttp://getsharekit.com/は古いです。 最新のものはGitHubのリポジトリから落としてきます。

https://github.com/ShareKit/ShareKit

で、僕も無事インストールはできたのですが、その後に作業を進める中で設定の部分などでいくつか躓いた事があったのでメモ。

各種設定方法

各種設定には前述のブログでも詳細に説明がありますが、DefaultSHKConfiguratorを継承した自分用の設定ファイルを作成して、そこに上書きする形式で設定を記載していきます。僕はShareKitConfiguratorというクラスを作成しました。

いらないWebサービスを表示しない

上記記事内ではクラス自体を削除してサービスを非表示にしていましたが、 新しいバージョンでは SHKSharers.plist を修正するだけで大丈夫なようになっています。 必要なものだけ残してあとは全て削除します。

ボタンの並びを変更する

デフォルトの状態だと、最後に使ったWebサービスが一番上に表示されるようになっているのですが、固定にする事も可能です。

0を設定するとアルファベット順に表示されます。 1を設定すると下記のようにdefaultFavoriteImageSharersで設定した順にボタンが表示されるようになります。

表示するボタンの数の上限を制限する

maxFavCountを指定すれば表示させたいボタンの数を制限する事が可能です。

キャッシュをクリアする

欠席カメラではv1.0でリリースした後に後日Instagram機能を追加(申請中なので未リリース)したのですが、アプリをアップデートしても並び順や項目数が変更されない場合がありました。 アップデート版をリリースしてもダウンロードしてくれた方のデバイスで動かなかったら大変なので焦ったのですが、 原因はNSUserDefaultsのキャッシュにありました。

みたいな感じで全てnilを入れるようにしたら設定通りのものが表示されるようになりました。 NSUserDefaultsの中を6回参照しているのはShareKitに内蔵されている機能、テキストや画像の共有用に6種類の別々の設定が保存されているからで、僕の場合はSHKShareTypeImageだけをクリアすればよかったので

だけの記載でも大丈夫でした。

ボタンの並びを自分で変更して固定したい時なども、 シェアする度にNSUserDefaultsに最後に押したボタンが保存され、 次回一番上に表示されるように指定されるので、 毎回SHKActionSheetを呼び出す前にリセットすると良さそうです。 (もっと良い方法がありそうですが、ライブラリに手を加えるとアップデートしたときに面倒そうなのでこういう方法をとりました。)

[宣伝]欠席カメラ

ShareKitを使って制作した写真アプリ「欠席カメラ」は現在発売記念セールをしていて今週一杯無料でダウンロードいただけます。 今後スタンプの追加やInstagramへの投稿機能の追加などアップデートを予定しておりまして、ますます使いやすくなっていきます。 今のうちにダウンロードしておいて宴の席や、一人でご飯食べている時など、様々なシーンでご活用いただけたら嬉しいです。

欠席カメラ | イベントに参加できなかった、あの切ない想い出の写真を簡単に作れるアプリ