iPadアプリ開発日誌:ミリオンダウンロードを達成
東京電力を破産させられないような国ではベンチャー企業は育たない

iPadアプリ開発日誌:neu.Annotate 1.20

ITunesArtwork iPadアプリの一つとして無料で配布している neu.Annotate PDF、「書き心地」をさらに改良した描画エンジンを含む version 1.20 をリリースしたのでここで報告していただく。

neuシリーズのアプリは描画エンジン "Canvas" を共有している。それぞれのアプリを進化させるために必要な機能を追加しつつ、どのアプリにも共通して活用できる機能だとか改良を逐次追加して行く、という開発方針を取っている。

こんな作り方をしている一番の理由は、相棒のPeteと私の仕事の分担を明確にすることにある。私がエンジンを担当し、Peteがそれを活用したアプリの担当となり、互いの仕事にいろいろと注文やケチを付け合いながら開発する、という作り方をしているのだ。インターフェイスさえ明確に定義しておけば並行して開発ができるので、「会議がきらい、自分の好きな時間にマイペースで仕事をしたい、でも自分の仕事に細かなケチや注文を遠慮無しに付けて来る人が必要」な私のスタイルにマッチしているのだ。

今回のアップデートも、アプリ側にはいくつかのバグの修正と細かな機能アップ(PDF頁の回転、タグの消去、大きなPDFファイルの高速な読み込み)などをしている一方で、エンジン側には、スタイラス・ユーザーからのリクエストに応じた「スタイラスを使って書いた時の描画の追従性を良くする」という改良を施している。

Canvasは、iOSから送られて来るタッチイベントを元に曲線(ベジェ曲線)を生成する際に、曲線をできるだけ滑らかにするために「一つ先のタッチイベントを使って曲率を決める」というアルゴリズムを採用している。そのため、通常の実装のしかたをすると、どうしてもワンテンポ(タッチイベントの頻度にもよるが数〜数十ピクセル)描画が遅れることになる。

私のように指で書いている場合にはこの程度の遅延はあまり気にならないのだが(指に隠れてしまう)、ペン先の細いスタイラスを使うユーザーから、この遅延が気になるという意見が多く寄せられたのだ。

そこで色々なアルゴリズムを試したのだが、最終的には「次のスタイラスの動きを予想して曲線を描画することによりスタイラスの動きに追従するようにし、スタイラスを離したところで再計算する」というアルゴリズムを採用することにした。かなり追従性は良くなったはずなので、スタイラスをお持ちの方はぜひとも試していただきたい。

これまで、neu.Annotate は、すでに Productivity カテゴリーで活躍している neu.Notes との競合を避けるために Utilities カテゴリーに登録していたのだが、このバージョンからは neu.Notes と同じ Productivity に移動した。競合する商品がこのカテゴリーにあるというのも一つの理由だが、neu.Pen というブランドを確固たるものにするためには、neu.Notes との相乗効果を狙った方が良いかも知れない、という判断もある。今日の時点で、カテゴリー内の順位は11位(neu.Notes)と48位(neu.Annotate)←いずれも米国。この順位がどう変化するかが楽しみだ。

ちなみに、neu.Notesの有料版であるneu.Notes+の開発は順調に進んでいる、機能的にはすべて実装済みなので、今は細かなUIの微調整をしているところだ。大幅な機能追加をしたので、「パッと見の使いやすさやシンプルさ」と「拡張機能へのアクセスのしやすさ」とのバランスが難しいのだ。目指すのは「初心者にもすぐ直感的に使っていただけ、かつ、使い込んだユーザーの期待にも十分に答えられる」商品だ。今月中にはアップルの審査にかけられるところにまで持って行く予定なので乞うご期待。

Comments

ナカガワテルヒサ

有料版を本日買って色々為してます。いいですね。ただ、写真をインポートして不必要な部分を消しゴムで消そうとしたら写真自体が消えてしまいます。今まで使っていた無料版は思うようになぞった部分が消えるのですが、何か間違えて操作してますかね…

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment

Your Information

(Name is required. Email address will not be displayed with the comment.)