2012/09/29

カスタムUIActivityのアイコン画像

iOS6でUIActivityViewControllerが追加されました。


これまでテキストや画像などなどに対するAction(iOS6でのUIActivity)をユーザに提示する簡単な方法としてUIActionSheetを使う方法がありましたが、それに変わる手段としてUIActivityViewControllerが追加されました。

アプリケーションでカスタムUIActivityを追加する方法も提供されており、
すでにCocoa ControlsでInstagramへshareするDMActivityInstagram for iOSが登録されているようです。(動作確認はしてないですが、カスタムActionが気になる人はコードを読んでみましょう)

ここでカスタムActionのアイコン画像について少し調べたのでメモ。

MailやTwitter、Facebookのアイコンのようにカラフルな透過領域のないアイコン画像を用意しても、白いグラデーションのかかったアイコンになってしまいます。


透過領域のないアイコンを使うと、塗りつぶされた感じに。

UIActivity Class Referenceにある activityImageメソッドの説明をよく読んでみると、いろいろと書かれてまして、試してみた結果としては以下が判りました。

iOS6で用意されているCopyするActionのアイコン
  • アイコン画像の透過領域はマスクされて金網っぽい画像が表示される。
    (上のcopyアイコンでいうと、外枠と内側のファイルっぽいアイコンの間の領域)
  • アイコン画像の色は無視されて単一色のグラデーションがかかった感じになる。
    (上のcopyアイコンでいうと、ファイルっぽいアイコンの色)
補足:アイコン画像はiphone用に43x43(86x86 for Retina Display)、ipad用に55x55(110x110 for Retina Display)がそれぞれ必要みたいです。

つまり、用意する画像ファイルは、「背景透過にしてアイコンを書いた画像」を用意するとcopyアイコンのようないい感じになるようです。(アイコンは何色で書いても、グラデーションのかかった単一色になるようです)

背景透過にアイコンを書いた画像だといい感じに。

とりあえず、今判った範囲ではMailやTwitter, Facebookと同じようなカラフルなアイコンは追加できない様子でした。

残念。

2012/09/27

DashにiOS6のdocsetを追加する方法

DashというアプリにiOS6のdocsetを追加する方法

Dashについての説明は他の場所に譲るとして、
ここでは自分の環境で起きてたiOS6のdocsetがDashに追加できなかった件の対処方法をメモします。

0. 最初の状態

Xcode(4.5)をインストールした後でもPreferenceからみるとiOS6のドキュメントはインストールされた状態と表示されていました。

  このときのiOS6のdocsetは以下のようなパスにあると表示されてました。
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Documentation/DocSets/com.apple.adc.documentation.AppleiOS6.0.iOSLibrary.docset
パスをみると判るように、Xcode.appのサンドボックス内にあるファイルになってます。
そのため、DashのPreferences->Docsetから"+"ボタンで表示されるfinderから選択できずに困っていました。

開発者さんに聞いたところ「finderでひらいてdocsetをダブルクリックすればいいよ」とのこと。

いろいろ試してfinderで開いてdocsetをダブルクリックしたり、itermからopenコマンドで開いてみたりしてみたのですが、「おかしなdocsetみたいだからダウンロードし直して試してみて」とDashからエラーダイアログが表示される状態でした。


1. 対処方法

XcodeのPreferenceの"Check for and install updates automatically"にチェックを入れると、iOS6のdocumentがアップデートされました。



アップデートが終わった後のiOS6のdocsetは以下の場所にパスが変わっていました。
/Users/<AccountName>/Library/Developer/Shared/Documentation/DocSets/com.apple.adc.documentation.AppleiOS6.0.iOSLibrary.docset
その後でDashのPreferenceを開いてDocsetsタブの右下にあるリロードっぽいボタンを押します。



これでめでたく"iOS 6.0 Documentation Set"が追加されました。

2012/09/21

OAuth2.0の行き着く先


今更感たっぷりなのだけど、OAuth2.0って1.0から何が変わったのか調べていたらこんな記事に行き着いた。

OAuth 2.0 and the Road to Hell (2012/07/26の記事)

OAuth2.0について少し調べた程度しか予備知識が無いので深い事はわからないのだけれど、上記記事の筆者(Eran Hammerさん)がOAuth2.0が曖昧でひどいものになってしまい手がつけられなくなってしまったため、諦めて手を引くとかいう話の様子。

「OAuth1.0でうまくやってるのならOAuth2.0にアップグレードすることに価値はないし、OAuth2.0を使うのなら信頼できるところのソースをつかってきちんと理解して使わないといけないよ。」とか。

(他に何があるのかは知らないけど) Web2.0と同じように、2.0がつくものはあまり良くない結果になるという事なんだろうか。

ちょっとがっかりだけど、気を取り直してOAuth 2.0の中身について勉強しないと。

[追記] 上記記事の続きがあったので追記

On Leaving OAuth

こちらも併せて読んでみるとおもしろそう。