HMDT Blog | ページ 28

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もそうする?

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

 

 

名刺が届く


HMDTに新しい人たちがやってきて、そろそろ一ヶ月。早速火を吹いているプロジェクトに投げ込んで、ひーひー言わせてます。

新しい人が入社したらまずこれでしょ、ということで注文していた名刺が届いた。上の写真のやつは、私のだけどね。

うちの会社の名刺、高いんすよ。自慢になんないけど。Googleで検索すると、名刺作成費100枚で350円とかぞろぞろ出てくるけど、うちのやつは2万円強。高い。冗談抜きで100倍いきそうだ。

会社設立したときにデザイナーの人にお願いして、好きに作っていいよ〜って言ったら、ほんとに好きに作りやがった。なんでも、インクが高いらしい。

今回4人分作ったんで、税金も含めて9万円弱。うむ。ま、全員プログラマなんで、100枚使い切るってことはなかなかないだろうから、しばらくは大丈夫だけど。あ、でも引っ越ししたら全部作り直しか。それは結構痛いな。

iOS 5.1 beta登場


iOS 5.1 beta登場。相変わらずのリリース速度だ。いま忙しくて、インストールできないけど。

バッテリー問題がどうなっているかは、ドキュメントに書いてないから、知らん。ただドキュメントには、新規APIが追加されたことは書いている。ディクテーションに関するもの。たぶん、欧米圏だけの対応。

そっちの人たちにとっては、結構インパクトのあるアップデートになるかもしれない。開発の手間が増える、っていう意味でね。

MapFan for iPhone 1.5リリースそして1位獲得


MapFan for iPhone 1.5が先日リリースされた。そして、iPadランキングで1位を獲得してた。

MapFanは、HMDTで開発をやっとります。アプリの著作権情報の画面見ると、HMDTの名前がありまっせ。うちの担当はユーザインタフェース周り。デザインはwebtronさんです。

関わったアプリが1位穫ると、やっぱり嬉しいね。

新語大辞泉 壱が登場


App Storeの方に、「新語大辞泉 壱」が登場!

大辞泉と言えば、小学館さんから出ている、HMDTが開発している辞書アプリ。大辞泉の特徴は、とにかく新しい言葉をどんどん追加している事。いまこのアプリは年に3回のペースでアップデートしているんだけど、その度に2,000語ずつくらい言葉が増えている。それも新語や社会ネタのような、保守的な国語辞典だったら扱わないようなものにも、果敢に挑んでいる。

この新語を読んでいるだけでも面白いんで、じゃあいっそのことこれだけで一つのアプリにしてみようか、ということで作ったのがこの新語大辞泉だ。

たとえばこんな言葉が登録されている。

  • アルカイダ
  • 福島第一原子力発電所
  • 共同購入型クーポンサイト
  • ギャラクシータブ
  • ペットボトル症候群
  • 移動派
  • 非映画デジタルコンテンツ
  • カンブリア爆発
  • 平和橋通り
  • 警泥
  • 終わコン
  • ブラックハットハッカー
  • 医療被爆
  • ウィンブルドン現象
  • 江戸野菜
  • ガラパゴススマートホン
  • カレーパン
  • KY
  • Carl Edward Sagan
  • 積算線量
  • 電子書籍ストア
  • ドーハの悲劇
  • トモダチ作戦
  • 肉弾戦
  • 根尾谷薄墨桜
  • ばち抜け
  • フライバイ
  • プレイステーションヴィータ
  • ベルーガ
  • ボーイズラブ
  • ぽっこり
  • モンケン
  • リーベングイツ(日本鬼子)
  • ワイドパンツ

どうだい。最近出て来た言葉や、なぜいまこのタイミングで?と思わせる言葉まで、いろいろある。これらに対して、ビシッと短く簡潔な言葉で意味を教えてくれる。これが辞書の醍醐味だよね。たとえば「カレーパン」は、

カレーソースを中に入れ、油で揚げたパン。

そう、その通りだ!すでに知っていた知識も、こうやった改めて説明されると感動があるね。

こんな大辞泉の新しい言葉を、iPhoneやiPadの美しいユーザインタフェースで調べる事ができるよ。

そしてさらに!多くの人にこの大辞泉を体験してもらいたいという事で、新語大辞泉は85円で販売中!大辞泉本体は2,000円するから、大特価だ。いままで大辞泉の事が気になっていたけども、値段が高くて躊躇していた方はぜひ試してほしい。

大辞泉は、iPhoneおよびiPadに対応するユニバーサルアプリだ。iPadを持っている人は、正直こっちがお勧めだ。通常のテキスト検索だけでなくて、画像、地図、索引といった様々な表示スタイルがある。触っているだけで楽しい辞書を目指したからね。

地図表示では、建物や都市名といった項目を地図上に配置して見る事が出来る。

索引表示では、たくさんの言葉を宇宙に見立ててその中を漂いながら調べる事ができる。

繰り返しになるけど、こんな大辞泉アプリが85円で使えるんだ。このアプリはHMDTで開発した中でも特にお気に入りなので、ぜひ触ってほしい。

 

 

最近のHMDT


前回の更新から間が空いてしまいました。忙しくなると、すぐ更新は止まっちまいますね。個人としても会社としても情報発信の場はここだけなんで、できるだけ何かを出し続けたいんだけど。止まっているときは、あぁまた忙しいんだなーと察してください。

うちの会社の最近の状態を書くと、10月に2人追加、11月の1日付けでさらに3人が入社。これで新しい体制が整ったんですよ。新しく加わった人たちは、即戦力では全然なくて、iOSプログラミング経験が無い人もいる。Mac使うのが初めての人もいる。当然、研修なりなんなりしないといけない。そのためにHMDTでとった手法は、現役プログラマによるマンツーマン密着指導っすよ。新人の隣に座って、Xcodeを起動させて、ソースコードを口述筆記。おれの言う通りに書け!ということで、写経のように書かせる。合間合間に、Objective-Cの文法やCocoaの考え方を説明する。

そんな感じでやってみた。そしたら、最初の3日でObjective-Cの文法は理解した。Xcodeの使い方や、デバイスへのアプリのインストールや起動も出来た。一週間で、MVCの構造を把握した。NSStringやNSArrayといった基礎的なクラスを覚えた。次の一週間で、UITableViewのデータソースやデリゲートの概念を理解した。UITableViewCellのサブクラスを作れるようになった。次の一週間は、retainやreleaseやautoreleaseといったオブジェクト管理の仕組みを覚えた。UIViewControllerのサブクラスを作れるようになった。

できるじゃん!三週間でなんかできるようになったよ!いまは密着体制を解いて、指示だけ与えればコードを書き進められる。これはやっぱり、Objective-Cがシンプルで単純だからか。Cocoaの仕組みがすぐれているからか。個人的には、パターン本を書いたおかげでアプリのプログラミングスタイルを確立できておいたのが助かった。オートマティックに進められるからね。

ちなみに密着期間中は、自分の仕事はまったくできなくなる。でも仕事は待ってはくれない。そこでやったのが、秘技終電出社。私の通常時の勤務時間は、始発に乗って出社して朝6:00から18:00まで。朝型です。これでは仕事の時間が足りないという事で、さらに出勤時間を早めるべく、終電に乗って出社した。これだと、朝1:00に着いて仕事開始できる。超朝型だ。いや、夜型なのか?これを3日やったらボロボロになったので、さすがに止めましたが。