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越しにデモするときなんかでも重宝するかもです。

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