1Passwordを通知センターから起動するためだけのアプリを作ってみた

最近、というわけでもなくiOS5になってから、通知センターを使ったランチャー系のアプリが結構たくさんでているように思います。一時期はそういう使い方をしているとリジェクトされていたようにも思うんですが、最近はどうなんでしょうね。

それはさておき、僕自身はそこまでランチャーにこだわることはないのですが、ただ1つだけ、どこからでも簡単に起動できて欲しいアプリがあります。

それが 1Password です。

1Password Pro 3.6.5(¥1,300)
カテゴリ: ユーティリティ, 仕事効率化
販売元: AgileBits Inc. – AgileBits Inc.(サイズ: 9.5 MB)
全てのバージョンの評価: (1,710件の評価)
+ iPhone/iPadの両方に対応

パスワード管理についてはいろんな考え方があると思いますが、自分の中では、「サービスごと」に「覚えられないような難しいパスワードを設定する」のが今の方針です。そんなわけでこのアプリは絶対必須。

なんですが、いろんなアプリを立ち上げている中で、パスワード入力のたびにホームに戻って1Passwordを探して起動するのは結構面倒。かといって、Dockに入れるほどのものでもないし・・・

というわけで、通知センターの登場です。

いつものように、最初は既存のアプリで、って思ったんですよ。でもね、どのアプリが使いやすいのかとか、設定方法はどうするのか、とか考えるだけで面倒くさい。専用のアプリならあっという間に作れるはず。

ってことで、作ってみました。工数多分20分くらい。

ついでにgithubにも置いてみました。

itok/1PassLauncher

通知センターはこんな感じになります。アプリを起動するたびに通知を設定し直すようにしています。(本当は、誤って履歴を消してしまった時のために、定期的に通知したほうがよいのかもしれませんけれど、そこはご自由に)

通知設定をこうしておけば、なにごともなかったかのように通知センターにだけ項目が存在している形になります。(アプリ名は 1Password. としてます。アイコンも一緒だし、わかりにくいw)

これでどのアプリにいても、すぐに1Passwordが呼び出せるようになって満足満足。

Paylogで使用しているオープンソース13+αを紹介

便利なライブラリ群を公開してくれている開発者のみなさん。本当にありがとうございます。いつもお世話になってます。

Paylogリリース時にも書いておりましたが、このアプリでは多くのオープンソースライブラリを使わせてもらっています。んで、こんな便利なものが世の中にはたくさんあるんで、開発者のみなさんも是非楽になりましょうよ、という話です。

はじめに

オープンソースは、以前なら sourceforge とか google code で探していましたが、最近はもっぱら github ですよね。で、さらにこのサイトをいつも参考にさせてもらってます。ありがとうございます。

そうそう、大事なことですが、以下に挙げたライブラリに関することはもちろん全て自己責任でお願いしますです。

では、Paylogアプリ内の「ライセンス」にならんでいる順に行きましょう。

ActionSheetPicker

UIPickerViewをActionSheetのように表示します。というかコードを見るとまんまActionSheetの上にpickerを貼り付けているわけですが。

クラス構造も結構しっかりしているので、サブクラスによる拡張が容易になってます。

BlocksKit

いろんなクラスにblockで書けるメソッドを追加しまくったライブラリ。ものすごく便利で使いだすとコレ無しでコードが書けなくなるくらい、なんですが、ちょっと癖が強い(というか、裏で勝手な動きをしている気配が強い)ので脱BlocksKit計画中。

Color-Picker-for-iOS

シンプルなカラーピッカー。使い方も簡単。リソース不要なのもいい感じです。

CMPopTipView

ヘルプなんかをポップアップバルーンに表示。

表示位置に関しては若干融通が利かない印象ですが、それほど大した問題じゃないです。

FTFoundation / FTUIKit

会社のほうで作って公開しているライブラリ。

細かいパーツがたくさんです。例えば switch 付の table cell とか、text field 付の table cell とかそういうのもあります。

iOSPlot

グラフ描画ライブラリ。円グラフも折れ線グラフもこれで描画してます。

いろいろカスタマイズしましたけどね。

KKPasscodeLock

先日のv1.1で搭載されたパスコードロック。設定画面付という至れり尽くせりです。

これがなかったらこんなに早く実現はできなかったでしょうね。

PBTweenAnimation

アニメーションまわり。金額を入力して保存した時のアニメーションなんかはこれを使ってます。

Si-Calendar

カレンダー表示。カレンダー系のライブラリはたくさんあるんですが、シンプルで純粋に日付を選択するのにはこれがちょうどよかったです。

SVProgressHUD

プログレスインジケータ。簡単な文字列も挿入できるし、キーボードなどとの位置関係もちゃんと調整してくれるので便利です。

AAMFeedback

フィードバック投稿フォーム。これのおかげでユーザさんからの要望やバグ報告のメールがどんどん来るようになりました。特にバグ報告はすぐに伝えてもらえるのでいいですね。

GradientButton

キーボードのグラデーション付ボタンの元はコレ。テーマ色が簡単に変えられるのもボタンをリソース無しで直に描画できているから。

いろいろ自分なりに調整しましたけれど、かなりそのまま参考にしてます。

番外:KTouchPointerWindow

最後は手前味噌でw 直接使っているわけではないですが、デモ動画を例の Reflection で撮影する時にタッチ位置に赤丸を表示するのに使っています。

あとがき

同じライブラリを使ったからといって同じアプリになるわけではありません。そこはもちろん開発者の腕の見せ所。

でももし単なる車輪の再発明であれば、既存のものを使ったほうがはるかに楽ですからね。

おかしなところがあったら pull request してみるのもいいかもしれない。単に fork するだけでもいいかもしれない。(どっちもしたことないけれど)

自分が作った自分ライブラリを公開してみるのもいいかも。

そんなこんなで、参考になれば幸いです。

iPhone/iPadの画面にタッチ位置を表示するためのソースコード KTouchPointerWindow を公開しました

ことの発端は、昨日ちょっと業界をにぎわせたこのアプリ。

まあ、AirPlay MirroringでiPhone/iPadの画面をMacに映せますよ、と。で、それをスクリーンキャプチャで動画とったら、そのまま実機デモ動画になりますよ。という話。これはすごく便利!実機でしか出来ないことってたくさんあるから、やっぱりデモ動画は実機が一番いいんですが、カメラ設置して、、、というのが面倒だったり、うまく映らなかったりするんですが、これならばっちりですからね。

ただ、一つだけ難点があって、


AirPlay mirroringはタッチした位置がわかる設定とかあるといいんだけどなあ(もしかしてある?)
Mar 02 via YoruFukurou Favorite Retweet Reply

ということ。Mirroringしているとスクリーン上ではデバイスのどこをタッチしているのかわからないんでね。そしたら某所から「言う前に作っちまえぇ~」とおしかり(笑)をうけたので、まあそれっぽいものを作ってみました。

もちろん、JBなしではアプリ側に細工をするしかないので、開発者用というかそんな感じ。

githubからソース持ってきて、プロジェクトに追加して、こんなふうに初期化すればOKなはず。

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // これだけ
    KTouchPointerWindowInstall();
     ...
}

いわゆるMethod Swizzling使ってUIWindowのメソッドを横取りしているので、標準UIであるキーボードとかアラートダイアログ上にもポインタがでます。こんな感じで。

で、これを使って、動画撮影するとこうなります。

最後のほうでは意味もなくマルチタッチしてますが、まあそういうこともできますよってことで。あ、ちなみに、動画に写っているのはお馴染PictShareですが、現在申請中のv3.1が動いてますんで、これはこれでお楽しみに。

もちろん、このコード自体は別にReflection云々とはまったく関係ないので、AppleTV越しにデモするときなんかでも重宝するかもです。

コード上おかしなところがあったら御指摘くださいな。