12月 | 2011 | HMDT Blog

カテゴリー : 2011年 12月

ACAccountStoreのcompletionHandlerはサブスレッドっぽい


iOS 5から、システム側にTwitterアカウントを登録できるようになった。このアカウントは、Accountフレームワークを使って取得できる。その手順は、ACAccountStoreをインスタンス化して、requestAccessToAccountsWithType:withCompletionHandler:を呼ぶ。取得できると、指定したブロックが呼ばれるので、その中で処理を行う。

コード書いてテストしていたら、このブロックはメインスレッドではなくてサブスレッドで呼ばれるようだ。マジすか。ドキュメントにそんなこと書いてねーじゃん。従って、ここからユーザインタフェース周りを触ると、訳分からない挙動になる。すごい罠だ。

App Store Rewind 2011のHMDT


今年もこの季節がやってきた。ということで、App Store Rewind 2011が発表された。

開発者としては自分の作ったアプリをまず探す。今年はHMDTに関係するものは、5つ入ってた。去年が8つだったから、少し控えめになったかな。

入ったアプリのうち公表しても構わないものは、まずデジタル大辞泉

ランダムハウス英和辞典

そしてMapFan for iPhone東北特別版

大辞泉とMapFanはずーっとアップデートし続けているものなので、こういったものが評価されると嬉しいね。iOSアプリでも、長期に渡って使い続けてもらい、開発も続けることができるんです。

UIGestureRecognizerはけっこう鬼門


iOS 3.2以降、つまりiPad登場以降に付け加えられた、UIGestureRecognzierというクラスがある。iPhoneやiPadのタッチパネルを操作する際の、いろんなジェスチャーを認識してくれるものだ。タップ、ピンチ、回転、スワイプ、パン、長押しなんかを認識してくれる。このクラスの登場前は自前で判断ルーチンを作らなくてはいけなかったので、かなり便利だ。

最近になって、Cocoa標準のクラスでこのジェスチャーをバリバリ使うものが出てきた。これがけっこう鬼門でねぇ。苦しんでる。

たとえば、UIPageViewController。ページ表示を行ってくれる便利クラス。このクラスは、ページめくりっぽい操作を提供するために、タップ、スワイプ、パンに対するUIGestureRecognizerを使っている。このクラスだけを使っているうちは、まぁいいんだけど。

UIGestureRecognzierの便利でありやっかいな点は、ビューの階層構造を無視するところ。UIPageViewContorllerで管理するビューの上に、ボタンを置いたとする。すると、スワイプやパンといったジェスチャーは、ボタンをすり抜けてUIPageViewControllerまで届く。うむ。これは便利だ。しかし、スライダーを置いたときも、同様にすり抜けていく。これにより、スライダーを動かしながらページもめくれてしまう、という事態が発生する。これは困るぜ。

または、ページを表示しているときに、シングルタップでメニューを表示したいとする。ページの左右両端タップではページ移動、それ以外をタップしたときはメニューのトグル、っていう電子書籍アプリによくある操作を実現したい場合ね。この場合、左右両端タップはUIPageViewControllerのジェスチャーが管理する。それ以外のタップは、自前のクラスのジェスチャーで管理する。ということで、2つのジェスチャーの競合を管理しなくてはいけない。めんどくさい。

いまのところきれいな解決策が見当たらないので、ケースバイケースで対応している。これだと、新しいユーザインタフェース追加するたびに、ジェスチャーにすり抜けていかないか、競合しないか、ってことを気にしないといけない。うーん、すっきりしない。

新語大辞泉が辞書カテゴリで1位獲得


先日リリースした「新語大辞泉 壱」が、辞書カテゴリの有料アプリダウンロードランキングで、1位獲得。よしっ。

お、その下にはMapFanも見えるし。

今日の、新語大辞泉より一言。

裏旬

(多く食用魚についていう)世間でいう旬には外れているが、その魚の味がまたよくなる時期。市場への出荷量が多くはないがおいしい時期。春夏の鮎に対する秋の落ち鮎、秋の鮭に対する初夏の時知らずなど。

[MandalArt-Dev] 次期iMandalArtについて議論


こちらでの更新はちょっと間があいてしまったMandal-Art Dev。開発およびディスカッションは、ずっと続いております。

次のバージョンの話をしているんだけど、まず一つ大きいのは、iCloud対応ってのを検討している。iMandalArtとiMandalArt HDでデータを同期できるようにする、ってことだ。

ただこれをやるなら、どうせならもうちょっと拡張しようよ、という話が上がっている。それが、ドキュメント化の対応。テクニカルな話になるけど、iCloudはその仕組みとしてマルチドキュメントアプリを前提にしているところがあるんだよね。つまり通常のOS Xアプリと同じように、新規ファイルの作成、ファイルのオープン、ファイルのクローズ、ファイルの削除、って処理をサポートする。それなら、iMandalArtもそうする?

これをやると大きめな変更になるので、慎重に検討しながら進めているところ。