ことの発端は、昨日ちょっと業界をにぎわせたこのアプリ。
- Reflection.app – AirPlay Mirroring to your Mac
- iOS系ブロガー、開発者のプレゼン革命!Reflectionで夢のiOSスクリーンキャスト録画配信 | ひとりぶろぐ
まあ、AirPlay MirroringでiPhone/iPadの画面をMacに映せますよ、と。で、それをスクリーンキャプチャで動画とったら、そのまま実機デモ動画になりますよ。という話。これはすごく便利!実機でしか出来ないことってたくさんあるから、やっぱりデモ動画は実機が一番いいんですが、カメラ設置して、、、というのが面倒だったり、うまく映らなかったりするんですが、これならばっちりですからね。
ただ、一つだけ難点があって、
ということ。Mirroringしているとスクリーン上ではデバイスのどこをタッチしているのかわからないんでね。そしたら某所から「言う前に作っちまえぇ~」とおしかり(笑)をうけたので、まあそれっぽいものを作ってみました。
もちろん、JBなしではアプリ側に細工をするしかないので、開発者用というかそんな感じ。
githubからソース持ってきて、プロジェクトに追加して、こんなふうに初期化すればOKなはず。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // これだけ KTouchPointerWindowInstall(); ... }
いわゆるMethod Swizzling使ってUIWindowのメソッドを横取りしているので、標準UIであるキーボードとかアラートダイアログ上にもポインタがでます。こんな感じで。
で、これを使って、動画撮影するとこうなります。
最後のほうでは意味もなくマルチタッチしてますが、まあそういうこともできますよってことで。あ、ちなみに、動画に写っているのはお馴染PictShareですが、現在申請中のv3.1が動いてますんで、これはこれでお楽しみに。
もちろん、このコード自体は別にReflection云々とはまったく関係ないので、AppleTV越しにデモするときなんかでも重宝するかもです。
コード上おかしなところがあったら御指摘くださいな。